Vitalik Buterin muốn Ethereum chuyển phần lớn công việc mật mã nặng ra ngoài chuỗi vì cho rằng vấn đề không chỉ là tốn bao nhiêu gas để xác minh, mà còn là phải đưa bao nhiêu dữ liệu vào mạng. Một precompile có thể giúp thực hiện một phép kiểm tra mật mã rẻ hơn, nhưng Ethereum vẫn cần nhận dữ liệu đầu vào của phép kiểm tra đó. EIP-8288 đề xuất giữ các chữ ký và bằng chứng lớn bên ngoài khối khi có thể, rồi gom việc xác minh chúng thành các bằng chứng STARK đệ quy. Đề xuất hiện vẫn mang trạng thái Draft (dự thảo).
4
16
Vì sao không chỉ bổ sung thêm precompile?
Precompile là các thao tác tích hợp sẵn, giúp Ethereum thực hiện một số phép toán mật mã với chi phí thấp hơn. Tuy nhiên, chúng không tự giải quyết được chi phí truyền tải chữ ký, bằng chứng hay dữ liệu khác cần thiết cho việc xác minh. Buterin cho rằng băng thông dữ liệu—chứ không chỉ gas dùng để xác minh—giới hạn lượng dữ liệu mật mã Ethereum có thể xử lý. Ông ước tính mức thông lượng dữ liệu thực tế tối đa vào khoảng 8 MB mỗi giây, ngay cả khi có PeerDAS và các khối mang dữ liệu blob. Đây là ước tính của ông, không phải giới hạn calldata chính thức của giao thức.
4
12
Việc tạo precompile riêng cho từng hệ mật mã cũng có cái giá về độ linh hoạt: mỗi loại mới có thể làm giao thức phức tạp hơn và đòi hỏi các ứng dụng khách Ethereum triển khai hỗ trợ. EIP-8288 hướng tới một lối xác minh chung, có thể áp dụng cho nhiều hệ mật mã.
7
16
Các ví dụ trong dự thảo cho thấy lý do cần cân nhắc cả dữ liệu lẫn chi phí xác minh: chữ ký dựa trên hàm băm có thể dài khoảng 2–3 kB, với chi phí xác minh trực tiếp ước tính 150.000–200.000 gas. Đây là con số minh họa trong đề xuất, không phải mức phí cố định cho mọi loại chữ ký hay mọi cách triển khai.
10
EIP-8288 dự kiến hoạt động ra sao?
EIP chính thức ghi Vitalik Buterin và Thomas Coratger là đồng tác giả. Đề xuất mở rộng giao dịch dạng frame của EIP-8141 và có ba phần chính:
16
- Giao dịch khai báo các mục phụ thuộc gọn nhẹ. Mỗi mục xác định một hệ mật mã, mã băm của dữ liệu và mã băm của khóa xác minh. Theo đề xuất, mỗi bộ ba này được mã hóa trong 96 byte.
16
13
- Dữ liệu mật mã đầy đủ được truyền trong quá trình lan truyền giao dịch. Chữ ký hoặc bằng chứng lớn được gửi kèm giao dịch khi chúng di chuyển qua mạng, thay vì đưa nguyên vẹn toàn bộ dữ liệu gốc vào khối. Các bên tham gia mempool—nơi giao dịch chờ được đưa vào khối—có thể phối hợp gom công việc xác minh.
15
16
- Các bước xác minh được gom lại. Thiết kế dự kiến dùng STARK đệ quy để kết hợp nhiều lần kiểm tra. Thay vì chứa từng dữ liệu mật mã gốc, khối sẽ có một bằng chứng tổng hợp. Mục tiêu là giảm lượng dữ liệu cần đưa vào khối; cách làm này không làm tăng giới hạn băng thông nền tảng của mạng.
6
15
16
Người dùng cũng có thể thực hiện các phép tính mật mã tốn kém ngay trên thiết bị của mình, rồi tạo STARK để chứng minh kết quả. Mục tiêu là giúp Ethereum hỗ trợ nhiều hệ mật mã hơn mà không cần xây dựng một precompile riêng cho từng loại.
3
6
Điều gì có thể thay đổi—and điều gì không?
Nếu hoạt động như thiết kế, các mục phụ thuộc gọn nhẹ và việc gom xác minh có thể giảm lượng dữ liệu chữ ký, bằng chứng gốc phải được ghi vào khối. Lợi ích cốt lõi không đơn giản là “mật mã chạy nhanh hơn”: một phần công việc được chuyển sang người dùng và các bên tham gia mempool, đồng thời hạn chế lượng dữ liệu Ethereum cần đưa lên chuỗi.
1
13
16
Điều đó không có nghĩa chi phí mật mã biến mất. Người dùng và các bên trong mạng vẫn phải tạo, truyền và xác minh dữ liệu cùng các bằng chứng liên quan. Những nguồn hiện có cũng chưa chứng minh EIP-8288 sẽ giảm gas đến một mức cụ thể hay giải quyết được toàn bộ các giới hạn mở rộng của Ethereum.
Những câu hỏi còn bỏ ngỏ
Độ tin cậy của bằng chứng và hàm băm. Dự thảo nêu độ đúng đắn của các mạch xác minh và hàm băm dùng cho mục phụ thuộc là những giả định an ninh quan trọng. Một bản cập nhật sau đó còn ràng buộc mã băm phụ thuộc của khối với mạch tổng hợp. Đây là các biện pháp cần được đánh giá, không phải bằng chứng cho thấy hệ thống đã được kiểm chứng đầy đủ hoặc chứng minh an toàn khi triển khai.
32
Nguy cơ tấn công từ chối dịch vụ ở mempool. Việc gom bằng chứng làm phát sinh thêm công việc và khâu xử lý dữ liệu tại mempool. Rủi ro từ chối dịch vụ được nêu là một điểm cần lưu ý, nhưng tài liệu hiện có chưa cho thấy mọi biện pháp phòng vệ đã hoàn thiện hoặc đủ hiệu quả.
25
Các giới hạn trong dự thảo chưa phải quy tắc trên mainnet. Một bản sửa đổi chính thức đặt giới hạn mỗi giao dịch ở mức 16 mục phụ thuộc chữ ký và một mục phụ thuộc STARK. Đây là tham số trong dự thảo, không phải quy tắc Ethereum đã được triển khai.
32
Chữ ký dựa trên lattice vẫn là vấn đề an ninh cần xem xét. Các bài tường thuật cho biết Buterin để ngỏ khả năng dùng precompile cho mật mã lattice trong những ứng dụng như tài khoản và ví, nếu tính an toàn được chứng minh. Lo ngại về khả năng AI hỗ trợ tấn công là một vấn đề cần đánh giá, không phải bằng chứng cho thấy chữ ký lattice đã bị phá vỡ.
17
24
EIP-8288 hiện vẫn ở trạng thái Draft. Các nguồn mô tả công việc mô phỏng và thử nghiệm trên mạng thử nghiệm, chứ không phải một đợt triển khai mainnet đã được phê duyệt. Chưa có quyết định cuối cùng về việc thông qua hay lịch triển khai.
15
16