Chuỗi công cộng Shardeum: Một khả năng khác của phân mảnh
Tuyển chọn TechFlowTuyển chọn TechFlow
Chuỗi công cộng Shardeum: Một khả năng khác của phân mảnh
Một blockchain phân mảnh thực sự và có khả năng mở rộng cần được xây dựng từ đầu.
Tác giả: Beam, Jsquare Research
Ngày 15 tháng 9 năm 2022, Ethereum thực hiện Merge (Hợp nhất). Đây là một khoảnh khắc lịch sử mà Ethereum đã chuẩn bị suốt 5 năm và trì hoãn tới 6 lần. Do hiệu ứng hào quang từ việc điều chỉnh lặp đi lặp lại cùng quá trình phát triển dài hạn, nhiều người lầm tưởng rằng việc hợp nhất sẽ tự nhiên mang lại khả năng mở rộng cao hơn, an toàn hơn và bền vững hơn — thực tế thì không phải như vậy. Chúng ta hãy dùng phép ẩn dụ hai đoàn tàu: chuyển đổi từ PoW (Bằng chứng công việc) sang PoS (Bằng chứng cổ phần) chỉ đơn thuần là thay đổi đường ray và bánh xe; nó sẽ không trực tiếp làm tăng tốc độ, nâng dung lượng hay giảm giá vé. Những yếu tố này thực sự cần một hệ thống giải pháp hoàn chỉnh: mạng chính có khả năng phân mảnh kết hợp với các giải pháp Layer2 nhằm tăng cường khả năng mở rộng.
Như Vitalik Buterin, người sáng lập Ethereum đã chỉ ra, phân mảnh là một giải pháp mở rộng trong bối cảnh nghịch lý mở rộng ba chiều. Bằng cách chia các nút trong mạng thành những nhóm nhỏ hơn để xử lý các tập giao dịch khác nhau và đạt được xử lý song song, nó giúp chia sẻ gánh nặng dữ liệu lớn cần tổng hợp trên toàn bộ mạng lưới. Cũng giống như khi thanh toán tại Walmart, nếu mở thêm nhiều làn thanh toán, thời gian xếp hàng và hiệu suất thanh toán sẽ được cải thiện rõ rệt.

Hình 1: Logic đơn giản của phân mảnh
Đó chính là logic của phân mảnh — trực tiếp và đơn giản. Tuy nhiên, quỷ dữ nằm ở chi tiết. Nguyên tắc và định hướng đúng đắn, nhưng trong thực tiễn luôn gặp phải vô số vấn đề. Bài viết này mong muốn thông qua việc làm rõ định hướng và điểm nghẽn trên con đường “phân mảnh”, vẽ nên một bản đồ cho những người khám phá vừa ngước nhìn bầu trời sao vừa đặt chân vững chắc xuống mặt đất. Đồng thời, bằng cách so sánh các giải pháp phân mảnh hiện có, tìm ra những vấn đề phổ biến và đề xuất một hướng đi khả thi: Shardeum và phân mảnh động.
I. Về “Phân mảnh”
Nói một cách đơn giản, xem xét giới hạn bởi tam giác bất khả thi, lấy Ethereum làm gốc tọa độ (0,0), theo hai hướng "dọc" và "ngang", chúng ta chia các phương pháp mở rộng blockchain hiện tại thành hai loại:
Mở rộng dọc (Vertical Scaling): Đạt được bằng cách nâng cấp hiệu năng phần cứng hiện tại của hệ thống. Xây dựng một mạng phi tập trung, trong đó mỗi nút đều sở hữu khả năng tính toán siêu mạnh — nghĩa là mỗi nút đều yêu cầu phần cứng “tốt hơn”. Cách này đơn giản và hiệu quả, có thể cải thiện ban đầu về thông lượng, đặc biệt phù hợp với các trường hợp sử dụng giao dịch tần suất cao, trò chơi hoặc ứng dụng nhạy cảm với độ trễ. Tuy nhiên, cách mở rộng này sẽ hạn chế mức độ phi tập trung của mạng vì chi phí vận hành nút xác thực hoặc nút đầy đủ tăng lên. Việc duy trì mức độ phi tập trung bị giới hạn bởi tốc độ tăng trưởng chung của hiệu năng phần cứng (chính là "Định luật Moore": số lượng bóng bán dẫn trên chip tăng gấp đôi sau mỗi hai năm, chi phí tính toán giảm một nửa).
Mở rộng ngang (Horizontal Scaling): Mở rộng ngang thường có vài hướng tiếp cận. Một là, trong ngữ cảnh blockchain, phân bổ khối lượng tính toán giao dịch của một hệ sinh thái ra nhiều chuỗi riêng biệt, mỗi chuỗi có nhà sản xuất khối và khả năng thực thi riêng. Cách này cho phép tùy biến sâu từng lớp thực thi như yêu cầu phần cứng nút, chức năng riêng tư, phí gas, máy ảo hay thiết lập quyền truy cập. Hai là, giải pháp blockchain mô-đun hóa, chia kiến trúc cơ bản của blockchain thành lớp thực thi, lớp sẵn sàng dữ liệu (DA) và lớp đồng thuận. Cơ chế mô-đun hóa blockchain phổ biến nhất hiện nay là rollup. Ba là, chia một blockchain thành nhiều mảnh (shard), thực thi song song. Mỗi shard có thể coi như một blockchain riêng biệt, nghĩa là nhiều blockchain có thể hoạt động song song. Ngoài ra, thường còn có một chuỗi chính chịu trách nhiệm duy nhất là giữ tất cả các shard đồng bộ.
Cần lưu ý rằng, các hướng mở rộng trên đây không tồn tại độc lập; mỗi giải pháp đều đang tìm kiếm một điểm cân bằng trong tam giác bất khả thi, phối hợp với thiết kế cơ chế khuyến khích tạo ra bởi lực lượng kinh tế trong hệ thống, nhằm đạt được sự cân bằng hiệu quả ở cả cấp độ vĩ mô lẫn vi mô.
Để thảo luận về “phân mảnh”, chúng ta cần bắt đầu từ đầu.
Vẫn giả định tình huống như sau: thanh toán tại Walmart, để nâng cao hiệu suất thanh toán và giảm thời gian chờ đợi khách hàng, chúng ta mở rộng từ một làn thanh toán duy nhất thành 10 quầy thu ngân. Để tránh sai sót sổ sách, lúc này chúng ta cần thiết lập quy tắc thống nhất:
-
Thứ nhất, nếu có 10 nhân viên thu ngân, ta phân bổ họ vào quầy nào?
-
Thứ hai, nếu có 1000 khách hàng đang xếp hàng, ta quyết định mỗi khách hàng đến quầy nào để thanh toán?
-
Thứ ba, 10 cuốn sổ riêng biệt tương ứng với 10 quầy này sẽ được tổng hợp thế nào?
-
Thứ tư, để tránh sai lệch sổ sách, làm sao ngăn ngừa sai sót của nhân viên thu ngân?
Mấy câu hỏi này thực chất tương ứng với các vấn đề then chốt trong phân mảnh:
-
Làm thế nào để xác định nút/máy xác thực toàn mạng thuộc shard nào? Tức là: Làm sao để thực hiện phân mảnh mạng (Network Sharding);
-
Làm thế nào để xác định giao dịch cụ thể được phân bổ cho shard nào? Tức là: Làm sao để thực hiện phân mảnh giao dịch (Transaction Sharding);
-
Dữ liệu blockchain được lưu trữ thế nào giữa các shard khác nhau? Tức là: Làm sao để thực hiện phân mảnh trạng thái (State Sharding);
Sự phức tạp đồng nghĩa với rủi ro. Trên nền tảng tất cả các yếu tố trên, làm sao để tránh sự suy giảm an ninh toàn hệ thống?
01 Phân mảnh mạng (Network Sharding)
Nếu ta đơn giản hiểu blockchain là một sổ cái phi tập trung, thì dù là cơ chế đồng thuận PoS hay PoW, mục tiêu đều là để các nút tranh giành quyền ghi sổ theo một quy tắc nhất định, đảm bảo tính đúng đắn của sổ cái. Còn phân mảnh mạng nghĩa là cần một quy tắc cố định khác để chia mạng blockchain thành các phần nhỏ, xử lý giao dịch trên chuỗi và tranh giành quyền ghi sổ với ít liên lạc qua lại càng tốt — nói cách khác, chính là quy tắc phân nhóm nút.
Trong quá trình này, vấn đề gặp phải là khi các nút bên trong blockchain bị chia thành các shard khác nhau, chi phí và độ khó để tấn công sẽ giảm thẳng đứng. Ta có thể suy luận: nếu quy tắc và kết quả phân nhóm là cố định và có thể dự đoán trước, kẻ tấn công chỉ cần kiểm soát định hướng một shard và mua chuộc một số nút trong shard đó để kiểm soát toàn bộ mạng blockchain.
Alexander Skidanov, người sáng lập Near, mô tả vấn đề này như sau: Nếu một chuỗi đơn với X máy xác thực quyết định fork cứng thành một chuỗi phân mảnh và chia X máy xác thực thành 10 shard, mỗi shard giờ chỉ có X/10 máy xác thực, việc phá vỡ một shard giờ chỉ cần phá vỡ 5,1% (51%/10) tổng số máy xác thực. Điều này dẫn đến điểm thứ hai: ai chọn máy xác thực cho từng shard? Chỉ khi 5,1% máy xác thực này đều nằm trong cùng một shard thì việc kiểm soát mới gây hại. Nếu máy xác thực không thể tự chọn shard mình hoạt động, thì khả năng rất thấp để người kiểm soát 5,1% máy xác thực có thể tập trung toàn bộ vào một shard, do đó làm giảm đáng kể năng lực phá hoại hệ thống.

Hình 2: Độ khó tấn công một shard giảm mạnh
Hệ thống phân mảnh phải phát triển một cơ chế tin tưởng rằng các giao dịch không bị đảo ngược từ các shard bên ngoài. Cho đến nay, câu trả lời tốt nhất có lẽ là đảm bảo số lượng máy xác thực trong mỗi shard vượt quá một ngưỡng tối thiểu nhất định, để xác suất một nhóm máy xác thực gian lận chiếm ưu thế trong một shard đơn lẻ là rất thấp. Cách phổ biến nhất là xây dựng một mức độ ngẫu nhiên không thiên vị, dựa vào toán học để giảm xác suất thành công của kẻ tấn công xuống thấp nhất. Ví dụ như Ethereum: giải pháp của Ethereum là chọn ngẫu nhiên máy xác thực cho từng shard từ tổng số tất cả máy xác thực, và thay đổi máy xác thực mỗi 6,4 phút (một epoch).

Hình 3: Hình dung việc luân chuyển máy xác thực trong Ethereum 2.0
Nói đơn giản hơn là chia nhóm nút một cách ngẫu nhiên, rồi phân công công việc cho các nhóm nút để xác thực độc lập.
Tuy nhiên cần lưu ý rằng, yếu tố ngẫu nhiên trong blockchain là chủ đề cực kỳ thách thức. Về mặt logic, quá trình sinh số ngẫu nhiên này không nên phụ thuộc vào tính toán của bất kỳ shard nào cụ thể. Đối với vấn đề này, nhiều thiết kế hiện tại lựa chọn xây dựng một blockchain riêng biệt để duy trì toàn bộ mạng. Blockchain như vậy được gọi là Beacon Chain trong Ethereum và Near, Relay Chain trong Polkadot, và Cosmos Hub trong Cosmos.
02 Phân mảnh giao dịch (Transaction Sharding)
Phân mảnh giao dịch đề cập đến việc thiết lập quy tắc “giao dịch nào được phân bổ vào shard nào”, sao cho vừa đạt được xử lý song song, vừa tránh được vấn đề double-spend (chi tiêu kép). Kiểu ghi sổ khác nhau của blockchain ảnh hưởng đến việc phát triển phân mảnh giao dịch.
Hiện nay có hai mô hình ghi sổ trong mạng blockchain: mô hình UTXO (Unspent Transaction Outputs - Đầu ra Giao dịch Chưa dùng hết) và mô hình tài khoản/số dư. Đại diện điển hình cho mô hình đầu tiên là BTC, đại diện cho mô hình thứ hai là ETH.
Mô hình UTXO: Trong giao dịch BTC, mỗi giao dịch có một hoặc nhiều đầu ra. UTXO là đầu ra chưa được chi tiêu của giao dịch blockchain, có thể dùng làm đầu vào cho giao dịch mới. Đầu ra đã chi tiêu thì không thể dùng lại, giống như thanh toán và trả tiền thừa bằng tiền mặt: khách hàng đưa một hoặc nhiều tờ tiền cho người bán, người bán đưa lại một hoặc nhiều tờ tiền thừa. Trong mô hình UTXO, phân mảnh giao dịch cần giao tiếp giữa các shard. Một giao dịch có thể gồm nhiều đầu vào và nhiều đầu ra, không có khái niệm tài khoản hay ghi nhận số dư. Một cách khả thi là: Dùng giá trị đầu vào nào đó của giao dịch đưa vào hàm băm để tạo giá trị rời rạc nhằm xác định dữ liệu thuộc shard nào. Như sau:

Hình 4: Một cách khả thi cho phân mảnh giao dịch dựa trên UTXO
Để đảm bảo mục nhập được đặt đúng shard một cách nhất quán, giá trị đưa vào hàm băm đều phải đến từ cùng một cột. Cột này gọi là Khóa Shard (Shard Key). Sau đó, các giao dịch tạo ra giá trị 1 được phân vào shard 1, giá trị 2 vào shard 2. Nhược điểm của cách này là các shard buộc phải giao tiếp để tránh tấn công double-spend. Nếu hạn chế giao dịch liên shard thì sẽ hạn chế tính khả dụng của nền tảng, còn nếu cho phép thì phải cân nhắc giữa chi phí giao tiếp liên shard và lợi ích về hiệu suất.
Mô hình tài khoản/số dư: Hệ thống ghi nhận số dư của từng tài khoản. Khi thực hiện giao dịch, hệ thống kiểm tra xem tài khoản có đủ số dư thanh toán hay không, giống như khi chuyển khoản ngân hàng, ngân hàng ghi nhận số dư từng tài khoản, chỉ khi số dư lớn hơn số tiền chuyển thì giao dịch mới thực hiện được. Trong mô hình tài khoản/số dư, do mỗi giao dịch chỉ có một đầu vào, nên chỉ cần phân mảnh theo địa chỉ người gửi là có thể đảm bảo nhiều giao dịch từ cùng một tài khoản được xử lý trong cùng một shard, ngăn chặn hiệu quả double-spend. Vì vậy, đa số blockchain áp dụng công nghệ phân mảnh đều dùng hệ thống sổ tài khoản như Ethereum.
03 Phân mảnh trạng thái (State Sharding)
Phân mảnh trạng thái đề cập đến việc dữ liệu blockchain được phân bổ và lưu trữ thế nào giữa các shard khác nhau.
Vẫn dùng ví dụ xếp hàng tại Walmart: mỗi quầy có một cuốn sổ, cách ghi sổ là gì? Nếu: khách hàng đến quầy nào thì ghi sổ đó, ví dụ khách A đến quầy A, ngày hôm sau khách đó đến quầy khác như quầy B, nhưng quầy B không có thông tin tài khoản trước đó của khách (ví dụ liên quan đến phương thức thanh toán thẻ tích điểm), thì phải làm sao? Có cần gọi thông tin tài khoản từ quầy A không?
Phân mảnh trạng thái là bài toán khó nhất trong phân mảnh, nan giải hơn cả phân mảnh mạng và phân mảnh giao dịch ở trên. Bởi vì trong cơ chế phân mảnh, giao dịch được phân bổ xử lý ở các shard khác nhau theo địa chỉ, nghĩa là trạng thái chỉ được lưu trong shard chứa địa chỉ đó. Lúc này sẽ nảy sinh vấn đề: giao dịch không chỉ diễn ra trong một shard, thường xuyên xảy ra giao dịch liên shard (Cross-Sharding).
Xét một trường hợp chuyển tiền: tài khoản A chuyển 10U cho tài khoản B, địa chỉ A thuộc shard 1, bản ghi giao dịch cũng lưu ở shard 1. Địa chỉ B thuộc shard 2, bản ghi giao dịch lưu ở shard 2.
Khi A chuyển tiền cho B, sẽ hình thành giao dịch liên shard, shard 2 phải gọi bản ghi giao dịch cũ từ shard 1 để xác minh tính hợp lệ của giao dịch. Nếu A thường xuyên chuyển tiền cho B, shard 2 phải liên tục tương tác với shard 1, hiệu suất xử lý giao dịch sẽ vì thế giảm xuống. Nhưng nếu không tải xuống và xác minh toàn bộ lịch sử của một shard cụ thể, người tham gia không thể chắc chắn rằng trạng thái tương tác giữa họ là kết quả của một chuỗi khối hợp lệ, và chuỗi khối đó thực sự là chuỗi chính thống của shard.
Do đó, so với chuỗi đơn không phân mảnh, hệ thống phân mảnh đối mặt thách thức mới: người dùng không thể trực tiếp xác minh hoàn toàn tính hợp lệ và sẵn sàng của bất kỳ chuỗi nào, vì dữ liệu quá lớn. Cần cung cấp cho người dùng các phương pháp gián tiếp đáng tin cậy tối đa và thực dụng để xác minh chuỗi nào là hoàn toàn sẵn sàng và hợp lệ, để họ xác định chuỗi nào là chuỗi chính thống. Trong thực tế, các nhà phát triển blockchain có thể dùng các kỹ thuật như: ủy ban, SNARKs/STARKs, cơ chế ngư dân (fisherman), bằng chứng gian lận và bằng chứng sẵn sàng dữ liệu.
Có hai hướng giải quyết vấn đề này. Một là liên shard đồng bộ (Synchronous), tức là liên kết chặt (Tight Coupling). Mỗi khi cần thực hiện giao dịch liên shard, các khối chứa chuyển đổi trạng thái xảy ra đồng thời, các nút trên mỗi shard hợp tác thực hiện giao dịch. Nghe có vẻ tự nhiên, trải nghiệm người dùng tốt nhất, mô hình nổi tiếng nhất theo cách này gọi là Merge Blocks. Nhưng trong thực tế, việc triển khai khá phức tạp. Để thực hiện điều này, các máy xác thực giữa các shard phải giao tiếp đồng bộ. Nếu nhu cầu giao dịch liên shard quá cao, hiệu suất có thể giảm vì nhiều máy shard hơn phải hợp tác xử lý giao dịch liên shard.
Cách thứ hai là liên shard bất đồng bộ (Asynchronous), tức là liên kết lỏng (Loosely Coupling). Hướng tiếp cận này được sử dụng rộng rãi hơn, ví dụ NEAR, Ethereum, Cosmos, Kadena... Trong quá trình này, thách thức lớn nhất là tính nguyên tử của giao dịch. Theo Jordan Clifford, đồng sáng lập Scalar Capital, nếu hình dung khái niệm biên lai (Receipt), người nhận chứng minh họ đã nhận token từ shard bên ngoài bằng cách cung cấp đường dẫn Merkle của giao dịch trong shard nguồn. Shard đích dùng biên lai này để ghi vào tài khoản người nhận. Việc này phải được thực hiện một cách nguyên tử. Tài khoản người gửi và người nhận phải được sửa đổi đồng thời hoặc không sửa đổi. Nếu có khoảng trống hoặc một bên thất bại, người gửi có thể lừa người nhận tin rằng họ đã nhận được tiền mà thực tế không bao giờ nhận được.
Ở đây dùng một phép ẩn dụ đời sống cho từ “tính nguyên tử”: ví dụ ta muốn đi du lịch biển, cần đồng thời đặt vé máy bay và khách sạn. Nếu không đặt được khách sạn thì tôi cũng không muốn mua vé máy bay, nếu không đặt được vé máy bay thì cũng không đặt khách sạn. Đó gọi là tính nguyên tử — hoặc là cả hai đều thành công, hoặc là cả hai đều thất bại.
II. Khám phá và thử nghiệm phân mảnh
Chúng ta hãy ôn lại các thảo luận trước về phân mảnh, và nhắc đến một số vấn đề then chốt:
Thứ nhất là làm sao thực hiện phân mảnh trạng thái, tức dữ liệu blockchain được phân bổ và lưu trữ thế nào giữa các shard khác nhau, và khi cần giao tiếp liên shard thì làm sao đảm bảo hiệu quả cân bằng.
Thứ hai là xử lý vấn đề tính nguyên tử của giao dịch: việc một shard sửa đổi trạng thái được truy cập chung cần kịp thời được shard khác biết đến, nếu không dễ dẫn đến xung đột trạng thái.
Trong phần dưới, chúng tôi tổng hợp các blockchain công khai nổi bật và giải pháp kỹ thuật của họ. Qua đó có thể thấy một phần mạch lạc, và trên cơ sở đó thảo luận tính tiên phong và đổi mới của Shardeum.
01 Phân mảnh tính toán
Zilliqa là một trong những nền tảng hợp đồng thông minh đầu tiên thử nghiệm phân mảnh, là một nỗ lực hữu ích và hiệu quả đối với công nghệ phân mảnh.
Ra đời năm 2017, do nhóm các chuyên gia nghiên cứu và học giả liên quan đến Đại học Quốc gia Singapore thúc đẩy, mục tiêu chính là giải quyết vấn đề mở rộng, được xây dựng dành riêng cho các tác vụ đòi hỏi tính toán cao. Mạng Zilliqa có thể xử lý khối lượng giao dịch lớn nhờ quá trình song song hóa gọi là phân mảnh tính toán. Trong mạng blockchain phân mảnh, nhiệm vụ tính toán giao dịch được phân bố khắp các shard trên mạng.
Về quy trình phân mảnh, Zilliqa chia thành hai phần. Trước tiên, chọn các nút ủy ban Dịch vụ Thư mục (DS), sau đó khởi động quá trình phân mảnh và phân bổ nút cho từng shard. Khi giao dịch được xác thực trong shard, toàn bộ mạng có thể xác minh và đưa vào trạng thái toàn cục, nơi tập hợp tất cả giao dịch từ các shard vào một nguồn sự thật duy nhất trên blockchain Zilliqa.
Nói đơn giản, ba chức năng chính của nút trong blockchain:
-
- Xử lý giao dịch
-
- Đóng gói giao dịch và phát tán tới các nút khác
-
- Lưu trữ toàn bộ sổ cái lịch sử mạng
Zilliqa sử dụng một cách tiếp cận gọn nhẹ và hiệu quả để giải quyết vấn đề giao tiếp liên shard và tính nguyên tử mà chúng ta đã đề cập: chỉ phân mảnh tính toán, không phân mảnh mạng và lưu trữ. Tất cả các nút trong nền tảng này đều lưu trữ trạng thái đầy đủ, và mỗi giao dịch được mọi nút nhận. Để xác minh giao dịch, mạng được chia thành nhiều phân vùng theo không gian địa chỉ tài khoản. Đây gọi là phân mảnh tính toán, vì nó chia công việc xác minh giao dịch — thường là tác vụ tính toán nặng. Tuy nhiên, vì mỗi nút vẫn nhận mọi giao dịch và cập nhật trạng thái mọi tài khoản, băng thông mạng và thao tác lưu trữ vẫn là điểm nghẽn — mạng và lưu trữ không được phân mảnh, do đó không thể thực sự mở rộng.
02 Phân mảnh trạng thái tĩnh
Phương pháp phân mảnh phổ biến hơn là chia không gian địa chỉ tài khoản thành nhiều vùng kích thước cố định gọi là shard, và phân bổ nút mạng vào các shard khác nhau. Đây gọi là phân mảnh trạng thái. Các nền tảng như Near, Elrond và Harmony đang áp dụng phương pháp này. Mặc dù ban đầu Ethereum dự định triển khai phân mảnh trạng thái, nhưng phương pháp mới chỉ phân mảnh dữ liệu để tăng tính khả dụng.
2.1 Ý tưởng phân mảnh dữ liệu của Ethereum
Trong môi trường Ethereum, phân mảnh sẽ giảm gánh nặng xử lý lượng dữ liệu khổng lồ cần tổng hợp trên toàn mạng, phối hợp với Layer2. Điều này sẽ tiếp tục giảm tắc nghẽn mạng và tăng số giao dịch mỗi giây.
Cần lưu ý rằng, khi các lộ trình mở rộng hiệu quả hơn được phát triển, kế hoạch phân mảnh của Ethereum cũng đang tiến hóa. Một phiên bản ý tưởng phân mảnh tương lai của Ethereum dựa trên “khả dụng dữ liệu”, “Danksharding” là một phương pháp phân mảnh mới, không dùng khái niệm phân mảnh “Chain”, mà dùng phân mảnh “Blob” để chia dữ liệu, đồng thời dùng “lấy mẫu khả dụng dữ liệu” để xác nhận toàn bộ dữ liệu có sẵn hay không.
Một phiên bản khác liên quan đến việc thêm chức năng bổ sung cho từng shard dựa trên phiên bản đầu, khiến mỗi shard giống mạng chính Ethereum ngày nay hơn, cho phép shard lưu trữ, thực thi mã và xử lý giao dịch, vì mỗi shard sẽ chứa tập hợp hợp đồng thông minh và số dư tài khoản riêng biệt, giao tiếp liên shard sẽ cho phép giao dịch giữa các shard. Tuy nhiên, giải pháp này vẫn đang tranh luận trong cộng đồng, vì dữ liệu khả dụng ở phiên bản một cộng với sự phối hợp Layer2 đã đủ mang lại tính mở rộng cần thiết cho Ethereum, cộng đồng vẫn đang đánh giá chi phí kinh tế và giá trị lợi ích của phiên bản hai.
2.2 Harmony
Harmony là một mạng phân mảnh dựa trên PoS, áp dụng phương pháp phân mảnh tiêu chuẩn hơn, ý tưởng là có nhiều blockchain nhỏ gọi là shard, mỗi shard chịu trách nhiệm một phần trạng thái, và một blockchain điều phối chúng, trong Harmony gọi là chuỗi tín hiệu (Beacon Chain). Theo thảo luận trước, hãy xem Harmony giải quyết các vấn đề phân mảnh mạng, phân mảnh giao dịch và phân mảnh trạng thái từ dưới lên như thế nào.
Phân mảnh mạng: Harmony chia mạng máy xác thực thành các shard khác nhau, mỗi shard chứa một nhóm máy xác thực khác nhau, liên kết chặt chẽ với nhau và chạy đồng thuận nội bộ.
Phân mảnh giao dịch: Giao dịch của Harmony được xử lý bởi một shard duy nhất. Điều này cho phép các shard xử lý giao dịch đồng thời, nâng cao tổng dung lượng giao dịch của blockchain. Với giao dịch, người dùng chỉ cần chỉ định trường shard_id trong giao dịch ký, biểu thị shard mà giao dịch thuộc về.
Phân mảnh trạng thái: Trong Harmony, máy xác thực của mỗi shard cần lưu trữ 1/N trạng thái toàn cục, vì họ duy trì blockchain và cơ sở dữ liệu trạng thái riêng (N = số shard). Điều này giảm lo ngại về khả dụng dữ liệu cho máy xác thực. Hơn nữa, giao dịch liên shard nâng cao thêm tính nhất quán trạng thái giữa các shard.
Mạng chính Harmony hỗ trợ hàng ngàn nút trong nhiều shard, tạo khối có tính xác định tức thì trong vài giây. Giảm tập trung thông qua cơ chế đặt cược, đồng thời hỗ trợ ủy thác đặt cược, tích lũy thưởng và phạt cắt đôi chữ ký. Áp dụng cơ chế đặt cược hiệu quả EPoS (Effective Proof-of-Stake) và công nghệ phân mảnh ngẫu nhiên an toàn (Random Sharding), theo quy định giao thức, chia nhỏ token đặt cược của các nhà đầu tư lớn thành nhiều phần nhỏ và phân bổ ngẫu nhiên vào nhiều shard, do đó không ai có thể tập trung token đặt cược vào một shard duy nhất, từ đó không thể tấn công một shard đơn lẻ.
Về giao dịch liên shard, trong trường hợp giao dịch liên shard và đồng bộ với chuỗi tín hiệu, máy xác thực từ các shard khác nhau gửi tin nhắn qua lại qua mạng toàn cầu. Theo tài liệu chính thức Harmony, sử dụng công nghệ định tuyến liên shard «Kademlia» để kiểm soát chi phí mạng trong giao tiếp liên shard, đồng thời tối ưu quá trình phát tán khối bằng «mã xóa (erasure code)», giảm áp lực mạng cho người phát, tránh vấn đề tắc nghẽn mạng người gửi, từ đó đạt được mở rộng ngang hiệu quả. Harmony đã tự trang bị trở thành blockchain phân mảnh đầu tiên hoàn thành truyền tin liên shard. Nhờ giao thức truyền tin liên shard hiệu quả và thiết kế mạng lưới toàn diện, các shard sẽ có thể giao tiếp liền mạch. Khi nhóm đang tích cực hướng tới mục tiêu này, người dùng và nhà phát triển có thể kỳ vọng giao thức truyền tin liên shard trên Harmony vào cuối năm nay.
Đối với nhà xây dựng và nhà phát triển trên Harmony, đây là bước đột phá lớn vì họ có thể xây dựng bằng cách tổ chức tính năng và sử dụng dữ liệu nằm trên các shard khác nhau. Ngoài ra, tính nhất quán dữ liệu giữa các shard cũng rất quan trọng. Hai mục tiêu này sẽ quyết định tính bền vững của khả năng mở rộng vô hạn.
2.3 Elrond
Elrond là một blockchain công khai tốc độ cao, nhằm cung cấp tính bảo mật, hiệu quả, khả năng mở rộng và tương tác. Hai đặc điểm quan trọng nhất làm Elrond khác biệt là phân mảnh trạng thái thích nghi và cơ chế đồng thuận bằng chứng cổ phần an toàn.
Với giao dịch, dữ liệu và mạng, Elrond áp dụng phân mảnh trạng thái thích nghi ở mọi cấp độ. Cơ chế phân mảnh thích nghi động sẽ thực hiện hợp nhất và tách shard, đồng thời xem xét số lượng máy xác thực sẵn có và mức sử dụng mạng. Nhờ việc xáo trộn định kỳ máy xác thực liên shard, hệ thống giữ độ đàn hồi cao trước tấn công ác ý. Mỗi epoch, tối đa 1/3 số máy trong mỗi shard được xáo trộn sang shard khác để ngăn thông đồng. Về yếu tố ngẫu nhiên, dùng chữ ký BLS bảo vệ nguồn ngẫu nhiên, khiến nó không thiên vị và không thể dự đoán.
Với hợp đồng thông minh trên kiến trúc trạng thái shard, sử dụng quy trình thực thi liên shard, cân bằng tải shard. Hợ đồng thông minh cân bằng tải liên shard cho phép Elrond chạy song song nhiều hợp đồng thông minh.
Đồng thời, về liên shard, Elrond áp dụng thiết kế gọi là chuỗi siêu cấp (Meta Chain), có thể đạt được xác định nhanh chóng giao dịch liên shard (Finality) trong vài giây. Qua nghiên cứu sách trắng kỹ thuật, chúng tôi đơn giản hóa quá trình như sau: giả sử mạng Elrond chỉ có hai shard và chuỗi siêu cấp. Người dùng tạo giao dịch từ ví, địa chỉ ví ở shard 0, muốn gửi EGLD đến người dùng khác có địa chỉ ví ở shard 1, cần các bước sau để xử lý giao dịch liên shard.
Cấu trúc khối được biểu thị bằng tiêu đề khối chứa thông tin về khối (số nonce khối, vòng, người đề xuất, dấu thời gian máy xác thực v.v.) và danh sách các khối nhỏ (miniblock) chứa giao dịch thực tế trong từng shard. Trong ví dụ này, với một khối trong shard 0, thường có 3 khối nhỏ (miniblock):
-
Miniblock 0: chứa giao dịch nội shard 0
-
Miniblock 1: chứa giao dịch liên shard, người gửi ở shard 0, người nhận ở shard 1
-
Miniblock 2: chứa giao dịch liên shard, người gửi ở shard 1, người nhận ở shard 0. Những giao dịch này đã được xử lý ở shard người gửi 1, sẽ hoàn tất sau khi xử lý ở shard hiện tại.
Không giới hạn số lượng khối nhỏ (miniblock) có cùng người gửi và người nhận trong một khối. Nghĩa là nhiều miniblock có cùng người gửi và người nhận có thể xuất hiện trong cùng một khối. Trong quá trình này, đơn vị xử lý nguyên tử cho thực thi liên shard là một miniblock: hoặc xử lý tất cả giao dịch trong miniblock ngay lập tức, hoặc không xử lý, việc thực thi miniblock sẽ thử lại ở vòng tiếp theo.
Chiến lược giao dịch liên shard của Elrond dùng mô hình bất đồng bộ. Xác minh và xử lý trước tiên hoàn tất trong shard người gửi, sau đó trong shard người nhận. Giao dịch trước tiên được xử lý trong shard người gửi vì có thể xác minh hoàn toàn mọi giao dịch khởi tạo từ tài khoản trong shard đó. Sau đó, trong shard người nhận, các nút chỉ cần bằng chứng thực thi do chuỗi siêu cấp cung cấp, thực hiện xác minh chữ ký và kiểm tra tấn công lặp lại, cuối cùng cập nhật số dư cho người nhận, cộng thêm số tiền giao dịch.
Shard 0 xử lý giao dịch nội shard trong miniblock 0 và một tập giao dịch liên shard có địa chỉ đến từ shard 1 làm người nhận trong miniblock 1. Tiêu đề khối và miniblock được gửi đến chuỗi siêu cấp. Chuỗi siêu cấp công chứng khối shard 0 bằng cách tạo một khối siêu cấp mới (metablock), chứa các thông tin sau về mỗi miniblock: ID shard người gửi, ID shard người nhận, hash miniblock.
Shard 1 lấy hash miniblock 1 từ metablock, yêu cầu miniblock từ shard 0, phân tích danh sách giao dịch, yêu cầu giao dịch bị mất (nếu có), thực thi miniblock 1 giống nhau trong shard 1 và gửi kết quả khối đến chuỗi siêu cấp. Sau khi được công chứng, tập giao dịch liên shard có thể được coi là đã xác định. Hình dưới hiển thị số vòng cần thiết để hoàn tất giao dịch. Những vòng này được tính từ vòng đầu tiên chứa trong miniblock đến miniblock cuối cùng được công chứng.

Hình 5: Mô hình bất đồng bộ liên shard của Elrond
2.4 Near
Near là một blockchain công khai mở rộng, thân thiện với nhà phát triển, phân mảnh toàn trạng thái, họ đề xuất một giao thức và giải pháp mới gọi là giao thức Nightshade.
Khác với hai blockchain phân mảnh kể trên, kiến trúc công nghệ của nó không gồm một chuỗi tín hiệu và nhiều chuỗi shard, mà mô hình hóa hệ thống như một blockchain đơn lẻ, phân mảnh ở cấp độ khối, mỗi shard có nhiều “đoạn”.

Hình 6: Near từ bỏ cách làm chuỗi tín hiệu, áp dụng thiết kế Nightshade
Nightshade mô hình hóa hệ thống như một blockchain đơn lẻ, trong đó mỗi khối về mặt logic chứa tất cả giao dịch của mọi shard và thay đổi trạng thái tổng thể của mọi shard. Về mặt vật lý, không người tham gia nào tải trạng thái đầy đủ hay khối logic đầy đủ. Thay vào đó, mỗi người tham gia mạng chỉ duy trì trạng thái tương ứng với shard mà họ xác thực giao dịch, và danh sách tất cả giao dịch trong khối (Block) được chia thành các khối vật lý (Chunk), mỗi shard một khối.
Trong điều kiện lý tưởng, mỗi shard trong mỗi khối chứa đúng một chunk, điều này gần như tương đương mô hình có chuỗi shard, trong đó chuỗi shard tạo khối cùng tốc độ với chuỗi tín hiệu. Tuy nhiên, do trễ mạng, một số chunk có thể bị mất, do đó thực tế mỗi shard trong mỗi khối chứa một hoặc không chunk.
Trong Nightshade có hai vai trò: người sản xuất khối và máy xác thực. Tại bất kỳ thời điểm nào, hệ
Chào mừng tham gia cộng đồng chính thức TechFlow
Nhóm Telegram:https://t.me/TechFlowDaily
Tài khoản Twitter chính thức:https://x.com/TechFlowPost
Tài khoản Twitter tiếng Anh:https://x.com/BlockFlow_News














