Khả năng mở rộng quy mô và tăng cường hiệu suất giao dịch mỗi giây (TPS) của Ethereum đang là một chủ đề được tranh luận nóng hổi. Một số thậm chí đã đưa ra giả thuyết rằng Ethereum có thể bị tụt hậu khi các dự án blockchain mới hơn ra đời với khả năng xử lý vượt trội hơn.
Các giải pháp mở rộng cho EthereumĐã có 3 giải pháp mở rộng dành cho Ethereum được đề xuất như sau:
- Sharding Protocol – cho phép các node và các giao dịch được chia thành các nhóm nhỏ hơn để xử lý thay vì sử dụng toàn bộ mạng lưới để xác thực giao dịch.
- Raiden Network – mở rộng xử lý off-chain (ngoài chuỗi) bằng cách sử dụng công nghệ state channel (kênh thanh toán). Các giao dịch off-chain cho phép thu thập các node để thiết lập các kênh thanh toán với nhau, nhằm xử lý các giao dịch nhanh chóng hơn mà không cần liên quan đến mạng Etherem.
- Plasma Protocol – sử dụng một loạt các hợp đồng thông minh để tạo ra các cây phân cấp (hierarchical tree) của sidechain (chuỗi bên). Các sidechain có thể được điều chỉnh bằng cách sử dụng bộ quy tắc riêng của chúng và chỉ chuyển tiếp thông tin trở lại chuỗi mẹ Ethereum.
Vitalik Buterin đề xuất sử dụng ZK-SNARKS của ZCash
Trong một bài đăng trên trang Ethereum Research, Vitalik Buterin đã đề xuất một phương pháp mới để mở rộng quy mô mà không cần sử dụng bất kỳ lớp nào như được đề xuất thông qua Plasma. Đề xuất của anh là sử dụng công nghệ ZK-Snarks của ZCash.
Trong bài đăng trực tuyến, Vitalik đã nói như sau:
Chúng ta thực sự có thể mở rộng khả năng xử lý với một con số khổng lồ các giao dịch chuyển giao tài sản trên Ethereum, bằng cách sử dụng ZK-SNARK để xác thực hàng loạt các giao dịch. Đây là cách chúng ta làm điều đó.
Có hai loại người dùng: (i) transactor, và (ii) relayer. Một relayer có một tập hợp các hoạt động từ các transactor và kết hợp tất cả chúng thành một giao dịch và tạo ra một ZK-SNARK để chứng minh tính hợp lệ, và xuất bản ZK-SNARK, dữ liệu giao dịch ở dạng nén cao tới blockchain. Relayer được trả thù lao bằng phí giao dịch từ các transactor.
Hệ thống được quản lý bởi một hợp đồng, mà state chỉ bao gồm hai giá trị byte32 đại diện cho gốc Merkle: sổ địa chỉ (A) và balances + nonces (B). A bắt đầu như là một gốc Merkle của 224 mục không, và B là một cây Merkle của 2^24 (0, 0) tuple.
ZK-Snarks là gì?ZK-Snarks được định nghĩa như sau:
zk-SNARK là viết tắt của “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge,” và Zk-Snarks chạy trên ý tưởng về “Zero Knowledge Proofs” (Thuật toán “chứng minh không tiết lộ thông tin”), người ta có thể chứng minh việc sở hữu một số thông tin nhất định, ví dụ: một khóa bí mật, không tiết lộ thông tin đó và không có bất kỳ sự tương tác nào giữa người prover (người cung cấp) và verifier (người xác minh).
Zero Knowledge Proofs cho phép một bên (prover) chứng minh cho một bên khác (verifier) rằng một tuyên bố là đúng, mà không tiết lộ bất kỳ thông tin nào ngoài tính hợp lệ của bản thân tuyên bố. Ví dụ, với mã băm của một số ngẫu nhiên, prover có thể thuyết phục verifier rằng thực sự tồn tại một số với giá trị băm này, mà không tiết lộ nó là gì.
Tóm lại, đề xuất mới của Vitalik là bằng chứng mà nhiều thành viên cộng đồng Ethereum đang chờ đợi về những gì cần thiết cho khả năng mở rộng của mạng lưới. Điều này có nghĩa là mạng lưới sẽ có thể thực hiện một trong các giải pháp này trong tương lai gần.