Nội dung
Tìm hiểu chi tiết về cách thức hoạt động của Aleo
Trong bài viết này, chúng ta sẽ cùng nhau tìm hiểu về cách thức hoạt động của dự án Aleo – một privacy public blockchain (chuỗi khối bảo mật công khai).
Aleo là một chuỗi khối Layer 1 sử dụng công nghệ Zero-Knowledge Proofs để cho phép các nhà phát triển xây dựng các ứng dụng riêng tư trên mạng lưới này. Các nhà phát triển xem các blockchain sử dụng Zero-Knowledge Proofs là làn sóng thứ ba. Đầu tiên là Bitcoin, sau đó có Ethereum và bây giờ là có Aleo.
Trong bài viết trước, chúng ta đã tìm hiểu tổng quan dự án Aleo, ở bài viết này, chúng ta sẽ cùng nhau tìm hiểu chi tiết về cách Aleo hoạt động.
Như chúng ta đã biết, Aleo là một privacy public blockchain (chuỗi khối bảo mật công khai) tiêu biểu sử dụng công nghệ Zero-Knowledge Proofs – đây là một loại giao thức mật mã cho phép một bên (Người chứng minh) chứng minh với bên khác (Người xác minh) rằng họ biết một phần thông tin nhất định mà không tiết lộ bất kỳ thông tin nào về nội dung thực của thông tin đó.
ZKP là một cách để chứng minh rằng bạn biết điều gì đó, sở hữu điều gì đó hoặc đã làm điều gì đó mà không tiết lộ bất kỳ thông tin nào về điều đó. Khi mọi người đang bị nhấn chìm bởi những tàn dư của cuộc khủng hoảng thanh khoản của sàn giao dịch FTX, Zero-Knowledge Proofs là một điểm sáng. Đây là một công cụ hữu ích, được thiết kế riêng để giúp tránh loại gian lận giống với sự cố mà FTX gây ra.
Đối với các chuỗi khối cụ thể, ZKP có hai ứng dụng hữu ích: khả năng mở rộng và quyền riêng tư.
Khi kết hợp với nhau, ZKP cho phép các chuỗi khối tiếp cận hiệu suất của các dịch vụ tập trung và vượt quá khả năng bảo mật và quyền riêng tư của chúng, đồng thời duy trì các lợi ích của việc phân cấp.
Aleo ban đầu được hình thành như một L2 trên Ethereum, nhưng ZKP trên Ethereum lớn hơn – chúng phải sử dụng toàn bộ trạng thái của ứng dụng và Ethereum không hỗ trợ các nguyên hàm thân thiện với SNARK (hàm băm và đường cong elliptic. Vì vậy đội ngũ Aleo đã viết lại lên kế hoạch và quyết định xây dựng L1 của riêng mình để cung cấp ZKP rẻ hơn.
Aleo đang áp dụng cách tiếp cận triệt để nhất để xây dựng một blockchain dựa trên ZKP ngay từ đầu. Thay vì xây dựng một chuỗi tương thích với EVM để các nhà phát triển có thể xây dựng ứng dụng bằng ngôn ngữ lập trình Solidity quen thuộc, nó đã tạo ra máy ảo của riêng mình, snarkVM và ngôn ngữ lập trình Leo. Thay vì dựa vào các cơ chế đồng thuận hiện có như Proof of Work (PoW) hoặc Proof of Stake (PoS), nó sử dụng kết hợp cả hai, với một tinh chỉnh hữu ích trên PoW có tên là Proof of Succinct Work. Kết quả là các ZKP trên Aleo rẻ hơn nhiều so với trên Ethereum.
Aleo là một nền tảng phi tập trung sử dụng blockchain của nó để xác minh và lưu trữ bằng chứng, đó là các giao dịch Zexe hiệu quả. Nó sử dụng kiến trúc giống Bitcoin, với sổ cái và bản ghi hoặc mô hình UTXO (đầu ra giao dịch chưa sử dụng), trong đó đầu vào chỉ định địa chỉ mà tài sản đến từ đâu và đầu ra chỉ định địa chỉ mà nội dung được gửi đến, với giá trị đại diện số lượng tài sản được gửi. Thuật toán đồng thuận của Aleo giống như Proof of Work, với một số điểm khác biệt chính. Đó phần lớn là nơi mà các phép so sánh kết thúc và là nơi xuất hiện của một loạt nội dung mới do Aleo tạo ra.
Cách Aleo hoạt động sẽ xoay quanh ba phần chính:
Một blockchain có thể lập trình điển hình, như Ethereum, hoạt động bằng cách thực thi các chương trình trên một chuỗi máy ảo phải được chạy bởi mọi node trong mạng. Nếu bạn đã nghe nói về “EVM” hoặc “tương thích với EVM”, tức là máy ảo của Ethereum.
Một trong những điểm khác biệt lớn nhất của Aleo là zkCloud chia nó thành hai phần: snarkVM là một máy ảo chạy các ứng dụng ngoài chuỗi và gửi các giao dịch được bảo vệ tới blockchain Aleo, snarkOS. Nói theo cách nói về tiền mã hóa, nó tách biệt việc thực thi (snarkVM) khỏi trạng thái (snarkOS).
Có một sự khác biệt quan trọng giữa Zexe và Aleo là Zexe cho phép cả quyền riêng tư về dữ liệu và quyền riêng tư về chức năng, trong khi Aleo có quyền riêng tư về dữ liệu nhưng không có quyền riêng tư về chức năng.
Trên Aleo, bạn không thể thấy đầu vào và đầu ra của chương trình hoặc người gửi và người nhận tín dụng, nhưng bạn có thể xem chương trình nào đã được tương tác. Mặc dù đội ngũ Aleo đã nghĩ ra cách đảm bảo quyền riêng tư của chức năng ngay từ đầu, nhưng nhóm cảm thấy rằng việc tập trung vào quyền riêng tư dữ liệu là sự đánh đổi phù hợp với Aleo vì việc loại bỏ quyền riêng tư của chức năng giúp cải thiện hiệu suất trong khi vẫn mang lại lợi ích cho các nhà phát triển các công cụ để bảo vệ sự riêng tư.
Trong bài đăng trên blog của mình, Alex đã ví mối quan hệ giữa snarkVM và snarkOS với “các đối tượng đổ bóng: Khi bạn nhìn thấy một cái bóng, bạn biết rằng có thứ gì đó đã tạo ra cái bóng đó, nhưng rất khó để tìm ra chi tiết hoặc xác định chính xác đó là gì.”
Các chương trình chạy ngoài chuỗi trong snarkVM có thể chạy trong bất kỳ khoảng thời gian nào. Nếu bạn muốn, bạn có thể chạy một chương trình tính toán từ pi đến hàng nghìn tỷ chữ số trong suốt nhiều tháng miễn là cuối cùng một giao dịch được bảo vệ được gửi tới snarkOS.
Ngoài ra, kiến trúc này cung cấp thêm một vài lợi ích chính:
Kiến trúc này cho phép Aleo tiến gần đến việc phá vỡ bộ ba bất khả thi về khả năng mở rộng – nó cho phép Aleo trở nên phi tập trung, có thể mở rộng và bảo mật – với quyền riêng tư được bổ sung để có biện pháp tốt nhất.
Mục tiêu của Aleo là dành cho các nhà phát triển Web thông thường có thể viết các ứng dụng riêng tư mà không cần phải suy nghĩ về mật mã cấp thấp. Các ngôn ngữ phổ biến nhất trong tiền mã hóa, Solidity và Rust, không hoạt động hoàn hảo cho ZKP và các ngôn ngữ dành riêng cho công nghệ này đều dựa trên toán học. Để sử dụng chúng, đội ngũ Aleo giải thích rằng “bạn cần biết rất nhiều môn toán cao cấp.”
Để xây dựng ZKP, bạn cần một hệ thống bằng chứng (trong trường hợp của Aleo, SNARK và cụ thể hơn là MARLIN SNARK) và một mạch ZK. Giống như các mạch trong máy tính của bạn có cổng NAND nhận các số 0 và 1 làm đầu vào và đầu ra, các mạch ZK sử dụng các cổng cộng và nhân lấy các số “từ 0 đến p” làm đầu vào và đầu ra. Tạo một mạch ZK có nghĩa là đặt tất cả các cổng đó lại với nhau theo cách thủ công.
Aleo đã khảo sát bối cảnh của các ngôn ngữ dành riêng cho miền (DSL) và tìm đến ZoKrates. Aleo đã thay đổi cú pháp và phát triển nó để tạo ra ngôn ngữ lập trình riêng có tên là Leo.
Leo được xây dựng để có giao diện giống JavaScript, ngôn ngữ lập trình phổ biến nhất thế giới, hơn là Assembly. Nếu ZKP xâm nhập vào cấu trúc của Internet, thì việc giúp các nhà phát triển không quen thuộc với ZK có thể kết hợp ZKP trở nên cực kỳ dễ dàng.
Về cơ bản, ngôn ngữ này rất phức tạp, trừu tượng hóa lập trình mạch và các khái niệm cấp thấp khác. Do đó, các nhà phát triển dễ dàng xây dựng các ứng dụng riêng tư hơn.
Nó nhận các code như hình dưới đây:
Aleo lấy code và đưa ra bằng chứng rằng bạn đã chạy tính toán của mình một cách chính xác, bằng chứng này có thể được gửi từ snarkVM đến snarkOS để các node xác minh.
Ngoài ngôn ngữ này, Aleo còn phát triển một loạt các công cụ khác để giúp các nhà phát triển trở nên dễ dàng hơn, bao gồm khung thử nghiệm và trình quản lý gói. Họ gói gọn tất cả trong Aleo Studio – một IDE đầu tiên (môi trường dành cho nhà phát triển tích hợp) dành cho Zero-Knowledge Proofs.”
AleoBFT kết hợp Proof of Stake (PoS) và một loại Proof of Work (PoW) – cụ thể được gọi là Proof of Succinct Work (bản thân nó là một tập hợp con của Proof of Necessary Work).
Chúng ta sẽ đi vào sâu vào chi tiết của phần này ở bài viết khác. Về cơ bả AleoBFT được thiết kế để thực hiện ba điều: bảo mật giao thức, đảm bảo rằng có đủ người kiểm chứng giàu kinh nghiệm để phục vụ nhu cầu zkSNARK của ứng dụng, khuyến khích nhiều hơn, chứng minh hiệu quả và rẻ hơn.
Trên đây là cách thức hoạt động của Aleo – một dự án blockchain Layer 1 sử dụng ZKP. Trong số các public blockchain, khai thác ZKP có thể được chấp nhận bởi bất kỳ L2 nào của chuỗi ZK, nhưng L1 hiện chỉ được Aleo cho phép. Ngược lại, Aleo không yêu cầu tính toán song song, do đó, các công cụ khai thác GPU nhàn rỗi có thể được cập bến một cách liền mạch. Trong bài viết sau, chúng ta sẽ tiếp tục tìm hiểu sâu về AleoBFT.