Site icon

So sánh Polkadot và Ethereum 2.0, đều là các giao thức blockchain đã shard (phân đoạn)

Polkadot và Ethereum 2.0 đều là các giao thức blockchain đã shard (phân đoạn). Do đó, chúng cung cấp khả năng mở rộng bằng cách thực hiện các giao dịch trong shard riêng biệt và cung cấp một giao thức để gửi thông điệp giữa các shard.

Gavin Wood, nhà sáng lập Polkadot, cũng là đồng sáng lập kiêm giám đốc công nghệ của Ethereum, cùng với Vitalik Buterin là hai nhân vật quan trọng nhất của dự án từ những ngày đầu. Gavin Wood sáng tạo ra ngôn ngữ lập trình Solidity, còn Vitalik tạo ra Smart Contract, hai trụ cột chính của Ethereum.

Mô hình

Các shard trong Ethereum 2.0 đều có cùng chức năng chuyển đổi trạng thái (STF), như trong các quy tắc điều chỉnh cách blockchain thay đổi trạng thái mỗi khối. STF này cung cấp một giao diện để thực hiện hợp đồng thông minh. Các hợp đồng tồn tại trên một shard duy nhất và có thể gửi thông báo không đồng bộ giữa các shard.

Tương tự như vậy, trong Polkadot, mỗi shard lưu trữ logic cốt lõi, các shard được thực thi song song và Polkadot có thể gửi các thông báo không đồng bộ giữa các shard. Tuy nhiên, mỗi shard trên Polkadot (trong thuật ngữ Polkadot là “parachain”) có một STF duy nhất. Các ứng dụng có thể tồn tại trong một shard duy nhất hoặc trên các shard bằng cách soạn thảo logic. Polkadot sử dụng WebAssembly (Wasm) như một “siêu giao thức”. STF của shard có thể trừu tượng miễn là trình xác nhận trên Polkadot có thể thực thi nó trong môi trường Wasm.

Kiến trúc

Ethereum 2.0

Chuỗi chính của Ethereum 2.0 được gọi là Beacon Chain. Trọng tâm chính trên Beacon Chain là chứng thực, là các phiếu bầu về tính khả dụng của dữ liệu shard và tính hợp lệ của Beacon Chain. Mỗi shard trong Ethereum 2.0 chỉ đơn giản là một blockchain có giao diện Ethereum Wasm (eWasm).

Ethereum 2.0 ra mắt Giai đoạn 0 vào ngày 1/12/2020 chỉ với Beacon Chain. Trong Giai đoạn 1, mạng sẽ khởi chạy 64 shard dưới dạng chuỗi đơn giản để kiểm tra tính hoàn thiện của Beacon Chain. Mỗi shard gửi “liên kết chéo” tới Beacon Chain, chứa thông tin để hoàn thiện dữ liệu shard. Nó cũng sẽ được thêm vào ETH 1.0, trong đó nó hoàn thiện các khối của chuỗi PoW. Sau đó, trong Giai đoạn 2, các shard sẽ triển khai giao diện eWasm, cuối cùng làm cho hệ thống có thể sử dụng được cho người dùng cuối.

Mạng cũng sẽ có các “side chain” (chuỗi bên) để tương tác với các chuỗi không thuộc giao thức hoàn thiện của Ethereum 2.0.

Polkadot

Giống như Ethereum 2.0, Polkadot cũng có một chuỗi chính – được gọi là Relay Chain và rất nhiều shard – được gọi là parachain. Parachain không bị giới hạn trong một giao diện duy nhất như eWasm. Thay vào đó, chúng có thể xác định logic và giao diện của riêng mình, miễn là chúng cung cấp STF của mình cho trình xác thực Relay Chain để có thể thực thi.

Polkadot (hiện chỉ hoạt động dưới dạng Relay Chain) có kế hoạch khởi chạy khả năng xác thực tối đa 20 shard mỗi khối, dần dần nhân rộng lên đến 100 shard mỗi khối. Bên cạnh các parachain được lên lịch để thực thi mọi khối, Polkadot cũng có parathread – được lên lịch trên cơ sở động. Điều này cho phép các chuỗi chia sẻ vị trí đã shard, giống như nhiều hãng hàng không nhỏ có thể chia sẻ một cổng tại sân bay.

Để tương tác với các chuỗi muốn sử dụng quy trình hoàn thiện của riêng họ (ví dụ: Bitcoin), Polkadot có parachain cầu nối cung cấp khả năng tương thích hai chiều.

Đồng thuận

Cả Ethereum 2.0 và Polkadot đều sử dụng các mô hình đồng thuận lai trong đó quá trình sản xuất và hoàn thiện khối đều có giao thức riêng. Các giao thức hoàn thiện (Casper FFG cho Ethereum 2.0 và GRANDPA cho Polkadot) đều dựa trên GHOST và cả hai đều có thể hoàn thiện các lô khối trong một vòng. Đối với sản xuất khối, cả hai giao thức đều sử dụng giao thức dựa trên vị trí chỉ định ngẫu nhiên các trình xác thực cho một vị trí và cung cấp quy tắc lựa chọn fork cho các khối chưa được hoàn thiện – RandDAO/LMD cho Ethereum 2.0 và BABE cho Polkadot.

Có 2 điểm khác biệt chính giữa đồng thuận của Ethereum 2.0 và Polkadot:

1. Ethereum 2.0 hoàn thiện các lô khối theo khoảng thời gian được gọi là “epoch” (giai đoạn). Kế hoạch hiện tại là có 32 khối mỗi epoch và hoàn thành tất cả chúng trong một vòng. Với thời gian khối dự đoán là 12 giây, thời gian dự kiến ​​hoàn thành là 6 phút (tối đa 12 phút). Giao thức hoàn thiện của Polkadot là GRANDPA, hoàn thiện các lô khối dựa trên tính khả dụng và kiểm tra tính hợp lệ xảy ra khi chuỗi được đề xuất phát triển. Thời gian hoàn thành thay đổi theo số lượng kiểm tra cần được thực hiện (và báo cáo không hợp lệ khiến giao thức yêu cầu kiểm tra thêm). Thời gian dự kiến ​​để hoàn thiện là 12-60 giây.

2. Ethereum 2.0 yêu cầu số lượng lớn trình xác thực trên mỗi shard để cung cấp đảm bảo tính hợp lệ mạnh mẽ. Polkadot có thể cung cấp sự đảm bảo mạnh mẽ hơn với ít trình xác thực hơn cho mỗi shard. Polkadot đạt được điều này bằng cách khiến các trình xác thực phân phối mã xóa (erasure coding) cho tất cả các trình xác thực trong hệ thống, sao cho bất kỳ ai (chứ không chỉ các trình xác thực của shard) đều có thể tạo lại khối của parachain và kiểm tra tính hợp lệ của nó. Việc chỉ định trình xác nhận parachain ngẫu nhiên và kiểm tra thứ cấp được thực hiện bởi trình xác nhận được chọn ngẫu nhiên khiến cho một tập hợp nhỏ trình xác nhận trên mỗi parachain không thể thông đồng với nhau.

Cơ chế staking

Ethereum 2.0 là một mạng PoS yêu cầu stake 32 ETH cho mỗi phiên bản trình xác thực. Trình xác thực chạy một node Beacon Chain chính và nhiều máy khách của trình xác thực. Các trình xác thực này được chỉ định cho các “ủy ban”, là các nhóm được chọn ngẫu nhiên để xác nhận shard trong mạng. Ethereum 2.0 dựa vào việc có một bộ xác thực lớn để cung cấp tính khả dụng và đảm bảo tính hợp lệ: Họ cần ít nhất 111 trình xác thực trên mỗi shard để chạy mạng và 256 trình xác thực trên mỗi shard để hoàn thiện tất cả các shard trong một epoch. Với 64 shard, chúng ta sẽ có 16.384 trình xác thực (256 trình xác thực cho mỗi shard).

Polkadot có thể cung cấp tính khả dụng và tính hoàn thiện mạnh mẽ với ít trình xác thực hơn nhiều. Polkadot sử dụng Nominated Proof of Stake (NPoS) để chọn trình xác thực từ một tập hợp nhỏ hơn, cho phép những người nắm giữ nhỏ lẻ đề cử trình xác thực chạy cơ sở hạ tầng trong khi vẫn nhận được phần thưởng của hệ thống mà không cần chạy một node của riêng họ. Polkadot dự định có 1.000 trình xác thực vào cuối năm hoạt động đầu tiên và cần khoảng 10 trình xác thực cho mỗi parachain trong mạng.

Shard

Mọi shard trong Ethereum 2.0 đều có cùng một STF. Trong giai đoạn 1 (dự kiến là năm 2021), các shard sẽ là vùng chứa dữ liệu đơn giản cung cấp các liên kết chéo cho Beacon Chain. Trong giai đoạn 2 (dự kiến năm 2023), họ sẽ triển khai môi trường thực thi eWasm. eWasm là một tập hợp con hạn chế của Wasm cho các hợp đồng trong Ethereum. Giao diện eWasm cung cấp một tập hợp các phương thức có sẵn cho hợp đồng. Cần có một bộ công cụ phát triển tương tự như Truffle và Ganache để phát triển eWasm.

Mỗi shard trong Polkadot có một STF trừu tượng dựa trên Wasm. Mỗi shard có thể hiển thị một giao diện tùy chỉnh, miễn là logic tập hợp thành Wasm và shard đó cung cấp chức năng “khối thực thi” cho trình xác thực trên Polkadot. Polkadot có khung phát triển Substrate cho phép khả năng tổng hợp phổ đầy đủ với một bộ mô-đun có thể được định cấu hình, soạn thảo và mở rộng để phát triển STF của chuỗi.

Truyền thông điệp

Các shard trong Ethereum 2.0 sẽ có quyền truy cập vào trạng thái của nhau thông qua liên kết chéo và bằng chứng trạng thái của chúng. Trong mô hình của Ethereum 2.0 có 64 shard, mỗi shard đăng một liên kết chéo trong Beacon Chain cho mỗi khối, có nghĩa là các shard có thể chứa logic thực thi dựa trên một số bằng chứng giao dịch trên shard khác. Ethereum 2.0 chưa phát hành thông số kỹ thuật cho các node chuyển thông điệp giữa các shard.

Polkadot sử dụng Truyền tin nhắn chuỗi chéo (XCMP) cho các parachain để gửi tin nhắn tùy ý cho nhau. Parachain mở các kết nối với nhau và có thể gửi tin nhắn qua kênh đã thiết lập của chúng. Vì các trình đối chiếu cũng cần phải là các node đầy đủ của Relay Chain nên chúng sẽ được kết nối với nhau và có thể chuyển tiếp các thông điệp từ parachain A đến parachain B. Thông điệp không chuyển tiếp qua Relay Chain, cụ thể là bằng chứng về việc đăng và hoạt động kênh (mở, đóng, …) sẽ đi vào Relay Chain. Điều này nâng cao khả năng mở rộng bằng cách giữ dữ liệu trên hệ thống.

Polkadot sẽ thêm một giao thức bổ sung được gọi là SPREE cung cấp logic được chia sẻ cho các thông điệp xuyên chuỗi. Các thông điệp được gửi bằng SPREE mang theo những đảm bảo bổ sung về xuất xứ và cách diễn giải của chuỗi nhận.

Quản trị

Quản trị Ethereum 2.0 vẫn chưa được giải quyết. Ethereum hiện đang sử dụng các quy trình quản trị off-chain như thảo luận trên Github, lời kêu gọi của tất cả các nhà phát triển cốt lõi và diễn đàn Ethereum Magicians để đưa ra quyết định về giao thức.

Polkadot sử dụng quản trị on-chain với một hệ thống đa thành phần. Có một số cách để đưa ra đề xuất, ví dụ: từ Hội đồng on-chain, Ủy ban kỹ thuật hoặc từ công chúng. Tất cả các đề xuất cuối cùng đều thông qua một cuộc trưng cầu dân ý công khai, trong đó phần lớn các token luôn có thể kiểm soát kết quả. Đối với cuộc trưng cầu có tỷ lệ người bỏ phiếu thấp, Polkadot sử dụng xu hướng số đại biểu thích ứng để đặt ngưỡng vượt qua. Trưng cầu có thể bao gồm nhiều chủ đề khác nhau, bao gồm phân bổ quỹ từ Kho bạc on-chain hoặc sửa đổi mã thời gian chạy cơ bản của chuỗi. Các quyết định được ban hành on-chain và có tính ràng buộc, tự chủ.

Bản nâng cấp

Nâng cấp trên Ethereum 2.0 sẽ tuân theo quy trình hard-fork thông thường, yêu cầu người xác thực nâng cấp các node của họ để thực hiện các thay đổi giao thức.

Sử dụng siêu giao thức Wasm, Polkadot có thể nâng cấp chuỗi và đề xuất thành công mà không cần hard fork. Bất kỳ thứ gì dù là STF, hàng đợi giao dịch hoặc nhân viên off-chain đều có thể được nâng cấp mà không cần fork chuỗi.

Kết luận

Ethereum 2.0 và Polkadot đều sử dụng mô hình đã phân đoạn trong đó các chuỗi (“shard” trong Ethereum 2.0 và “parachain/parathread” trong Polkadot) được bảo mật bởi một chuỗi chính bằng cách liên kết trạng thái của shard trong các khối của chuỗi chính. Hai giao thức khác nhau ở một số điểm chính. Đầu tiên, tất cả các shard trong Ethereum 2.0 đều có cùng STF, trong khi Polkadot cho phép các shard có một STF trừu tượng. Thứ hai, các quy trình quản trị trong Ethereum 2.0 được lên kế hoạch off-chain và do đó yêu cầu phối hợp thực hiện hard fork để ban hành các quyết định quản trị, trong khi ở Polkadot, các quyết định là on-chain và được ban hành một cách tự chủ. Thứ ba, các cơ chế lựa chọn trình xác thực là khác nhau vì Polkadot có thể cung cấp tính khả dụng mạnh mẽ và đảm bảo tính hợp lệ với số lượng trình xác thực ít hơn trên mỗi shard.

Như Gavin Wood đã từng nói “Tôi muốn thực hiện trên Polkadot những tính năng mà Ethereum 2.0 không thể làm hoặc không thể sửa chữa”.

 

Theo Polkadot

Exit mobile version