Danksharding

Một thiết kế sharding mới được gọi là proto-danksharding đã được giới thiệu như một phần của lộ trình chuyển sang sharding blockchain đầy đủ của Ethereum. Chúng ta cùng tìm hiểu về proto-danksharding và cách nó giúp mở rộng quy mô Lớp 2 nhé.

Danksharding là gì?

Trước khi tìm hiểu về Danksharding, chúng ta sẽ nhắc lại về Sharding. Sharding đề cập đến việc chia một chuỗi khối thành các phần nhỏ hơn để nâng cao hiệu quả tổng thể.

Ví dụ: Thay vì xử lý một giao dịch trị giá 100.000 đô la trên Ethereum Mainnet, giao dịch có thể được chia thành mười phần, mỗi phần mang dữ liệu của các giao dịch trị giá 10.000 đô la. Điều này nhằm mục đích giảm tắc nghẽn mạng.

Ngoài việc tăng tốc độ, chuỗi sharding cung cấp dung lượng lưu trữ lớn hơn và giảm phí. Điều quan trọng cần lưu ý là sharding là một quá trình triển khai sẽ trải qua nhiều giai đoạn khác nhau trước khi đi đến giai đoạn cuối cùng.

Xem thêm bài viết chi tiết về Sharding tại đây.

dank sharding vs sharding

Danksharding là một thiết kế sharding thực hiện khái niệm phí thị trường hợp nhất; không giống như sharding thông thường, trong đó các shard có cả người đề xuất khối (block proposers) và block khác nhau, nhưng chỉ có một người đề xuất (proposer) tồn tại trong danksharding.

Những người xây dựng khối (block builder) có nhiệm vụ chọn dữ liệu và giao dịch đưa vào từng vị trí của một khối.

Danksharding và sharding có liên quan với nhau, nhưng chúng khác nhau. Mặc dù sharding là thiết kế tổng thể để phân tách các mạng nhằm nỗ lực mở rộng quy mô Ethereum, nhưng danksharding là một bước để hiện thực hóa mục tiêu này.

Tim Beiko—một trong những nhà nghiên cứu Ethereum hàng đầu, ông đã giải thích trên podcast Bankless nguồn gốc của cái tên Danksharding, được đặt theo tên của một nhà nghiên cứu Ethereum kỳ cựu khác, Dankrad Feist.

Mô hình hoạt động của Danksharding

Người xây dựng khối (Block builders) đẩy một yêu cầu để xác định những gì sẽ đưa vào mỗi vị trí mà sau này sẽ tạo thành một khối, và sau đó, người đề xuất (proposer) sẽ chọn người trả giá cao nhất. Khi một người xây dựng (builder) đã được chọn để giám sát một vị trí, họ có trách nhiệm xử lý toàn bộ khối.

Trong một số trường hợp, có thể các nhà oracle có thể thực hiện vai trò của người xây dựng khối (block builder). Theo nhóm Ethereum, lý do chính đằng sau thiết kế này là để hạn chế hai biện pháp kiểm soát không công bằng mà những người miner – MEV:

  • Đầu tiên, những người miner có thể thực hiện quyền ưu tiên không công bằng bằng cách chọn giao dịch của họ hoặc giao dịch của những người họ biết.
  • Thứ hai, những người miner có thể chọn thủ công các giao dịch với người trả giá cao nhất, do đó để lại hàng triệu giao dịch khác trong mempool trong nhiều giờ hoặc nhiều ngày.

Tuy nhiên, với danksharding, không ai biết nội dung của danh sách giao dịch được sắp xếp theo thứ tự mà người xây dựng block đệ trình. Do đó, sẽ hạn chế sức mạnh của những người miner (sau The Merge chúng còn gọi là những người proposer).

Sự khác biệt giữa người xây dựng khối (block builders) và người đề xuất (proposers)

Những người xây dựng khối (block builders) thực hiện vai trò xây dựng khối, trong khi những người đề xuất khối (proposers) chọn các header giao dịch sẽ được thêm vào khối và phân tán chúng. Hai người này làm việc tay trong tay.

Các nhà xây dựng khối gộp các giao dịch thành các vị trí hoặc các phần để chúng có thể được thêm vào một khối, sau đó các nhà xây dựng gửi chúng cho những người đề xuất để lựa chọn. Sau khi người đề xuất chọn thành công một khối, những người xây dựng khối sẽ xử lý khối đó.

Những người khai thác (miner), trong giai đoạn hiện tại của Ethereum, có thể gọi là những người đề xuất khối (proposer). Sau Hợp nhất, những người khai thác sẽ được gọi là người xác thực (validator) thì hợp lý hơn. Mặt khác, block builders là một nhóm hoạt động mới sẽ được tạo ra.

Mẫu dữ liệu khả dụng (Data Availability) trong Danksharding

Một nguyên lý cơ bản của blockchain là tính minh bạch. Nếu một khối sai lệch hoặc không hợp lệ được thêm vào chuỗi, nó có thể gây hại cho toàn bộ mạng.

Thông thường, trong hệ sinh thái Ethereum, các nút đầy đủ (full node) có thể đưa ra bằng chứng gian lận cho các light client — và toàn bộ mạng nói chung — làm bằng chứng cho thấy giao dịch không hợp lệ. Nhưng điều này chỉ hoạt động tốt với các bản rollup và có thể không hoàn toàn hoạt động trong Danksharding.

Những miner có thể xác minh các danksharded blocks khi họ lấy mẫu dữ liệu khả dụng (data availability). Trước hết, dữ liệu khả dụng là dữ liệu cơ bản đằng sau một hàm băm cụ thể đã được xuất bản trên chuỗi (on-chain). Tại ETH Dubai năm 2022, Protolambda đã giải thích dữ liệu khả dụng có nghĩa là khả năng tái cấu trúc trạng thái mà không cần sự cho phép (permissionless).

Trên thực tế, việc lấy mẫu dữ liệu khả dụng này được triển khai với các mã xóa. Các mã xóa có thể được lấy mẫu để lấy dữ liệu thực tế đã được thêm vào vị trí trong khối hoặc khối.

Sau khi các giao dịch đã được xử lý, có thể có các tranh luận đang diễn ra liên quan đến thời điểm nên xóa dữ liệu khỏi chuỗi khối Ethereum để tránh tắc nghẽn thông lượng.

Hiện tại, có kế hoạch rằng dữ liệu sẽ bị xóa sau một tháng. Tuy nhiên, ngay cả sau ngày hết hạn, dữ liệu vẫn có thể truy cập được thông qua nhiều phương tiện khác nhau như Graph protocol và block explorers. 

Proto-danksharding (EIP-4844) là gì?

Như hiện tại, vẫn còn rất nhiều điều phải giải quyết trong nỗ lực hiện thực hóa toàn bộ Danksharding. Điều này dẫn đến việc tạo ra đề xuất EIP-4844, đây là một định dạng triển khai proto-danksharding.

Đề xuất này nhằm thực hiện những thay đổi cốt lõi, đặc biệt là định dạng giao dịch, định dạng giao dịch được thiết kế để hoàn toàn tương thích với định dạng sẽ được sử dụng trong phân đoạn Sharding đầy đủ. Cái tên proto-danksharding cũng được đặt ra từ tên của một nhà nghiên cứu Ethereum khác – Proto Lambda.

Thay đổi thực sự mà Proto Lambda đã giới thiệu cho Danksharding được gọi là Đối tượng lớn nhị phân (Binary Large Objects), thường được gọi tắt là “blobs”. Các blobs không phải là khái niệm mới trong lập trình, vì chúng tồn tại trong JavaScript và Python. Tuy nhiên, điều mới là khả năng các blobs có thể có liên quan trong các hợp đồng thông minh. Để hiểu điều đó rõ hơn, chúng ta cùng tìm hiểu blobs là gì?

Blobs (Binary Large Objects) là gì?

Các Blobs được đề xuất bởi những người đề xuất khối (block proposers) và chúng được ví như gói lớn hoặc gói di động lớn có thể chứa dữ liệu rẻ hơn. Mỗi khối có thể chứa một kích thước giới hạn của những bọc lớn này. Về mặt cấu trúc, một blob điển hình có phần thân và phần tiêu đề (header).

Phần thân của một blob luôn lưu trữ các phần dữ liệu có liên quan liên quan trực tiếp đến các giao dịch. Mặt khác, một tiêu đề (header) chứa các mẩu thông tin nhỏ hơn, chẳng hạn như chữ ký của người đề xuất.

Trong proto-danksharding, mỗi giao dịch luôn có một blob song sinh và mục tiêu cuối cùng của việc này là làm cho giao dịch rẻ hơn. Để nâng cao khả năng mở rộng, mỗi vị trí trong proto-danksharding hầu hết sẽ có băng thông dữ liệu 1 MB.

Lưu ý: Máy ảo Ethereum chỉ có thể truy cập dữ liệu rẻ hơn được gói trong một blob chứ không phải bản thân các blob vì các giao dịch trong danksharding sẽ không nằm trong mempool thông thường mà thay vào đó là một mempool khác.

Proto-danksharding có làm giảm phí gas không?

Câu trả lời là “Không”. Proto-danksharding sẽ không giảm phí gas Ethereum, nhưng nó sẽ giảm chi phí giao dịch của các giao thức Lớp 2.

Câu hỏi này xuất hiện rất nhiều trong các cuộc trò chuyện về proto-danksharding. Quan niệm sai lầm này chắc chắn sẽ xảy ra vì proto-danksharding sẽ giới thiệu các blobs.

Ngay cả khi đó, các blobs sẽ chỉ thay thế call data mà các rollup thường sử dụng. Do đó, phí gas trên giao thức Ethereum sẽ vẫn như cũ.

Các nhà phát triển đã theo dõi các bản cập nhật của hệ sinh thái Ethereum trong nhiều năm nay sẽ đồng ý rằng hầu hết các đề xuất hiện tại sẽ không ảnh hưởng trực tiếp hoặc giảm đáng kể phí gas của mạng lưới Ethereum, ngay cả cả The Merge cũng vậy.

Tình trạng hiện tại của proto-danksharding

Kể từ khi đề xuất cải tiến proto-danksharding được tạo ra vào đầu tháng 2, đã có những kỳ vọng về việc liệu có tiến triển nào được thực hiện hay không?

Mặc dù nhóm nghiên cứu Ethereum vẫn đang tìm ra một số vấn đề quan trọng, nhưng proto-danksharding vẫn còn một chặng đường dài phía trước để trở thành tiền thân của full sharding.

Trước hết, lấy mẫu dữ liệu khả dụng vẫn còn là lý thuyết và chưa được thực hiện. Một phần lý do cho điều này là các nhà phát triển vẫn đang quyết định xem đề xuất cải tiến Ethereum (EIP) có nên chỉ thực hiện biên dịch đánh giá điểm (point evaluation precompile) hay không và bỏ ý tưởng kết hợp nó với biên dịch trước xác minh blob.

Quá trình biên dịch trước xác minh blob có thể tự thực hiện được giữa các Lớp 2. Do đó, cộng đồng Ethereum đang cân nhắc liệu có cần phải cung cấp chính thức cho nó hay không. Nhóm Ethereum đang xem xét kiến trúc thực tế nhất của các blob và các biện pháp bảo mật thông minh nhất để áp dụng.

Tương lai của proto-danksharding

Mạng Ethereum đã chiến đấu với các vấn đề về thông lượng tương đối chậm và phí gas cao trong nhiều năm và các nhà nghiên cứu Ethereum đã đề xuất nhiều giải pháp kỹ thuật khác nhau, bao gồm cả sharding.

Proto-danksharding là một lộ trình để triển khai lộ trình sharding hoàn chỉnh và mục đích chính của nó là giảm chi phí giao dịch cho các giao thức lớp 2 thông qua định dạng giao dịch lấy blob làm trung tâm.

Cộng đồng Ethereum rất quan tâm đến việc nâng cao mục tiêu mô đun hóa của họ bằng cách cung cấp cho các chuỗi khối lớp 2 kiến trúc cần thiết để xây dựng quy mô lớn hơn trên giao thức Ethereum.

Lời kết

Nằm trong lộ trình chuyển sang sharding blockchain của Ethereum, Danksharding sẽ giúp chuỗi sharding cung cấp dung lượng lưu trữ lớn, đồng thời tăng tốc độ của mạng và giảm phí trên Layer 2. Tuy nhiên, đây cũng là một thách thức đối với đội ngũ phát triển của Ethereum. Hãy cùng GFI theo dõi tiến trình sharding của Ethereum trong những bài viết sắp tới.