Một cách giải thích đơn giản cho hai khái niệm khó hiểu về việc mở rộng Ethereum, gồm Sharding và Danksharding.

Hôm nay là một ngày tồi tệ với việc lại bị trễ mười phút vào công việc. Tính đến thời điểm này trong tháng, đã có hai mươi ngày bạn trễ làm rồi.
Lí do? Văn phòng của bạn ở tầng mười, mà chỉ có một cái thang máy duy nhất. Điều đó dẫn đến việc phải xếp hàng chờ đợi và trễ giờ làm không thể tránh khỏi.
Một phương án được đề xuất nhằm tiết kiệm thời gian là chuyển đến một tòa nhà mới có nhiều thang máy hơn (bởi vì không ai muốn phải thức dậy sớm hơn).
Blockchain Ethereum cũng đang gặp phải vấn đề tương tự: có quá nhiều giao dịch cần xử lý (giống như hàng người xếp hàng vào thang máy), nhưng hạ tầng của mạng lại có hạn chế (chỉ có một chiếc thang máy duy nhất), dẫn đến việc xử lý giao dịch chậm và phí gas tăng cao (mọi người phải chờ đợi và mất thời gian để vào thang máy).
Sharding là một giải pháp được đưa ra để giải quyết vấn đề này bằng cách chia khối lượng công việc trên blockchain chính (gọi là Beacon Chain) thành các shard nhỏ hơn.

Sharding là gì?
Trong giải pháp sharding gốc, giao dịch sẽ được chia ra để xử lý bởi 64 shard, mỗi shard có một nhóm proposer và committee riêng:
- Proposer: đảm nhận nhiệm vụ tổng hợp giao dịch trước khi gửi cho notaries để xác minh.
- Notaries: có trách nhiệm xác minh các giao dịch được gửi từ proposer.
- Committee: là “hội đồng” bao gồm các validator chịu trách nhiệm xác minh các block trong một shard thông qua việc biểu quyết (voting).

Proposer có vai trò tương tự như miner trong blockchain của Bitcoin, trong khi notaries và committee có vai trò tương đương nhau. Notaries xác minh giao dịch để tổng hợp block vào shard chain, còn committee xác minh block trên shard chain để thêm vào Beacon Chain.
Các nhóm committee tương tự như các đội thanh tra, không nên ổn định quá lâu với một công ty để tránh vấn đề tham nhũng. Các nhóm cần luân phiên thay đổi để đảm bảo tính an toàn và minh bạch cho hệ thống.
Mỗi nhóm proposer và committee hoạt động độc lập để đảm bảo tính phi tập trung, nhưng cũng gây ra sự phức tạp và kéo dài thời gian xác minh giao dịch. Theo hình dưới đây, Beacon Block thứ hai cần phải lấy dữ liệu đã được xác minh từ các committee riêng biệt:

Chào mừng đến với Danksharding
Để giải quyết vấn đề này, Dankrad Feist, một nhà nghiên cứu tại Ethereum Foundation, đã đưa ra một giải pháp sharding mới: Danksharding, được đặt theo tên của ông. Trong giải pháp này, các block trên Beacon Chain sẽ bao gồm luôn dữ liệu từ các shard để tạo thành Block Lớn (vẫn được gọi là Beacon Block), và chỉ cần một committee để xử lý các giao dịch. Phương pháp này giúp xử lý dữ liệu đồng bộ hơn, từ đó giảm thời gian tương tác của người dùng với blockchain Ethereum. Theo hình dưới đây, Beacon Block thứ hai chỉ cần trỏ tới một committee duy nhất thay vì phải lấy dữ liệu từ ba committee khác nhau:

Tuy nhiên, vấn đề nằm ở việc tạo ra Block Lớn: theo mô hình truyền thống, proposer tổng hợp và xác nhận giao dịch vào các block này, nhưng nếu họ thấy tất cả giao dịch của người dùng và quyết định bỏ qua chúng, việc front-run sẽ xảy ra. Kết quả, thời gian giao dịch vẫn chậm và việc sử dụng sharding trở nên vô ích.
Để khắc phục vấn đề này, một giải pháp gọi là Tách biệt Proposer-Builder (PBS) đã được phát triển để phân tách vai trò tổng hợp giao dịch và xác nhận chúng vào một block: Builder tổng hợp giao dịch, nhưng Proposer quyết định xác nhận chúng vào Beacon block. Theo sơ đồ dưới đây:

Theo phương pháp này, proposer sắp xếp thứ tự giao dịch để thu lợi nhuận cao nhất (dựa trên thông tin về phí gas bid), nhưng không thể front-run người dùng vì họ không biết toàn bộ thông tin về giao dịch này. Sau khi proposer chọn các block headers có phí gas cao nhất, builder tiết lộ toàn bộ thông tin về giao dịch để xử lý chúng.
Tuy nhiên, mô hình này có một điểm yếu: builder có quyền lực lớn hơn, vì họ có thể chọn hoặc loại bỏ bất kỳ giao dịch nào họ nhìn thấy. Do đó, proposer chỉ định một danh sách các giao dịch (crList – Danh sách Chống Kiểm Duyệt) mà các builder bắt buộc phải tổng hợp vào.
Tổng kết
Mặc dù giải pháp danksharding đã giải quyết một số vấn đề của sharding gốc, nhưng yêu cầu kỹ thuật của nó cao hơn, đặc biệt là đối với những người đóng vai trò là builder. Tuy nhiên, danksharding vẫn là một bước quan trọng, chuẩn bị cho các phát triển tiếp theo trong việc triển khai công nghệ sharding trên blockchain Ethereum.
Mai Phan