Nguồn: PermaDAO
Đây là một văn bản rời rạc về công nghệ, thậm chí không thể trở thành một bài báo. Hãy trò chuyện thoải mái về AO.
Ổ cứng chia sẻ toàn cầu
Lần đầu tiên tôi biết đến Arweave là vào tháng 7 năm 2020. Vào tuần thứ hai chúng tôi Khả năng tính toán không cần sự tin cậy đã được thảo luận trong quán cà phê. Hãy tưởng tượng: Arweave là cuộn băng giấy của máy Turing. Máy trạng thái phổ biến là máy khách trong tay người dùng. Hệ điều hành của người dùng và tất cả các chương trình đang chạy sẽ được tải xuống từ Arweave. Các đơn vị máy tính có mặt ở khắp mọi nơi trên thế giới và chúng dùng chung một ổ cứng blockchain khổng lồ. Tất cả các ứng dụng chạy trong hệ thống này đều có thể đạt được sự đồng thuận và không được tin cậy.
Kết luận của cuộc thảo luận là mục tiêu này khó đạt được, Rõ ràng là những gã khổng lồ như Microsoft và Apple không thể đưa hệ điều hành và ứng dụng lên Arweave.
Bây giờ AO đã biến điều đó thành hiện thực. Khi tôi và Sam ban đầu thiết kế Giao thức MSG (nguyên mẫu AO), tôi đã nghĩ đó là kafka trên blockchain. Tuy nhiên, trọng tâm không phải là cung cấp hàng đợi tin nhắn phi tập trung cho các ứng dụng mà là thay thế giao tiếp http trong kiến trúc C/S bằng giao tiếp tin nhắn không tin cậy. Nếu cả yêu cầu của người dùng và phản hồi của máy chủ đều sử dụng AO. Sau đó, chúng tôi sẽ tạo lại một hệ sinh thái Internet phi tập trung thực sự trên AO, đúng như hình dung vào tháng 7 năm 2020.
AO có tiềm năng lớn để chuyển toàn bộ Internet sang Arweave. Arweave Thư viện Alexandrian này không còn bị giới hạn trong việc lưu trữ nữa, nó không chỉ ghi lại quá khứ. Sử dụng AO, chúng ta có thể ghi lại những câu chuyện của ngày hôm nay và phân phối giá trị trong tương lai theo cách phi tập trung.
Tranh cãi
Gần đây có những tranh chấp về AO, chủ yếu do 2 vấn đề:
< p >
1. AO đạt được khả năng xác minh bằng cách nào? Trước hết, AO không giải quyết được vấn đề về khả năng xác minh. Khả năng xác minh đến từ bộ lưu trữ bất biến của Arweave. Arweave lưu trữ dữ liệu ảnh ba chiều của từng Quy trình của AO (bao gồm cả dữ liệu ảnh ba chiều của chính AO). Bất kỳ ai cũng có thể khôi phục AO và bất kỳ luồng nào trên AO thông qua dữ liệu ảnh ba chiều. Điều này được đảm bảo bằng toán học và có thể kiểm chứng được! Đây là mô hình đồng thuận dựa trên lưu trữ, lý thuyết SCP mà chúng tôi thường đề cập đến.
Điểm chính: Chúng tôi biết rằng các giao dịch UTXO được tải lên chuỗi sau khi xác minh, nhưng theo mô hình SCP, bất kể đó là dữ liệu tốt hay xấu, tất cả dữ liệu đều được tải lên vào chuỗi AR. Điều này tương tự như UTXO của BTC. Một sự khác biệt rất lớn. Nhưng không phải chi tiêu lặp lại trên chuỗi và chi tiêu gấp đôi trên chuỗi có thể xác minh được sao? Chương trình SCP chỉ cần chạy tất cả các giao dịch ảnh ba chiều để xác minh nó! Nếu đó là một giao dịch trùng lặp, nó sẽ bị chương trình SCP loại bỏ.
Có thể xác minh được, trọng tâm là "có thể", không cần nhấn mạnh vào việc xác minh nhanh, xác minh nút nhẹ, v.v. Nếu bạn nhầm lẫn giữa xác minh nhanh và xác minh nút nhẹ. Không có cách nào để thảo luận về AO vào thời điểm này.
2. Các ứng dụng SCP có các tính năng có thể kiểm chứng được, vậy AO giải quyết vấn đề có thể kiểm chứng như thế nào? Người dùng có cần chạy một nút đầy đủ không?
Khi câu hỏi đầu tiên được trả lời ở một mức độ nhất định, người hỏi sẽ nghĩ rằng người dùng phải tính toàn bộ sổ cái, việc này quá khó. Điều này trái ngược với vấn đề mà cây Merkel của BTC/ETH muốn giải quyết. Theo ý tưởng BTC/ETH, Merkel là cốt lõi của việc xác minh. Root của Merkel được tải lên chuỗi thông qua PoW nên có thể được xác minh. Bây giờ bạn đang nói với tôi rằng AO không có cây Merkel? Vì vậy kết luận là AO hoàn toàn không thể được xác minh, không có sự đồng thuận và đó là lừa đảo! Vì vậy, quay lại câu hỏi 1. Nói chung, người hỏi sẽ đặt các câu hỏi lặp đi lặp lại về hai câu hỏi này và sẽ không nghĩ về kiến trúc và nguyên tắc thiết kế của AO.
Những điểm chính:AO không giải quyết các vấn đề có thể kiểm chứng được và chức năng của AR và AO hoàn toàn tách biệt! AR thực hiện lưu trữ bất biến để đảm bảo tính bảo mật và có thể xác minh. Có Merkel ở đây và có sự đồng thuận. Sự đồng thuận là thứ tự của dữ liệu, không phải trạng thái tính toán dữ liệu. AO chỉ thực hiện các phép tính trên dữ liệu tuần tự trên AR và tạo trạng thái, AO không thể thay đổi thứ tự dữ liệu của AR, tức là AO không thể thay đổi sự đồng thuận. Trạng thái tính toán được xác minh thông qua PoW/PoS. Đây là mô hình điện toán trên chuỗi, hoàn toàn khác với SCP.
Chức năng của AO là thực hiện các phép tính trên dữ liệu bất biến và hiển thị trạng thái của các phép tính này. Vấn đề xác minh được SCP đảm bảo nên không cần cây Merkle hay PoW/PoS, lúc này người hỏi lại quay lại câu 1 và không thể tiếp tục suy nghĩ. Nếu bạn vẫn có thể suy nghĩ sau khi xem điều này thì vui lòng xem thực tiễn của AO:
AO đã triển khai Mã thông báo có thể xác minh thông qua SCP và sử dụng mô hình kinh tế của Mã thông báo để khuyến khích mọi người cung cấp dữ liệu chính xác hiển thị (Giống như một nhà tiên tri Chainlink). Hãy nhớ rằng AO chủ yếu trình bày trạng thái và khả năng xác minh không phải là chức năng của AO. Mô hình kinh tế Token là: gạch chéo khi trạng thái chính xác không được hiển thị và khuyến khích (đúc tiền) khi trạng thái chính xác được cung cấp.
Các điểm chính
AO không tạo ra sự đồng thuận, cách thực hiện gạch chéo và hành động bạc hà? Rất đơn giản. AO là một ứng dụng SCP. Tại thời điểm này, cả sự kiện trạng thái truy vấn và trạng thái trả về đều được liên kết với Arweave. Chương trình AO SCP sẽ tải hai sự kiện này (truy vấn và trả về) và tính toán số tiền từ hai sự kiện này. và gạch chéo kết quả.
Phần này sẽ dễ hiểu hơn nếu bạn nhìn trực tiếp vào mã:
https://github .com/outprog/slash-demo/blob/main/vm/vm_test.go
Kết luận
Người dùng không cần chạy chương trình nút đầy đủ của ứng dụng; Nhà cung cấp dịch vụ chạy CU (Đơn vị tính toán). MộtNgười dùng đưa ra yêu cầu truy vấn tới AO, được gán cho một CU cụ thể thông qua SU (Đơn vị lập lịch). Đơn vị tính toán tính toán trạng thái theo yêu cầu của người dùng, trạng thái được ký bởi nút tính toán (cũng trên chuỗi) và phản hồi lại cho người dùng. Nếu người dùng không tin cậy một CU nào, họ có thể bắt đầu yêu cầu tới nhiều CU hơn để có được trạng thái đáng tin cậy hơn. Trạng thái được mỗi CU trả về được nút CU ký (có thể xác minh). Nếu CU cung cấp trạng thái không chính xác, tiền cược của CU sẽ bị mất.
Để biết các cách thực hành cụ thể, hãy xem Sam's X:
https://twitter. com /samecwilliams/status/1764023657058148718 .
Không có lời tiên tri? Họ đều là những nhà tiên tri!
Khi dữ liệu cần tương tác với chuỗi khối, chúng ta cần một oracle để gắn "oracle" vào chuỗi. Các oracle mà blockchain cần là các oracle được tạo ra bởi nhiều chữ ký bởi một nhóm người dùng; các oracle mà con người cần đến từ sự đồng thuận được tạo ra bởi thuật toán blockchain, nhưng khi mọi người đọc sự đồng thuận này, thường cần có bên thứ ba Theo chú thích, bên thứ ba này thường được gọi là infura.io. Chúng ta thường tin tưởng vào thông điệp của infura, nhưng thông điệp này có đúng không? (Quả dưa này có chín được không?)
infura.io:https://www.infura.io/
Lưu ý:
Sự tin cậy của BTC/ETH chỉ giới hạn trong môi trường trên chuỗi. Môi trường bên ngoài khó có thể tạo ra khả năng mất lòng tin. Nghĩa là, khi người dùng yêu cầu nút BTC/ETH, trạng thái chỉ có thể nhận được thông qua giao thức http. Người dùng không thể đánh giá liệu nút được yêu cầu có đáng tin cậy hay không và trạng thái có chính xác hay không. Nếu việc xác minh trạng thái được thực hiện, người dùng phải chạy nút nhẹ hoặc nút đầy đủ.
Trong mạng AO/SCP, yêu cầu của người dùng cần phải được ký và trạng thái được nút trả về cũng cần phải được ký. Tất cả các bản ghi được lưu trữ trên Arweave để tạo thành "dữ liệu ba chiều", đảm bảo độ tin cậy. Người dùng không cần phải chạy bất kỳ nút nào để có được trạng thái đáng tin cậy. Ở chế độ AO/SCP, tất cả thông tin trên mạng đều được tải lên, bao gồm cả thông tin yêu cầu truy vấn và trả về (yêu cầu http không được tải lên). AO giải quyết vấn đề thiếu sự tin cậy ở chặng cuối.
Trong thực hành kỹ thuật, AO/SCP phá vỡ khái niệm trên chuỗi/ngoài chuỗi và tích hợp máy tính và oracle đáng tin cậy vào một hệ thống thống nhất. Hệ thống được phân cấp và phá vỡ ranh giới giữa Web2 và Web3. AO/SCP và điện toán trên chuỗi là hai mô hình hoàn toàn khác nhau. Hệ thống này có thể được coi là một máy tính toàn cầu bao gồm toàn bộ các oracle. Các oracle được trình bày bởicác oracle là những sự thật khách quan không thể bị giả mạo.
Xác minh linh hoạt
Tôi không biết khi , sự đồng thuận trở thành một vấn đề nhị phân. Hoặc có sự đồng thuận hoặc không có sự đồng thuận. Không có sự đồng thuận ở giữa?
Sự hiểu biết này được phản ánh trong ngành công nghiệp blockchain. Hoặc anh ta là một vị thần hoặc anh ta là một kẻ cặn bã. Cũng giống như niềm tin tôn giáo, nước và lửa không tương thích với nhau.
Nhưng AO cung cấp một kiến trúc đồng thuận hoàn toàn khác - Sự kiên trì của Arweave và mô hình SCP cung cấp một nền tảng đồng thuận vững chắc, đó là "khả năng xác minh" mà chúng tôi đã nhiều lần đề cập, nhưng bên ứng dụng phải trả bao nhiêu để Xác minh rằng sự đồng thuận này là linh hoạt.
Nguyên nhân của sự việc là do những người ở X đã vướng vào hai loại tranh cãi nêu trên. Sau một hồi đấu khẩu, cuối cùng tôi đã hỏi cách xác minh tin nhắn giữa hai luồng AO. Tất cả tin nhắn đều đã được ký nên tôi sẽ không đi sâu vào chi tiết ở đây. Nhưng làm sao Process biết rằng tin nhắn nhận được có thể tin cậy được? Dưới đây là hai mô hình niềm tin được mô phỏng để giải thích vấn đề này.
Có một đơn vị tính toán CU1, trong đó hai tiến trình P1 và P2 đang chạy, ký hiệu là CU1(P1, P2).
Bây giờ có: CU1(P1, P2) & CU2(P3, P4) & CU3(P1) & CU4(P1).
Mục tiêu tính toán: P3 trong CU2 yêu cầu P1 cung cấp thông tin tính toán đáng tin cậy.
Chế độ tin cậy đơn
1. Mã trong P3 gửi yêu cầu tính toán tới P1.
2. Bộ lập lịch SU gửi yêu cầu của P3 tới CU4(P1) để tính toán.
3. CU4(P1) phản hồi kết quả tính toán và trả về P3.
Lúc này P3 hoàn toàn tin tưởng vào kết quả tính toán của P1 trong CU4 và tiếp tục thực hiện thao tác.
Chế độ đa tin cậy
1. trong P3 Mã đưa ra yêu cầu tính toán tới P1 và P3 yêu cầu SU phân bổ nhiều đơn vị tính toán.
2. SU gán yêu cầu của P3 cho CU1(P1), CU3(P1) và CU4(P1).
3. CU1(P1), CU3(P1), CU4(P1) phản hồi kết quả tính toán.
Lúc này, P3 đã nhận được nhiều kết quả, P3 có thể so sánh những kết quả này trước và xác định xem chúng có đáng tin cậy hay không thông qua so sánh. Ví dụ: P3 yêu cầu tất cả các nút trả về cùng một nội dung. Ngoài ra, P3 yêu cầu 2/3 kết quả phải bằng nhau.
Chế độ tin cậy chỉ là một chế độ phát triển trên AO. Nhà phát triển có thể phát triển các quy tắc phán đoán dựa trên yêu cầu về độ tin cậy. Chương trình của P3 thậm chí có thể yêu cầu 100 CU để thực hiện phép tính và yêu cầu kết quả tính toán 100 CU là hoàn toàn nhất quán. Tất cả phụ thuộc vào cách nhà phát triển triển khai mã trong P3.
Do đó, bạn có thể tự quyết định mô hình ủy thác và khoản thanh toán xác minh mà bạn cần. Tuy nhiên, hãy nhớ rằng, tính bảo mật đồng thuận cuối cùng vẫn được đảm bảo bởi sự kiên trì của Arweave và SCP!