Trending

Để Ethereum có thể phổ cập rộng rãi đến cộng đồng, Ethereum cần giải quyết được bài toán blockchain trilemma (bộ ba bất khả thi về bảo mật, ứng dụng và phi tập trung). Hiện tại, Ethereum đang từng bước giải quyết và đã hoàn thành được bước đầu tiên là The Merge.

Tuy nhiên, thiết kế Sharding theo kế hoạch ban đầu đang được xem là chưa hợp lý và khó triển khai, vì vậy, đội ngũ Ethereum Foundation đã ra mắt các giải pháp khác.

Key Insights:

  • Danksharding (DS) là tầm nhìn trong dài hạn của Ethereum. Hiện tại, Ethereum chưa triển khai nguyên mẫu nào của DS.
  • Proto-danksharding (PDS) hay có tên gọi khác là EIP-4844 là một đề xuất để triển khai hầu hết các logic của DS, đóng vai trò như “giàn giáo” cho sự phát triển DS sau này.
  • PDS khá phức tạp, nó yêu cầu một số thay đổi trên các ứng dụng khách lớp đồng thuận và lớp thực thi để xử lý các blob data. Bên cạnh đó, để có thể tận dụng tối đa lợi ích của mình, nó còn yêu cầu những thay đổi đáng kể trong các nhóm tổng hợp.
  • EIP-4488 là một cách triển khai đơn giản để giảm phí calldata cho các Rollup protocol. Nó không hoàn hảo nhưng đơn giản và dễ triển khai.

Bối cảnh

Tháng 10/2020, Ethereum đã thay đổi kế hoạch phát triển của mình sang một lộ trình tập trung vào Rollup. Roadmap chi tiết được Vitalik công bố chính thức trên twitter cá nhân của mình vào tháng 12/2021. Trong đó, roadmap mới của Ethereum sẽ bao gồm 5 cột mốc chính: The Merge, The Surge, The Verge, The Purge và The Splurge.

Trong phần này, chúng ta sẽ tìm hiểu kế hoạch phát triển đầy tham vọng của Ethereum vào thời điểm trước và những lý do chính khiến Ethereum chọn chuyển sang roadmap mới.

Các thuật ngữ liên quan

Các thuật ngữ sau đây sẽ được sử dụng thường xuyên trong bài viết.

Sharding: Kỹ thuật chia nhỏ cơ sở dữ liệu theo chiều ngang, kỹ thuật này giúp mạng xử lý giao dịch theo từng cụm, giảm khối lượng công việc và tăng hiệu quả xử lý dữ liệu, đồng thời không ảnh hưởng tới sự phi tập trung của mạng lưới. Tuy nhiên, việc triển khai kỹ thuật này có độ khó cao và tồn tại rất nhiều rủi ro liên quan. Ngoài ra, có rất nhiều cách thiết kế triển khai sharding khác nhau.

Rollup: Giải pháp mở rộng off-chain giúp tăng thông lượng của base layer (lớp cơ sở) mà không yêu cầu thay đổi giao thức hiện có. Các giải pháp rollup di chuyển việc tính toán, lưu trữ trạng thái (execution) off-chain. Sau đó, chúng đồng bộ hóa trạng thái lên base layer, dữ liệu giao dịch có thể được lưu trữ on-chain hoặc off-chain tùy thuộc mục đích sử dụng của rollup protocol.

Kế hoạch mở rộng tập trung vào execution sharding

Các vấn đề mở rộng của Ethereum đã được chú ý từ năm 2015, trong đó, một trong những nghiên cứu đáng chú ý là kế hoạch chuyển đổi từ PoW sang PoS vào năm 2015 của Vitalik (chi tiết tại đây). Nhưng nhìn chung, việc mở rộng blockchain rất khó khăn, có thể kể đến “the scalability trilemma” nổi tiếng.

Tại Ethereum, Vitalik và các nhà phát triển cốt lõi đều đồng ý rằng các yếu tố về “secure” (bảo mật) và “decentralized” (phi tập trung) rất quan trọng và ảnh hưởng tới khả năng tồn tại lâu dài của Ethereum. Vì vậy, Ethereum thà hy sinh một mức độ nhất định về khả năng mở rộng hơn là từ bỏ tính phi tập trung và bảo mật.

Năm 2019, đa phần các nhà phát triển Ethereum đồng thuận với roadmap sau: chuyển PoW sang PoS (giai đoạn 0) → data sharding (giai đoạn 1) → execution sharding (giai đoạn 2).

Với tầm nhìn trên, data sharding không liên quan đến việc code execution (thực thi mã), mà chỉ liên quan đến việc lưu trữ và xác minh dữ liệu (data storage and verification – data availability). Sau khi thực hiện giai đoạn 2, sẽ có nhiều execution shard để xử lý các giao dịch song song và cuối cùng chúng sẽ được tổng hợp (tx data & state) và đưa lên Beacon Chain.

Ethereum sẽ phát triển từ một monolithic blockchain thành một modular blockchain. Khả năng mở rộng và tăng hiệu quả thực thi được giải quyết nhờ  các execution shard có thể thực hiện các giao dịch song song.

Vì sao Monolithic Blockchain phải chuyển sang Modular Blockchain? Phương pháp chuyển đổi như thế nào? Tìm hiểu thêm: Monolithic blockchain & Modular blockchain là gì?

Bên cạnh đó, Vitalik cũng đề xuất một ngôn ngữ trung gian gọi là eWASM, cho phép tất cả ngôn ngữ lập trình được biên dịch sang ngôn ngữ trung gian này của Ethereum và cuối cùng được biên dịch thành EVM bytecode và thực thị ở máy ảo EVM.

Theo cách này, Ethereum sẽ trở thành một hệ sinh thái phong phú có thể được phát triển bằng mọi ngôn ngữ lập trình. Thậm chí mỗi execution shard có thể được thiết kế với các máy ảo khác nhau. Cuối cùng, trạng thái và dữ liệu giao dịch trên các execution shard được đồng bộ hóa và tổng hợp vào lớp cơ sở giống như cách tiếp cận của các Rollup protocol hiện nay.

Hạn chế trong kế hoạch mở rộng của Ethereum

Thiết kế sharding ban đầu của Ethereum được tạo ra để phục vụ mục tiêu execution sharding. Trong thiết kế này, chain chính được thiết kế để trở thành DA & settlement layer, nó sẽ không hỗ trợ thực thi giao dịch. Các shard sẽ là nơi để thực thi code, cách hoạt động của chúng tương tự như các Layer 1 hiện tại.

Một trong những phần quan trọng của thiết kế sharding này là việc xáo trộn các validator giữa các shard giữa các kỷ nguyên (epoch). Cụ thể, Beacon Chain sẽ hoạt động như một bộ điều phối, hướng một số validator vào một shard cụ thể mà họ chịu trách nhiệm xác thực. Tất cả các validator sẽ bị xáo trộn sau mỗi kỷ nguyên.

Thiết kế này rất phức tạp vì nó tạo ra các thị trường phi độc lập trên mỗi shard. Ngoài ra, nó cũng phát sinh nhiều rủi ro khác:

  • Mỗi shard sẽ dễ bị tấn công hơn vì có ít nút (node) hơn.
  • Việc xáo trộn các validator rất phức tạp về mặt kỹ thuật.
  • Rất khó để chứng thực quá trình trên các shard được hoàn thành trong một khoảng thời gian cố định (12 giây sau The Merge).

Bên cạnh đó, mất quá nhiều thời gian để hoàn thành The Merge và do các vấn đề về kỹ thuật và rủi ro liên quan, các nhà phát triển cốt lõi của Ethereum vẫn chưa đạt được thống nhất về thiết kế sharding. Trong khi đó, các giải pháp mở rộng off-chain đang phát triển nhanh chóng, tiêu biểu là công nghệ Rollup.

Tất cả điều này dẫn tới một thay đổi lớn trong lộ trình phát triển của Ethereum – lộ trình phát triển tập trung vào Rollup. Rollup sẽ nằm trong tầm nhìn phát triển trung và dài hạn của Ethereum.

Thiết kế sharding cũ cũng được thay thế bằng một thiết kế mới để phù hợp hơn với tầm nhìn mới của Ethereum. Thiết kế sharding mới do Dankrad Feist – một nhà nghiên cứu tại Ethereum Foundation, đề xuất , vì vậy, nó được gọi là Danksharding (DS).

Danksharding & Proto-Danksharding là gì?

Danksharding là tầm nhìn dài hạn của Ethereum. Để hoàn thành Danksharding, Ethereum cần bổ sung một số tính năng mới vào giao thức. Hiện tại, một số tính năng vẫn còn đang trong quá trình nghiên cứu và phát triển, chưa có EIP cụ thể được đề xuất để triển khai Danksharding trên mainnet.

Liên quan tới Danksharding có 2 EIP liên quan:

  • Proto-Danksharding (EIP-4844).
  • EIP-4488.

Trong phần này, chúng ta sẽ tìm hiểu tổng quan về DS, PDS, EIP-4488 và mối liên hệ giữa chúng.

Danksharding (DS) là gì?

Danksharding là thiết kế sharding mới, tập trung vào tính khả dụng của dữ liệu. Nó giới thiệu một định dạng giao dịch mới “blob carrying transactions”, cho phép người gửi giao dịch “đính kèm” một khối dữ liệu lớn vào một giao dịch ( có thể hình dung nó giống như việc bạn gửi một email và file đính kèm).

Bằng cách này, Ethereum sẽ cung cấp nhiều không gian hơn cho các tx data (dữ liệu giao dịch) trên các Rollup protocol. Bản thân Ethereum không cố gắng diễn giải trực tiếp các blob data này. Giao thức sẽ sử dụng một “bộ quy tắc” được gọi là KZG commitment để xác minh blobs data này.

Khi các data shard được triển khai thành công, các Rollup protocol có thể gửi tất cả block data đến các shard khác nhau để xác minh song song. Về mặt lý thuyết, số lượng shard dữ liệu được triển khai có thể làm giảm chi phí Rollup.

Danksharding là tầm nhìn dài hạn của Ethereum. Để đưa nó lên mainnet, Ethereum cần thực hiện các module công việc khác nhau, cụ thể như DAS, PBS, KZG commitments và Censorship Resistance List (crList), cũng như các công việc liên quan đến quản lý trạng thái mạng (netowork state).

Vì vậy, thời gian mainnet của DS phụ thuộc vào sự ra mắt của các module liên quan, nếu không có thay đổi hay chậm trễ đáng kể nào khác, chúng ta có thể thấy DS mainnet trong khoảng thời gian 3-4 năm nữa (2025-2026).

Proto-danksharding (PDS) là gì?

Proto-danksharding (hay còn gọi là EIP-4844) là một đề xuất để triển khai hầu hết các logic của DS, đóng vai trò như “giàn giáo” cho sự phát triển DS sau này. PDS được lên kế hoạch mainnet vào Shanghai Upgrade, diễn ra trong 6 -12 tháng sau The Merge.

EIP-4844 giới thiệu định dạng giao dịch mang theo blob mà các Rollup protocol sẽ sử dụng để lưu trữ dữ liệu trong tương lai. Các blob mang một lượng lớn dữ liệu (~ 125 KB), chúng sẽ có cơ chế định giá riêng, nhưng nhìn chung sẽ rẻ hơn nhiều so với cách sử dụng calldata như hiện nay.

Phí đăng dữ liệu lên Ethereum chiếm một phần lớn trong tỷ lệ phí giao dịch mà người dùng trả trên các Rollup protocol. PDS sẽ giảm đáng kể phí này cho các Rollup protocol bằng cách dùng định dạng giao dịch blob thay vì calldata.

PDS sẽ giới thiệu phiên bản đầu tiên định dạng giao dịch với blob. Phiên bản cuối cùng là DS sẽ bổ sung thêm sharding, xác minh ứng dụng khách nhẹ thông qua DAS.

Sau đây là một số tính năng chính được giới thiệu trong PDS:

  • Định dạng giao dịch mang dữ liệu blob (Data blob-carrying transaction format).
  • KZG cam kết với các đốm màu (KZG commitments to the blobs).
  • Tất cả logic lớp thực thi cần thiết cho DS.
  • Tất cả logic xác minh chéo thực thi/đồng thuận cần thiết cho DS.
  • Phân tách lớp giữa xác minh BeaconBlock và các DAS blob.
  • Hầu hết logic BeaconBlock được yêu cầu cho DS.
  • Phí gas độc lập tự điều chỉnh cho các blob.

Sau đó, DS sẽ bổ sung thêm:

  • PBS.
  • DAS.
  • 2D KZG scheme.
  • Proof of Custody.

EIP-4488: Giải pháp giảm chi phí khi calldata

PDS là một bước đệm tuyệt vời cho DS. Tuy nhiên, PDS là một triển khai phức tạp, nhiều người cho rằng PDS khó có khả năng mainnet trong Shanghai Upgrade sắp tới.

EIP-4488 là một cách triển khai dễ thực hiện hơn. Nó không hoàn hảo hoàn toàn, nhưng cũng cung cấp lời giải cho bài toán liên quan phí Calldata của các Rollup protocol. EIP-4488 sẽ giúp giảm chi phí khi calldata với tổng giới hạn calldata.

Hạn chế của EIP-4488 là nó không liên quan nhiều tới tầm nhìn tổng thể DS, vì vậy giao thức sẽ cần nâng cấp nhiều khi chuyển sang DS sau này. Lộ trình tiềm năng có thể là triển khai EIP-4488 trong Shanghai Upgrade trong 6 tháng nữa. PDS sẽ được triển khai trong 6-12 tháng sau đó.

Nội dung EIP-4488 có hai phần chính:

  • Giảm chi phí calldata từ 16 gas mỗi byte xuống 3 gas mỗi byte.
  • Thêm giới hạn 1 MB calldata cho mỗi block, cộng thêm 300 byte cho mỗi giao dịch (tổng số tối đa theo lý thuyết là ~ 1,4 MB).

Giảm chi phí calldata từ 16 gas mỗi byte xuống 3 gas mỗi byte tương đương trực tiếp giảm 80% chi phí đăng dữ liệu của các Rollup lên Ethereum.

Mặc tích cực của nó là giảm phí giao dịch trên Rollup protocol. Tuy nhiên, tải trọng duy trì của EIP-4488 cao hơn nhiều so với PDS. Sự phát triển trạng thái mạng trên Ethereum sẽ tăng mạnh sau khi triển khai EIP-4488, khiến nó trở thành nút thắt cổ chai để chạy một node, ảnh hưởng tới tính phi tập trung của mạng.

Tác động của PDS và EIP-4488

Giảm phí giao dịch trên các Rollup Protocol

Ở mức độ sử dụng hiện tại, phí calldata chiếm khoảng 25-35% số phí giao dịch mà người dùng trả trên các Rollup protocol như Arbitrum hay Optimism.

  • EIP-4488 giảm chi phí calldata từ 16 gas mỗi byte xuống 3 gas mỗi byte. Điều này sẽ giảm chi phí calldata tổng thể của các Rollup protocol xuống 81.25%.
  • PDS tạo ra một cơ chế định giá mới cho việc đăng data lên Ethereum, chi phí có thể giảm từ 85-95% so với phương pháp calldata được sử dụng hiện tại.

Chi phí đăng dữ liệu lên Ethereum là chi phí biến đổi, nó phụ thuộc vào mức độ hoạt động của người dùng trên Rollup protocol. Hiện tại, chi phí này chỉ chiếm từ 25-35% trên tổng phí giao dịch mà người dùng chi trả.

Tuy nhiên, nếu nhu cầu sử dụng tăng lên 100-1,000 lần thì tỷ trọng của chi phí đăng dữ liệu lên Ethereum trên tổng chi phí người dùng chi trả sẽ tăng mạnh. Vì thế, EIP-4488 và PDS là các nâng cấp rất cần thiết cho Ethereum trong trung và dài hạn.

Độ khó của việc triển khai EIP-4488 và PDS

EIP-4488 là một EIP tương đối đơn giản. Nó có thể được hoàn thành trong vòng vài tuần. Mặc dù nó không hoàn hảo nhưng có thể đưa ra lời giải cho bài toán hiện tại.

PD là lựa chọn hoàn hảo cho mục tiêu triển khai DS nhưng nó lại phức tạp, yêu cầu một số thay đổi trên các ứng dụng khách lớp đồng thuận và lớp thực thi để xử lý các blob data. Bên cạnh đó, để có thể tận dụng tối đa lợi ích của mình, nó còn yêu cầu những thay đổi đáng kể trên các nhóm tổng hợp. Vì thế, việc có thể triển khai PDS trong Shanghai Upgrade hay không còn là một câu hỏi lớn.

DS là một thiết kế sharding thanh lịch hơn nhưng rõ ràng là nó vẫn nằm ở khía cạnh khái niệm và chưa có nguyên mẫu nào được triển khai ở hiện tại, và thời gian đưa chúng lên mainnet cũng sẽ mất tới hàng năm trời. Trong thời gian đó liệu chúng ta có thể tìm ra thiết kế sharding khác phù hợp cho tầm nhìn tập trung Rollup hay không?

Tổng kết

DS là tầm nhìn dài hạn của Ethereum, nhưng hiện tại chưa có nguyên mẫu nào được triển khai. Trước mắt, PDS là cách thực tế hơn để hiện thực hóa tầm nhìn DS. Tuy nhiên, nó vẫn rất phức tạp để mainnet trong Shanghai Upgrade vào Q2/2023.

bài viết liên quan