
Morph: Giải pháp tích hợp EIP-4844 zkEVM và bằng chứng tổng hợp
Tuyển chọn TechFlowTuyển chọn TechFlow

Morph: Giải pháp tích hợp EIP-4844 zkEVM và bằng chứng tổng hợp
Bài viết này đề xuất một thiết kế mạch thực tiễn và hiệu quả trong bối cảnh đề xuất EIP-4844.
Tác giả: Morph

Bối cảnh
EIP-4844 đề xuất một loại giao dịch mới gọi là "giao dịch mang Blob", trong đó chứa lượng lớn dữ liệu không thể truy cập thông qua việc thực thi EVM, tuy nhiên cam kết (commitment) của các giao dịch này lại có thể được truy vấn. Loại giao dịch này nhằm mục đích tương thích hoàn toàn với định dạng được sử dụng trong các phương án phân mảnh (sharding).
Một Blob là một vector chứa 4096 phần tử trường hữu hạn (trường hữu hạn này là miền vô hướng BLS12-381). Về mặt toán học, 4096 phần tử trường hữu hạn này có thể nội suy thành một đa thức p(x) bậc 4095, giá trị của đa thức tại wi chính là phần tử thứ i trong số các phần tử trường hữu hạn.
Cam kết Blob có thể được tính toán từ cam kết KZG và xác minh thông qua phương pháp kiểm tra tương ứng.
Một số hằng số được giới thiệu trong EIP-4844:

EIP-4844 đóng vai trò then chốt trong quá trình Rollup. Khác với việc đưa dữ liệu Rollup vào calldata của giao dịch, Rollup mong muốn người gửi (submitter) đưa dữ liệu vào blob. Giải pháp này vừa đảm bảo tính sẵn có dữ liệu, vừa giảm chi phí trên chuỗi do việc sử dụng lượng lớn calldata. Rollup cần đảm bảo tính sẵn có dữ liệu, nghĩa là trong thời gian đủ dài, các bên trung thực có thể xây dựng xác minh trạng thái, nhưng dữ liệu này không cần tồn tại mãi mãi trên chuỗi. ZK rollup sẽ cung cấp hai cam kết cho các giao dịch hoặc trạng thái của mình: cam kết Blob và bằng chứng zk.
Chứng minh tương đương cam kết KZG trong EIP-4844
Trong việc triển khai mạch chứng minh kiến thức không hiện tại (zero-knowledge proof circuit), do chưa hỗ trợ các thao tác phức tạp ngoài trường nguyên sinh như xác minh song tuyến tính trên đường cong elliptic BLS12-381, nên người ta chuyển đổi việc xác minh cam kết Blob thành việc xác minh tính nhất quán giá trị tại một điểm thách thức bất kỳ, dựa trên sự tương đương giữa tính nhất quán giá trị đa thức tại điểm thách thức và tính hữu hạn của cam kết.
Chứng minh nhất quán trong EIP-4844 gồm ba phần:
-
Sử dụng mạch để chứng minh tính nhất quán giữa văn bản giao dịch gốc trong Blob và các phần tử trường hữu hạn của Blob.
-
Sử dụng mạch để chứng minh rằng giá trị của đa thức được mã hóa từ các phần tử trường hữu hạn tại điểm thách thức x là y.
-
Sử dụng hợp đồng dựng sẵn (precompiled contract) để chứng minh mối quan hệ liên quan giữa cam kết c, giá trị thách thức x và giá trị đa thức y.
Xác minh tính nhất quán giữa văn bản giao dịch gốc và Blob
Đầu tiên thiết kế mạch để chứng minh mối quan hệ tương ứng giữa văn bản giao dịch gốc trong Blob và các phần tử trường hữu hạn của Blob. Đầu vào của mạch này là văn bản giao dịch gốc và 4096 phần tử trường hữu hạn, ràng buộc logic tính toán, cách mã hóa từ văn bản giao dịch gốc sang mã hóa Blob như sau:
-
Mã hóa 31 byte dữ liệu đầu vào thành 32 byte, tương ứng một phần tử miền vô hướng bls12-381, đồng thời dữ liệu mã hóa không vượt quá phạm vi mô-đun của miền vô hướng. Để hỗ trợ phương pháp xác minh phân mảnh Blob về sau, chúng tôi chia dữ liệu đầu vào (thông tin văn bản giao dịch) trong Batch theo từng chunk.
-
Với mỗi mã hóa blob của chunk, độ dài dữ liệu đầu vào của chunk đó được lưu vào 4 byte đầu tiên trong 31 byte đầu tiên, đồng thời 27 byte dữ liệu đầu vào phân đoạn trước được mã hóa vào 27 byte còn lại, tạo thành phần tử trường hữu hạn đầu tiên trong phân đoạn blob của chunk (32 byte, byte đầu tiên là 0, byte thứ hai đến thứ tư biểu thị độ dài dữ liệu đầu vào của chunk, 27 byte còn lại lưu 27 byte dữ liệu đầu tiên).
-
Các dữ liệu đầu vào tiếp theo của chunk được chia theo từng 31 byte và lưu vào 32 byte; khi dữ liệu cuối cùng của chunk không đủ 31 byte thì bổ sung thêm số 0 ở cuối.
Phương pháp mã hóa này chia độ dài Batch thành nhiều độ dài Chunk và lưu vào từng phần tử blob trong mỗi phân đoạn chunk, thuận lợi hơn cho việc thiết kế phương án tổng hợp về sau.

Xác minh đánh giá đa thức Blob
Mạch này dùng để xác minh rằng giá trị của đa thức p(x) suy ra từ Blob tại một điểm bất kỳ (điểm thách thức) x là y. Thông qua phương pháp này, việc xác minh Blob EIP-4844 mà không thể trực tiếp xác minh cam kết Blob được chuyển thành việc xác minh điểm thách thức x, giá trị đa thức y và cam kết đa thức c. Đầu vào của mạch này là 4096 phần tử trường hữu hạn và điểm thách thức x, đầu ra là kết quả tính toán đa thức y.
Logic đánh giá đa thức Blob chủ yếu sử dụng công thức đánh giá Barycentric, đối với Blob có 4096 phần tử trường hữu hạn:

Công thức đánh giá là:

Xác minh tính nhất quán giữa cam kết Blob và giá trị
Trước bước này, việc kiểm tra tính nhất quán giữa Blob và cam kết của nó đã được chuyển thành kiểm tra tính nhất quán giữa điểm thách thức x, giá trị hàm y và cam kết Blob. Với sự hỗ trợ của EIP-4844, hợp đồng thông minh có thể lấy được cam kết của Blob, phần xác minh này có thể được thực hiện trực tiếp bởi hợp đồng trên chuỗi. Dưới đây chúng tôi thảo luận về tối ưu hóa tổng hợp chứng minh đánh giá mạch ở bước trước.
Phương án xác minh tổng hợp Blob
Mỗi 32 byte dữ liệu trong Blob có thể được biểu diễn bằng một miền vô hướng BLS12-381, nhưng độ dài dữ liệu văn bản giao dịch gốc trong dữ liệu giao dịch ban đầu là không cố định, do đó có thể gặp các vấn đề sau:
-
Không thể đảm bảo rằng dữ liệu văn bản giao dịch trong một chunk là bội số nguyên của 32 byte, do đó số lượng phần tử trường hữu hạn được mã hóa từ dữ liệu giao dịch trong một chunk có thể không phải là một số nguyên
-
Dữ liệu giao dịch sau khi mã hóa có thể phân bố trên hai Blob
-
Sau khi mã hóa, dữ liệu của một Batch hoặc chunk có thể chưa đủ 4096 phần tử trường hữu hạn, dẫn đến hiệu suất sử dụng không gian Blob thấp
Để giải quyết vấn đề đầu tiên, chúng tôi thêm số 0 vào một Chunk (tương ứng dữ liệu giao dịch) sao cho số lượng phần tử trường hữu hạn được mã hóa từ số lượng giao dịch mà một Chunk có thể chứa là một số nguyên; đối với vấn đề thứ hai, chúng tôi yêu cầu một giao dịch không được lưu trữ xuyên qua hai Blob, đồng thời tối ưu hóa việc mở nhiều điểm cam kết KZG đối với nhiều Blob.
Đối với vấn đề thứ ba, chúng tôi đề xuất một phương án tổng hợp mới. Trước tiên, chúng tôi sửa đổi việc lưu thông tin độ dài batch trong bốn bit đầu tiên của năm bit ban đầu thành việc lưu thông tin độ dài chunk trong từng phân mảnh vào bốn bit đầu tiên của năm bit trong mỗi phân mảnh, cách mã hóa sau đó vẫn giữ nguyên, đồng thời trong chứng minh Chunk ngoài việc kiểm tra tính nhất quán mã hóa, còn nhập chỉ số phần tử trường hữu hạn được mã hóa từ dữ liệu giao dịch trong chunk đó (chỉ số phần tử trong Blob của giao dịch đầu tiên và giao dịch cuối cùng trong chunk).


Giải pháp của chúng tôi có những ưu điểm sau:
-
Tính tương thích: EIP-4844 sử dụng Blob-data, giải pháp của chúng tôi cụ thể hóa quá trình mã hóa từ dữ liệu văn bản giao dịch gốc sang Blob-data, tương thích với mạch ZKevm hiện tại.
-
Tính thực tiễn: Hợp đồng dựng sẵn Ethereum chỉ hỗ trợ BN254, việc sử dụng BLS12-381 để xác minh cam kết KZG sẽ dẫn đến lượng lớn tính toán miền vô hướng ngoài đường cong nguyên bản (như thao tác ghép cặp), gây tiêu tốn nhiều gas; chúng tôi sử dụng công thức Barycentric làm giảm đáng kể số lượng tính toán sai miền, đảm bảo lượng tính toán thực tế là khả thi.
-
Tính tổng hợp: Chứng minh tổng hợp có thể giảm số lượng chứng minh và số lần xác minh, giảm tiêu thụ gas trên chuỗi. Giải pháp của chúng tôi nâng cao mức độ tổng hợp ở cấp độ chunk, kết hợp với EIP-4844 có thể giảm tiêu thụ gas tốt hơn.
Kết luận
Các giải pháp Layer-2 đóng vai trò quan trọng trong lộ trình mở rộng quy mô của Ethereum, tuy nhiên cũng tồn tại tranh cãi về tính an toàn và thiếu sót về hiệu suất. ZK-rollup sử dụng lý thuyết toán học vững chắc, có độ đảm bảo an toàn rất cao, mặc dù đi kèm với chi phí tạo và xác minh bằng chứng. Thông qua các thuật toán và phần cứng tốt hơn, chi phí tạo bằng chứng có thể được giảm hiệu quả; thông qua việc tối ưu hóa logic tính toán và lưu trữ trên chuỗi, phần sau cũng có thể được cải thiện.
EIP-4844 với tư cách là chất xúc tác cho các giải pháp rollup, có thể mang lại tối ưu hóa lớn cho chi phí gas lưu trữ dữ liệu trên chuỗi, đồng thời cũng đặt ra những thách thức thực tế trong ứng dụng. Bài viết này đề xuất một thiết kế mạch thực tiễn và hiệu quả dưới đề xuất EIP-4844, hiệu quả giảm tiêu thụ gas và tương thích giải quyết một số vấn đề khi áp dụng EIP4844. Đội ngũ Morph luôn theo đuổi việc tạo ra hệ sinh thái giao dịch với chi phí thấp hơn và an toàn hơn, với tầm nhìn này, không ngừng khám phá công nghệ mới và hy vọng đóng góp nhiều hơn cho hệ sinh thái cộng đồng.
Chào mừng tham gia cộng đồng chính thức TechFlow
Nhóm Telegram:https://t.me/TechFlowDaily
Tài khoản Twitter chính thức:https://x.com/TechFlowPost
Tài khoản Twitter tiếng Anh:https://x.com/BlockFlow_News













