Parachain là gì? Parachain của Polkadot là gì?

Parachain là gì?

Parachain là gì? Được định nghĩa là một loạt chuỗi con trực thuộc mạng lưới chính của Polkadot, có thể hoạt động độc lập. Parachain là một nhánh blockchain được gắn với chuỗi chính Relay Chain của Pokadot, chuỗi này kết nối với chuỗi chính dựa trên các giao thức và trình thiết kế cơ sở dữ liệu proof of Sharding, kết hợp trình xác thực Proof of Validity, và Proof of Stake để tạo khối.

cau-truc-cua-blockchain-tai-mot-khoi-relay-chain-cua-polkadot
Cấu trúc Blockchain tại một khối (nút) Relay Chain của Polkadot.

Parachain giải quyết vấn đề gì?

Parachain là giải pháp cho một vấn đề. Như với bất kỳ giải pháp nào, nó không thể được hiểu nếu không hiểu vấn đề trước. Vì vậy, hãy bắt đầu bằng cách xem xét các vấn đề mà công nghệ blockchain phải đối mặt khiến chúng ta bắt đầu khám phá không gian thiết kế cho một thứ như parachain.

1. Parachain giải quyết vấn đề mở rộng khối

Một vài năm trước, rõ ràng là thông lượng giao dịch của các blockchain Proof-of-Work (PoW) đơn giản như Bitcoin, Ethereum và vô số các blockchain khác đơn giản là quá thấp.

Hệ thống Proof-of-Stake (PoS) có thể đạt được thông lượng cao hơn các blockchains PoW.  Hệ thống PoS được bảo đảm bằng vốn ngoại quan thay vì nỗ lực đã bỏ ra – chi phí cơ hội thanh khoản so với đốt điện. Cách họ hoạt động là chọn một tập hợp những người xác thực có danh tính kinh tế đã biết, những người này sẽ khóa mã thông báo để đổi lấy quyền “xác thực” hoặc tham gia vào quá trình đồng thuận. Nếu họ bị phát hiện thực hiện sai quy trình đó, họ sẽ bị cắt, có nghĩa là một số hoặc tất cả các mã thông báo bị khóa sẽ bị đốt cháy.  Điều này cung cấp một sự không khuyến khích mạnh mẽ đối với các hành vi sai trái.
Vì giao thức đồng thuận không xoay quanh việc lãng phí nỗ lực, thời gian khối và thỏa thuận có thể diễn ra nhanh hơn nhiều. Các giải pháp cho các thách thức PoW không cần phải được tìm thấy trước khi có thể tạo ra một khối, do đó, chi phí của việc tạo ra một khối được giảm xuống chỉ còn chi phí tạo và phân phối khối.

Tuy nhiên, sự đồng thuận trên chuỗi PoS yêu cầu sự đồng ý đầy đủ của 2/3+ bộ xác thực cho mọi thứ xảy ra ở Lớp 1: tất cả logic được thực hiện như một phần của máy trạng thái của blockchain.  Điều này có nghĩa là mọi người vẫn cần phải kiểm tra mọi thứ. Hơn nữa, người xác nhận có thể có các quan điểm khác nhau về hệ thống dựa trên thông tin mà họ nhận được qua mạng không đồng bộ, khiến việc thỏa thuận về trạng thái mới nhất trở nên khó khăn hơn.

2. Tính linh hoạt và chuyên môn hóa

Virtual Machine (Máy ảo) thật là ngu ngốc và không cung cấp cho bạn sự linh hoạt. Hiện nay hầu hết các DeFi của Ethereum hoặc các dApp phải ký sinh trên một mạng Blockchain chạy trên máy ảo để hoạt động. Nhưng để phát triển trên một blockchain riêng đòi hỏi tốn kém về mặt chi phí và thời gian. Nếu được phát triển trên blockchain riêng thì họ biết rằng có thể chuyên môn hóa và có thể giúp họ tận dụng nhiều đòn bẩy hơn.

Nhận ra những vấn đề trên, đội ngũ Polkadot bắt đầu tìm ra giải pháp có thể cho phép các nhà phát triển tạo và triển khai các blockchains được xây dựng có mục đích thống nhất dưới một nguồn bảo mật chung, với khả năng có thể liên lạc giữa các blockchain khác nhau; một giải pháp sharding không đồng nhất, mà chúng ta thường gọi là Parachain.

Nguồn gốc khái niệm về Parachain

Parachain là một ví dụ về giao thức phân đoạn (Shareded Protocol). Sharding là một khái niệm vay mượn từ kiến ​​trúc cơ sở dữ liệu truyền thống. Thay vì yêu cầu mọi người tham gia kiểm tra mọi giao dịch, cấu trúc của giao thức yêu cầu mỗi người tham gia kiểm tra một số tập hợp con các giao dịch, với đủ dự phòng để những người tham gia byzantine (độc hại tùy ý) không thể lẻn vào các giao dịch không hợp lệ – ít nhất là các mã độc hại này không bị phát hiện và bị chém (đốt), với các giao dịch đó được hoàn nguyên (xác thực lại từ đầu).

Sharding và Proof-of-Stake phối hợp với nhau cho phép máy chủ parachain cung cấp bảo mật đầy đủ trên nhiều parachain, ngay cả khi không có tất cả người tham gia kiểm tra tất cả các chuyển đổi trạng thái.

Phương thức hoạt động của Parachain của Polkadot?

Trong phần này chúng ta đi sâu vào giao thức của Parachain. Bản chất của giao thức này mô phỏng quá trình khởi tạo một khối Parachain từ tác giả bên ngoài và đưa khối này vào Relay Chain. Đây là nguyên lý cho tất các Parachain của Polkadot và các parachain chạy song song với nhau kết nối với mạng chính Relay Chain và đúc ra các khối con của Parachain đó.
Thuật toán sử dụng trong phần này là thuật toán đồng thuận proof of stake kết hợp bằng chứng tác giả (Proof of Authority), Bằng chứng cổ phần (Proof of stake) và Thuật toán Sharding (Proof of Sharding).

parachain

Đây cũng chính là mô tả cụ thể chuỗi Relay-Chain mạng blockchain chính của Polkadot và các tác nhân cung cấp bảo mật và đầu vào cho blockchain này.

Các tác nhân bao gồm như sau:

  • Trình xác thực (Validator): Các nút này chịu trách nhiệm xác thực các khối parachain được đề xuất.  Bằng cách kiểm tra Proof-of-Validity (PoV) của khối và đảm bảo rằng PoV được xác nhận. Các tác giả phải ký gửi stake token DOT để thế chấp khi khởi tạo một quá trình xác thực parachain và bị máy chém (phá hủy) đốt nếu chúng được chứng minh là đã đánh giá sai.
  • Máy cắt, người đối chiếu (Collators): Các nút này chịu trách nhiệm tạo Proofs-of-Validity mà người xác nhận biết cách kiểm tra. Tạo một PoV thường yêu cầu bạn phải quen với định dạng giao dịch và quy tắc tạo khối của parachain, cũng như có quyền truy cập vào trạng thái đầy đủ của parachain.
  • Fisherman (Ngư dân): Đây là các nút không được phép, do người dùng điều hành, có mục tiêu là bắt các trình xác thực hoạt động sai để đổi lấy tiền thưởng. Người đối chiếu (collators) và người xác nhận (Validator) cũng có thể hoạt động như Ngư dân. Ngư dân không cần thiết cho an ninh và không được đề cập sâu trong tài liệu này. Đây là các nút không được phép, do người dùng điều hành, có mục tiêu là bắt các trình xác thực hoạt động sai để đổi lấy tiền thưởng. Người đối chiếu và người xác nhận cũng có thể hoạt động như Ngư dân. Ngư dân không cần thiết cho an ninh và không được đề cập sâu trong tài liệu này.
quy-trinh-xac-thuc-va-tao-khoi-cua-parachain
Quy trình xác thực và tạo khối của Parachain – Nguồn we3f.gifhub.

Chúng ta có thể hình dung đơn giản quá trình này là một Đường ống, nơi mà Collators gửi cho Validators các khối để yêu cầu xác thực. Sau đó, Validator xác thực khối bằng cách sử dụng PoV, ký các câu lệnh mô tả kết quả tích cực (positive statement) hoặc tiêu cực (negative statement) đối với khối từ bên ngoài. Và với đủ các câu lệnh tích cực, khối có thể được ghi nhận trên chuỗi Relay Chain.

Trường hợp ghi nhận trạng thái xấu không phải là một quyền phủ quyết nhưng sẽ dẫn đến mâu thuẫn, với những người ở phía sai sẽ bị chém (đốt). Nếu một Validator khác sau đó phát hiện ra rằng một Validator hoặc một nhóm Validators đã ký không chính xác một trạng thái yêu cầu một khối là hợp lệ, thì những trình xác thực đó sẽ bị loại bỏ và người kiểm tra sẽ nhận được tiền thưởng.

Tuy nhiên, có một vấn đề với công thức này. Để trình xác thực khác (Validator) có thể kiểm tra công việc của nhóm trình xác thực trước đó sau khi hoàn thành khối, thì PoV phải vẫn có sẵn để trình xác thực khác có thể tìm nạp và kiểm tra công việc. Các PoV dự kiến ​​sẽ quá lớn để đưa trực tiếp vào blockchain, vì vậy chúng tôi yêu cầu một sơ đồ khả dụng dữ liệu thay thế yêu cầu người xác thực chứng minh rằng đầu vào cho công việc của họ sẽ vẫn có sẵn và vì vậy công việc của họ có thể được kiểm tra. Các bài kiểm tra thực nghiệm cho chúng tôi biết rằng nhiều PoV có thể từ 1 đến 10MB trong thời gian tải nặng.

Dưới đây là mô tả về Đường ống bao gồm: đường dẫn mà một khối parachain (hay gọi tắt là parablock) thực hiện từ khi tạo đến khi đưa vào Relay-chain và trở thành Parachain:

  1. Validators được chọn và chỉ định cho các parachain theo quy trình xác minh (Validator Assignment routine).
  2. Collator cung cấp khối parachain, còn được gọi là chuỗi ứng cử viên (Candidate Parachain) hoặc Candidate, cùng với một PoV cho ứng viên.
  3. Collator chuyển Candidate và PoV tới các Validator được chỉ định cho cùng một parachain thông qua Giao thức Collator.
  4. Validator được chỉ định cho một parachain tại một thời điểm nhất định tham gia vào hệ thống con Ứng viên (Candidate Baking subsyterm) sao lưu để xác nhận các ứng viên đã được đưa ra để xác nhận. Candidate thu thập đủ các trạng thái hợp lệ có chữ ký từ những Validator thì được coi là Backable Candiadte.  Candidate Baking subsyterm là đại diện tập hợp các các chữ ký hợp lệ của một nhóm Validator trước đó.
  5. Một Relay Chain block Author (Block từ chuỗi chính), được BABE lựa chọn, thông báo đến Backable candidate cho parachain của mình để đưa vào khối Relay Chain cùng với sự hỗ trợ của nó. Backable Candidate thêm vào Relay Chain sẽ được cân nhắc là như là một nhánh Relay Chain.
  6. Một Backable Candiadte (parachain block) được đưa vào trong Relay Chain, thì tiếp tục candidate parachain phải chờ sự đồng thuận PoS của mạng và không được coi là một phần của parachain cho đến khi nó được chứng minh là
  7. Tiếp theo trong Relay Chain, Trình xác thực (Validator) tham gia vào hệ thống Availability Distribution subsystem để đảm bảo availability của Candidate. Thông tin về Candidate sẽ ghi tại trong khối chuỗi Relay Chain.
  8. Sau khi máy trạng thái Relay Chain có đủ thông tin để xem xét PoV của ứng viên là khả dụng. Candidate được coi là một phần của parachain và được chuyển thành một khối parachain đầy đủ, hay gọi tắt là parablock.

*** Lưu ý rằng candidate có thể không được bao gồm trong bất kỳ cách nào sau đây:

  • Collactor không thể truyền Candidate đến bất kỳ trình xác thực nào được chỉ định cho parachain.
  • Backed Candidate không thể được xác thực thêm ở bất kỳ Validator nào khi đã vào hệ thống Candidate backed Subsystem (Hệ thống con sao lưu khối).
  • Candidate không được tạo từ chuỗi chính (Relay Chain author block) để đưa vào Relay Chain.
  • Candidate đã được xác minh không được coi là khả dụng trong thời gian chờ và bị loại khỏi Relay Chain

Gần như khi mà block (candidate) đang được chờ để chấp nhận là một parachain và đang đưa hệ thống con sao lưu dữ liệu để chờ xác minh đồng thuận từ các parachain khác. Thì trình xác thực của chuỗi chính Relay Chain gọi là tập hợp trình xác thực của một nhóm các Prachains gọi là Validator of Prachains được lấy ngẫu nhiên để xác nhận minh candidate, có thể chứa 1% mã độc hại. Bên cạnh đó Validator of prachains trong trường hợp này là được lấy mẫu ngẫu nhiên với  tỷ lệ là <= ⅓, có thể dẫn đến một tập hợp xác thực giả mạo và sai lệch. Do đó rất cần quá trình xác thực thứ cấp từ Collator và Validator trước khi đưa vào hệ thống. Hệ thống này đảm bảo an ninh, và các khối con của mỗi Prachain sẽ được tạo ra trên cơ chế này.

parachain

Nhắc lại một số thành phần trong quá trình vòng lặp của một Candidate (parablock):

  1. Candidate: là một khối (mã) được chuyển tư Collator đến Validator
  2. Seconded: một validator gửi đến những validators khác
  3. Backable: tính chất đã được xác minh bởi một Validator đại diện cho đa số các Validators trong mạng lưới
  4. Backed: Đã được xác minh & và sao lưu trên chuỗi Relay-chain.
  5. Pending availability: Là Backed nhưng phải chờ xác minh từ Relay Chain.
  6. Included: Đã được xác minh và chấp thuận trở thành một parachain của Relay Chain
  7. Accepted: Có thể là Backed, available, and undisputed

Các nội dung trên đây được tổng hợp bới coin68 nguồn từ whitepaper của Web3foundaition, đội nhóm sáng lập của Pokadot. Tại sao Parachain có thể hoạt động độc lập? Các parachain song song kết nối với nhau như thế nào? Cầu nối giữa Relay Chain với mạng blockchain của Bitcoin hoặc máy áo của Ethereum như thế nào? Hãy đón đọc trong phần tới.

Tổng kết

Parachain là một nhánh blockchain đối với Relay Chain trong cấu trúc mạng lưới blockchain của Polkadot. Mỗi Parachain sẽ là nền tảng độc lập và có hệ sinh thái riêng, kết nối Chuỗi chính Relay Chain và các Parachain song song, nhưng đảm bảo chung một cấu trúc trình xác thực giao thức Proof of validator để đồng thuận trong toàn mạng lưới. Cấu trúc này cho phép chia sẽ dữ liệu nhưng không không chia sẻ toàn bộ thông tin của mạng lưới. Và phải yêu cầu xác minh trước khi kết nối với mạng lưới. Với cơ chế này giúp người dùng và các nhà phát triển phần mềm blockchain có thể tận dụng dữ liệu chia sẽ và kết nối tất cả mạng blockchain trên toàn thế giới. Đây có thể coi là đột phá trong thiết kế mạng lưới của blockchain khi vấn đề xác minh danh tính, mở rộng khối và bảo mật là ba dấu hỏi lớn đối với các nền tảng blockchain hiện nay. 

icons8-exercise-96 chat-active-icon