Bằng chứng gian lận và ý tưởng thực hiện ZK Fraud Proof
Bằng chứng gian lận là giải pháp công nghệ được áp dụng rộng rãi trong lĩnh vực blockchain, bắt nguồn từ cộng đồng Ethereum, được các dự án Layer2 như Arbitrum và Optimism áp dụng. Sau sự trỗi dậy của hệ sinh thái Bitcoin vào năm 2023, Robin Linus đã đề xuất giải pháp BitVM, với bằng chứng gian lận là cốt lõi, cung cấp mô hình an toàn mới cho các lớp thứ hai hoặc cầu dựa trên nền tảng công nghệ hiện có của Bitcoin.
BitVM đã trải qua nhiều phiên bản phát triển, từ BitVM0 với cổng logic là nguyên tố ban đầu, đến BitVM2 sau này với ZK Fraud Proof và mạch xác minh Groth16 làm cốt lõi, con đường công nghệ liên quan ngày càng trưởng thành. Nhiều dự án như Bitlayer, Citrea, BOB, v.v. đều dựa trên công nghệ BitVM để thực hiện các giải pháp khác nhau.
Bài viết này sẽ lấy ví dụ về kế hoạch bằng chứng gian lận của Optimism, phân tích kế hoạch của nó dựa trên máy ảo MIPS và bằng chứng gian lận tương tác, cũng như ý tưởng chính của bằng chứng gian lận ZK.
OutputRoot và StateRoot
Optimism là một dự án Optimistic Rollup nổi tiếng, hạ tầng của nó bao gồm bộ định thứ tự và hợp đồng thông minh trên chuỗi Ethereum. Sau khi bộ định thứ tự xử lý giao dịch, nó sẽ gửi dữ liệu lên Ethereum. Chạy client nút Optimism có thể tải xuống các dữ liệu này và thực thi tại chỗ, tính toán hash tập trạng thái hiện tại.
Nếu bộ định thứ tự tải lên hash trạng thái sai, kết quả tính toán tại chỗ sẽ khác, lúc này có thể khởi xướng nghi ngờ thông qua bằng chứng gian lận.
Blockchain EVM thường sử dụng cấu trúc dữ liệu Merkle Tree để ghi lại tập trạng thái, được gọi là World State Trie. Sau khi thực hiện giao dịch, World State Trie sẽ thay đổi và hash cuối cùng của nó cũng sẽ được cập nhật. Ethereum gọi hash này là StateRoot, được sử dụng để biểu thị sự thay đổi của tập trạng thái.
Hệ thống tài khoản của Optimism tương tự như Ethereum, cũng sử dụng trường StateRoot. Bộ định thứ tự sẽ định kỳ tải lên OutputRoot tới Ethereum, OutputRoot được tính toán từ StateRoot và hai trường khác.
Máy ảo MIPS và Cây Merkle bộ nhớ
Để xác thực tính chính xác của OutputRoot trên chuỗi, phương pháp đơn giản nhất là triển khai một khách hàng nút OP trên Ethereum, nhưng có hai vấn đề:
Hợp đồng thông minh không thể tự động lấy các tham số đầu vào cần thiết để có bằng chứng gian lận
Giới hạn Gas của Ethereum là có hạn, không hỗ trợ các nhiệm vụ tính toán phức tạp
Câu hỏi đầu tiên có thể được giải quyết thông qua hợp đồng PreimageOracle. Đối với câu hỏi thứ hai, đội ngũ OP đã sử dụng Solidity để viết máy ảo MIPS, thực hiện một phần chức năng của nút OP.
Nhóm phát triển OP đã viết một chương trình đơn giản bằng Golang, chức năng tương tự như OP node thực hiện giao dịch, tạo khối và module OutputRoot. Tuy nhiên, do chi phí tính toán quá lớn, không thể thực hiện hoàn toàn tất cả giao dịch trên chuỗi.
Để làm điều này, Optimism đã thiết kế hệ thống bằng chứng gian lận tương tác, phân tách quy trình xử lý giao dịch thành các thao tác mã MIPS theo thứ tự. Sau khi mỗi mã được thực hiện, trạng thái hash của máy ảo sẽ thay đổi, những bản ghi này được tổng hợp thành một cây Merkle.
Trong bằng chứng gian lận tương tác, cần xác định mã lệnh MIPS nào đã gây ra lỗi hash trạng thái máy ảo, sau đó tái tạo trạng thái lúc đó trên chuỗi và thực hiện mã lệnh đó, quan sát xem kết quả có nhất quán hay không. Điều này cần phải tải một phần thông tin trạng thái máy ảo MIPS lên chuỗi.
Hợp đồng liên quan đến bằng chứng gian lận trên chuỗi được thực hiện thông qua hàm Step để hoàn thành việc thực thi mã hoạt động MIPS:
solidity
function step(
bytes memory _stateData,
bytes memory _proof
) public returns (bytes32) {
// ...
}
_stateData và _proof tham số chứa dữ liệu phụ thuộc cho việc thực thi mã MIPS đơn, như trạng thái thanh ghi, hash trạng thái bộ nhớ, v.v.
OP sử dụng kiến trúc MIPS 32 bit, bộ nhớ có thể được tổ chức thành 28 lớp cây Merkle nhị phân, với 2^27 bản ghi lá dữ liệu địa chỉ bộ nhớ ở tầng dưới. Hash tổng hợp của tất cả dữ liệu lá là memRoot.
Bằng chứng gian lận tương tác
Để xác định mã lệnh MIPS gây tranh cãi, đội OP đã phát triển giao thức Fault Dispute Game(FDG). Trong FDG có hai vai trò là Thách thức và Phòng thủ, cả hai bên cần xây dựng GameTree tại địa phương.
GameTree được cấu thành từ hai lớp cây: lớp lá đầu tiên là OutputRoot của các khối khác nhau, lớp lá thứ hai là trạng thái hash của máy ảo MIPS. Hai bên tranh chấp tương tác nhiều lần trên chuỗi, cuối cùng xác định mã thao tác MIPS đơn lẻ cần thực thi trên chuỗi.
Tóm lại, bằng chứng gian lận tương tác bao gồm hai cơ chế cốt lõi:
Mã lệnh MIPS và thông tin trạng thái VM cần thực hiện trên chuỗi FDG.
Thực hiện mã thao tác trên máy ảo MIPS trên chuỗi Ethereum, nhận được kết quả cuối cùng
Bằng chứng gian lận ZK
Truyền thống bằng chứng gian lận tương tác phức tạp, tồn tại các vấn đề sau:
Nhiều vòng tương tác tạo ra chi phí gas lớn
Quá trình tương tác kéo dài, trong thời gian đó Rollup không thể thực hiện giao dịch bình thường.
Độ khó phát triển VM cụ thể trên chuỗi cao
Để giải quyết những vấn đề này, Optimism đã đưa ra khái niệm ZK Fraud Proof. Cốt lõi là chỉ định các giao dịch cần phát lại khi thách thức, bộ định thứ tự cung cấp chứng minh ZK, được xác minh bởi hợp đồng Ethereum.
So với bằng chứng gian lận tương tác, Bằng chứng gian lận ZK đã thay đổi từ nhiều vòng tương tác sang một vòng tạo và xác minh bằng chứng ZK, tiết kiệm thời gian và chi phí. So với ZK Rollup, OP Rollup dựa trên Bằng chứng gian lận ZK chỉ tạo bằng chứng khi bị thách thức, giảm chi phí tính toán.
Ý tưởng về bằng chứng gian lận ZK cũng được BitVM2 áp dụng. Các dự án sử dụng BitVM2 như Bitlayer, Goat Network, v.v., thực hiện chương trình xác minh ZK Proof thông qua script Bitcoin và đã giảm đáng kể kích thước chương trình lên chuỗi.
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
Giải thích chi tiết về bằng chứng gian lận: Từ giải pháp tương tác đến sự tiến hóa công nghệ của ZK Fraud Proof
Bằng chứng gian lận và ý tưởng thực hiện ZK Fraud Proof
Bằng chứng gian lận là giải pháp công nghệ được áp dụng rộng rãi trong lĩnh vực blockchain, bắt nguồn từ cộng đồng Ethereum, được các dự án Layer2 như Arbitrum và Optimism áp dụng. Sau sự trỗi dậy của hệ sinh thái Bitcoin vào năm 2023, Robin Linus đã đề xuất giải pháp BitVM, với bằng chứng gian lận là cốt lõi, cung cấp mô hình an toàn mới cho các lớp thứ hai hoặc cầu dựa trên nền tảng công nghệ hiện có của Bitcoin.
BitVM đã trải qua nhiều phiên bản phát triển, từ BitVM0 với cổng logic là nguyên tố ban đầu, đến BitVM2 sau này với ZK Fraud Proof và mạch xác minh Groth16 làm cốt lõi, con đường công nghệ liên quan ngày càng trưởng thành. Nhiều dự án như Bitlayer, Citrea, BOB, v.v. đều dựa trên công nghệ BitVM để thực hiện các giải pháp khác nhau.
Bài viết này sẽ lấy ví dụ về kế hoạch bằng chứng gian lận của Optimism, phân tích kế hoạch của nó dựa trên máy ảo MIPS và bằng chứng gian lận tương tác, cũng như ý tưởng chính của bằng chứng gian lận ZK.
OutputRoot và StateRoot
Optimism là một dự án Optimistic Rollup nổi tiếng, hạ tầng của nó bao gồm bộ định thứ tự và hợp đồng thông minh trên chuỗi Ethereum. Sau khi bộ định thứ tự xử lý giao dịch, nó sẽ gửi dữ liệu lên Ethereum. Chạy client nút Optimism có thể tải xuống các dữ liệu này và thực thi tại chỗ, tính toán hash tập trạng thái hiện tại.
Nếu bộ định thứ tự tải lên hash trạng thái sai, kết quả tính toán tại chỗ sẽ khác, lúc này có thể khởi xướng nghi ngờ thông qua bằng chứng gian lận.
Blockchain EVM thường sử dụng cấu trúc dữ liệu Merkle Tree để ghi lại tập trạng thái, được gọi là World State Trie. Sau khi thực hiện giao dịch, World State Trie sẽ thay đổi và hash cuối cùng của nó cũng sẽ được cập nhật. Ethereum gọi hash này là StateRoot, được sử dụng để biểu thị sự thay đổi của tập trạng thái.
Hệ thống tài khoản của Optimism tương tự như Ethereum, cũng sử dụng trường StateRoot. Bộ định thứ tự sẽ định kỳ tải lên OutputRoot tới Ethereum, OutputRoot được tính toán từ StateRoot và hai trường khác.
Máy ảo MIPS và Cây Merkle bộ nhớ
Để xác thực tính chính xác của OutputRoot trên chuỗi, phương pháp đơn giản nhất là triển khai một khách hàng nút OP trên Ethereum, nhưng có hai vấn đề:
Câu hỏi đầu tiên có thể được giải quyết thông qua hợp đồng PreimageOracle. Đối với câu hỏi thứ hai, đội ngũ OP đã sử dụng Solidity để viết máy ảo MIPS, thực hiện một phần chức năng của nút OP.
Nhóm phát triển OP đã viết một chương trình đơn giản bằng Golang, chức năng tương tự như OP node thực hiện giao dịch, tạo khối và module OutputRoot. Tuy nhiên, do chi phí tính toán quá lớn, không thể thực hiện hoàn toàn tất cả giao dịch trên chuỗi.
Để làm điều này, Optimism đã thiết kế hệ thống bằng chứng gian lận tương tác, phân tách quy trình xử lý giao dịch thành các thao tác mã MIPS theo thứ tự. Sau khi mỗi mã được thực hiện, trạng thái hash của máy ảo sẽ thay đổi, những bản ghi này được tổng hợp thành một cây Merkle.
Trong bằng chứng gian lận tương tác, cần xác định mã lệnh MIPS nào đã gây ra lỗi hash trạng thái máy ảo, sau đó tái tạo trạng thái lúc đó trên chuỗi và thực hiện mã lệnh đó, quan sát xem kết quả có nhất quán hay không. Điều này cần phải tải một phần thông tin trạng thái máy ảo MIPS lên chuỗi.
Hợp đồng liên quan đến bằng chứng gian lận trên chuỗi được thực hiện thông qua hàm Step để hoàn thành việc thực thi mã hoạt động MIPS:
solidity function step( bytes memory _stateData, bytes memory _proof ) public returns (bytes32) { // ... }
_stateData và _proof tham số chứa dữ liệu phụ thuộc cho việc thực thi mã MIPS đơn, như trạng thái thanh ghi, hash trạng thái bộ nhớ, v.v.
OP sử dụng kiến trúc MIPS 32 bit, bộ nhớ có thể được tổ chức thành 28 lớp cây Merkle nhị phân, với 2^27 bản ghi lá dữ liệu địa chỉ bộ nhớ ở tầng dưới. Hash tổng hợp của tất cả dữ liệu lá là memRoot.
Bằng chứng gian lận tương tác
Để xác định mã lệnh MIPS gây tranh cãi, đội OP đã phát triển giao thức Fault Dispute Game(FDG). Trong FDG có hai vai trò là Thách thức và Phòng thủ, cả hai bên cần xây dựng GameTree tại địa phương.
GameTree được cấu thành từ hai lớp cây: lớp lá đầu tiên là OutputRoot của các khối khác nhau, lớp lá thứ hai là trạng thái hash của máy ảo MIPS. Hai bên tranh chấp tương tác nhiều lần trên chuỗi, cuối cùng xác định mã thao tác MIPS đơn lẻ cần thực thi trên chuỗi.
Tóm lại, bằng chứng gian lận tương tác bao gồm hai cơ chế cốt lõi:
Bằng chứng gian lận ZK
Truyền thống bằng chứng gian lận tương tác phức tạp, tồn tại các vấn đề sau:
Để giải quyết những vấn đề này, Optimism đã đưa ra khái niệm ZK Fraud Proof. Cốt lõi là chỉ định các giao dịch cần phát lại khi thách thức, bộ định thứ tự cung cấp chứng minh ZK, được xác minh bởi hợp đồng Ethereum.
So với bằng chứng gian lận tương tác, Bằng chứng gian lận ZK đã thay đổi từ nhiều vòng tương tác sang một vòng tạo và xác minh bằng chứng ZK, tiết kiệm thời gian và chi phí. So với ZK Rollup, OP Rollup dựa trên Bằng chứng gian lận ZK chỉ tạo bằng chứng khi bị thách thức, giảm chi phí tính toán.
Ý tưởng về bằng chứng gian lận ZK cũng được BitVM2 áp dụng. Các dự án sử dụng BitVM2 như Bitlayer, Goat Network, v.v., thực hiện chương trình xác minh ZK Proof thông qua script Bitcoin và đã giảm đáng kể kích thước chương trình lên chuỗi.