Một Tổng Quan Kỹ Thuật về Giao Thức JAM của Polkadot

Nâng cao9/14/2024, 10:47:29 AM
Bài viết này cung cấp một phân tích kỹ thuật về giao thức JAM mới được đề xuất của Polkadot, giúp độc giả hiểu cách JAM giới thiệu một cấp độ mở rộng mới cho hệ sinh thái Polkadot.

Dưới đây là một giải thích chi tiết về Polkadot1, Polkadot2 và cách họ phát triển thành JAM. (Để biết thêm chi tiết, xem tại:https://www.navalmanack.com/almanack-of-naval-ravikant/how-to-think-clearlyBài viết này nhằm vào độc giả kỹ thuật, đặc biệt là những người có thể không quá quen thuộc với Polkadot nhưng có một số hiểu biết về hệ thống blockchain và có thể đã quen thuộc với các công nghệ từ các hệ sinh thái khác.
Tôi tin rằng bài viết này là một bước đệm tốt cho việc đọc JAM Gray Paper. (Để biết thêm chi tiết, xem:https://graypaper.com/)

Kiến thức nền tảng

Bài viết này cho rằng người đọc đã quen thuộc với các khái niệm sau:

Giới thiệu: Polkadot1

Hãy trở lại xem xét các tính năng sáng tạo nhất của Polkadot1 trước.

Mặt xã hội:

Khía cạnh kỹ thuật:

  • Polkadot áp dụng bảo mật chung và thực thi theo hệ thống shard.
  • Sử dụng một metaprotocol dựa trên WASM (Để biết thêm chi tiết, xem: https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/wasm_meta_protocol/index.html) mã bytecode của mã nguồn blockchain được lưu trữ trong trạng thái. Điều này cho phép hầu hết các nâng cấp diễn ra mà không cần hard fork và cho phép phân tầng không đồng nhất. (Xem các phần liên quan để biết thêm thông tin về 'phân tầng không đồng nhất').

Thực thi theo phân mảnh: Điểm chính

Hiện tại, chúng tôi đang thảo luận về một mạng Layer 1 mà lưu trữ các mạng “blockchain” Layer 2 khác, tương tự như Polkadot và Ethereum. Do đó, các thuật ngữ Layer 2 và Parachain có thể được sử dụng thay thế cho nhau.

Vấn đề cốt lõi của khả năng mở rộng blockchain có thể được đặt ra như sau: Có một nhóm các bên xác nhận, sử dụng cơ cấu kinh tế mã hóa của chứng minh cổ phần, đảm bảo rằng việc thực thi mã nguồn nhất định là đáng tin cậy. Mặc định, những bên xác nhận này cần phải thực thi lại tất cả công việc của nhau. Miễn là chúng ta áp đặt rằng tất cả các bên xác nhận luôn phải thực thi lại tất cả mọi thứ, toàn bộ hệ thống vẫn không thể mở rộng được.

Vui lòng lưu ý rằng, miễn là nguyên tắc tái thực hiện tuyệt đối không thay đổi, việc tăng số lượng người xác minh trong mô hình này thực sự không cải thiện hiệu suất hệ thống.

Điều này chứng tỏ một chuỗi khối tuyến tính (so với chuỗi khối được chia nhỏ). Tất cả các máy chủ xác thực mạng xử lý đầu vào (tức là, các khối) một cách tuần tự. Trong một hệ thống như vậy, nếu Layer 1 muốn địa chỉ nhiều Layer 2 hơn, thì tất cả các máy chủ xác thực phải thực thi lại tất cả công việc của Layer 2. Rõ ràng, phương pháp này không mở rộng được.

Optimistic rollups giải quyết vấn đề này bằng cách chỉ thực hiện lại (bằng chứng gian lận) khi gian lận được tuyên bố. Bản tổng hợp dựa trên SNARK giải quyết vấn đề này bằng cách tận dụng thực tế là chi phí xác thực bằng chứng SNARK thấp hơn đáng kể so với chi phí tạo chúng, do đó cho phép tất cả các trình xác thực xác minh hiệu quả bằng chứng SNARK. Để biết thêm chi tiết, hãy tham khảo "Phụ lục: Sơ đồ không gian khả năng mở rộng".

Một giải pháp trực tiếp cho việc tách là chia tập hợp các validator thành các tập con nhỏ hơn và có các tập con nhỏ này thực thi lại các khối Layer2. Vấn đề của phương pháp này là gì? Cơ bản, chúng ta đang tách cả việc thực thi và an ninh kinh tế của mạng. Một giải pháp Layer2 như vậy có độ bảo mật thấp hơn so với Layer1, và độ bảo mật của nó giảm đi khi chúng ta chia tập hợp các validator thành nhiều phần hơn.

Không giống như optimistic rollups, nơi chi phí thực thi lại không phải lúc nào cũng có thể tránh được, Polkadot được thiết kế với việc thực thi phân mảnh trong tâm trí. Nó cho phép một phần của người xác thực thực thi lại các khối Layer 2 trong khi cung cấp đủ bằng chứng cryptoeconomic cho toàn bộ mạng lưới để chứng minh rằng khối Layer 2 là an toàn như khi toàn bộ bộ xác thực đã thực thi lại nó. Điều này được đạt được thông qua một cơ chế mới lạ (và gần đây được hình thành) được biết đến là ELVES. (Để biết thêm chi tiết, xem: https://eprint.iacr.org/2024/961)

Để ý, ELVES có thể được coi là cơ chế “suspicious rollups”. Thông qua một số vòng lặp của các nhà xác minh truy vấn một cách tích cực các nhà xác minh khác về việc xem xét xem một khối Layer 2 cụ thể có hợp lệ hay không, chúng ta có thể xác nhận với xác suất cao về tính hợp lệ của khối đó. Trong trường hợp có bất kỳ tranh cãi nào, toàn bộ bộ xác minh sẽ nhanh chóng tham gia. Rob Habermeier, người sáng lập Polkadot, đã giải thích điều này một cách chi tiết trong một bài viết. (Để biết thêm chi tiết, xem: https://polkadot.com/blog/polkadot-v1-0-sharding-and-economic-security#approval-checking-and-finality)

ELVES cho phép Polkadot sở hữu cả thực thi phân mảnh và an ninh chia sẻ, hai thuộc tính trước đây được cho là không thể tồn tại cùng nhau. Điều này là thành tựu kỹ thuật chính của Polkadot1 về khả năng mở rộng.

Bây giờ, hãy tiến xa hơn với phân tích "Core". Một blockchain thực thi phân mảnh rất giống với một CPU: giống như một CPU có thể có nhiều lõi thực thi các hướng dẫn song song, Polkadot có thể xử lý các khối Layer 2 song song. Đó là lý do tại sao Layer 2 trên Polkadot được gọi là một parachain, và môi trường nơi các tập hợp validator nhỏ hơn thực thi lại một khối Layer 2 đơn được gọi là một "core". Mỗi lõi có thể được trừu tượng hóa như "một nhóm validator hợp tác."

Bạn có thể nghĩ về một chuỗi khối đồng nhất như đang xử lý một khối duy nhất vào một thời điểm, trong khi Polkadot xử lý cả khối chuỗi relay và khối parachain cho mỗi nhân lõi trong cùng một khoảng thời gian.

Đa dạng

Cho đến nay, chúng tôi chỉ đã thảo luận về khả năng mở rộng và thực thi theo từng phần được cung cấp bởi Polkadot. Quan trọng phải lưu ý rằng mỗi phần của Polkadot, thực tế, là một ứng dụng hoàn toàn khác biệt. Điều này được đạt được thông qua metaprotocol được lưu trữ dưới dạng bytecode: một giao thức lưu trữ định nghĩa của chính blockchain dưới dạng bytecode trong trạng thái của nó. Trong Polkadot 1.0, WASM được sử dụng làm bytecode ưu tiên, trong khi trong JAM, PVM/RISC-V được áp dụng.

Đây là lý do tại sao Polkadot được gọi là một chuỗi khối phân mảnh không đồng nhất. (Để biết thêm chi tiết, xem:https://x.com/kianenigma/status/1790763921600606259) Mỗi Layer 2 là một ứng dụng hoàn toàn khác biệt.

Polkadot2

Một khía cạnh quan trọng của Polkadot2 là làm cho việc sử dụng lõi linh hoạt hơn. Trong mô hình Polkadot ban đầu, thời gian cho thuê cốt lõi dao động từ 6 tháng đến 2 năm, phù hợp với các doanh nghiệp giàu tài nguyên nhưng ít khả thi hơn đối với các nhóm nhỏ hơn. Tính năng cho phép các lõi Polkadot được sử dụng linh hoạt hơn được gọi là "Agile Coretime". (Để biết thêm chi tiết, xem:https://polkadot.com/agile-coretime) Trong chế độ này, các điều khoản cho thuê cơ bản có thể ngắn chỉ là một khối hoặc lâu đến một tháng, với mức giá tối đa đối với những người muốn thuê trong thời gian dài hơn.

Các tính năng khác của Polkadot 2 sẽ dần dần được tiết lộ khi cuộc thảo luận của chúng ta tiến triển, vì vậy không cần phải giải thích thêm ở đây.

Hoạt động trong lõi so với Hoạt động trên chuỗi

Để hiểu JAM, việc quan trọng đầu tiên là phải nắm bắt điều gì xảy ra khi một khối Layer 2 nhập vào hạt nhân Polkadot. Dưới đây là một giải thích đơn giản.

Hãy nhớ rằng một nhân hạt chủ yếu bao gồm một tập hợp các người xác minh. Vì vậy, khi chúng ta nói "dữ liệu được gửi đến nhân hạt", điều đó có nghĩa là dữ liệu được chuyển đến tập hợp này của các người xác minh.

  1. Một khối Layer 2, cùng với một phần của trạng thái của Layer 2 đó, được gửi đến nhân trung tâm. Dữ liệu này chứa tất cả thông tin cần thiết để thực thi khối Layer 2.

  2. Một phần của các trình xác minh nhân lõi sẽ thực hiện lại khối Layer 2 và tiếp tục với các nhiệm vụ liên quan đến sự đồng thuận.

  3. Các validator nhân lõi này cung cấp dữ liệu đã thực thi cho các validator khác bên ngoài nhóm nhân lõi. Theo quy tắc ELVES, các validator này có thể quyết định liệu có thực thi lại khối Layer 2 hay không, cần dữ liệu này để làm điều đó.

Quan trọng nhấn mạnh rằng, cho đến nay, tất cả những hoạt động này đều diễn ra bên ngoài khối chính của Polkadot và chức năng chuyển trạng thái. Mọi thứ diễn ra trong lõi và lớp tính sẵn sàng dữ liệu.

  1. Cuối cùng, một phần nhỏ của trạng thái Layer 2 mới nhất trở nên hiển thị trên chuỗi trung chuyển chính của Polkadot. Khác với các hoạt động trước đó, bước này rẻ hơn nhiều so với việc thực thi lại khối Layer 2, và nó ảnh hưởng đến trạng thái chính của Polkadot. Nó có thể nhìn thấy trong một khối Polkadot và được thực thi bởi tất cả các bộ xác minh của Polkadot.

Từ đó, chúng ta có thể khám phá một số hoạt động chính mà Polkadot đang thực hiện:

  • Từ Bước 1, chúng ta có thể kết luận rằng Polkadot đã giới thiệu một loại thực thi mới, khác biệt so với các chức năng chuyển trạng thái của blockchain truyền thống. Thông thường, khi tất cả các máy chủ xác thực mạng thực hiện một nhiệm vụ, trạng thái chính của blockchain sẽ được cập nhật. Đây chính là điều chúng ta gọi là thực hiện trên chuỗi, và đó là điều xảy ra trong Bước 3. Tuy nhiên, điều xảy ra bên trong lõi (Bước 1) lại khác. Hình thức tính toán blockchain mới này được gọi là thực thi trong lõi.
  • Từ Bước 2, chúng tôi suy luận rằng Polkadot có một Sẵn có Dữ liệu (DA)lớp và Layer 2s tự động sử dụng nó để đảm bảo rằng bằng chứng về việc thực thi của họ vẫn có sẵn trong một khoảng thời gian nhất định. Tuy nhiên, các khối dữ liệu có thể được đăng lên lớp DA là cố định, chỉ chứa bằng chứng cần thiết cho việc thực thi lại Layer 2. Hơn nữa, mã parachain không đọc dữ liệu lớp DA.

Hiểu điều này là nền tảng để hiểu JAM. Dưới đây là một bản tóm tắt:

  • Thực thi trong lõi: Đề cập đến các hoạt động diễn ra bên trong nhân hạt. Những hoạt động này phong phú, có khả năng mở rộng, và được bảo đảm thông qua cryptoeconomics và ELVES, cung cấp cùng mức độ bảo mật như thực thi trên chuỗi.
  • Thực thi trên chuỗi: Đề cập đến các hoạt động được thực hiện bởi tất cả các người xác minh. Những hoạt động này được cam kết về mặt kinh tế là đảm bảo an toàn mặc định, nhưng chúng đắt đỏ và bị hạn chế hơn vì mọi người đều thực hiện tất cả các nhiệm vụ.
  • Sẵn có dữ liệu: Đề cập đến khả năng của các nhà xác thực Polkadot để đảm bảo sẵn có dữ liệu cụ thể trong một khoảng thời gian và cung cấp nó cho các nhà xác thực khác.

JAM

Với sự hiểu biết này, chúng tôi có thể giới thiệu JAM ngay bây giờ.

JAM là một giao thức mới được truyền cảm hứng từ thiết kế của Polkadot và hoàn toàn tương thích với nó, nhằm mục tiêu thay thế chuỗi relay của Polkadot và làm cho việc sử dụng hạt nhân trở nên hoàn toàn phi tập trung và không bị hạn chế.

Xây dựng trên Polkadot 2, JAM cố gắng làm cho việc triển khai Layer 2 trên lõi dễ tiếp cận hơn, cung cấp thậm chí linh hoạt hơn so với mô hình agile-coretime.

  • Polkadot 2 cho phép triển khai Layer 2 trên lõi trở nên linh hoạt hơn.
  • JAM nhằm mục tiêu cho phép bất kỳ ứng dụng nào được triển khai trên hạ tầng cốt lõi của Polkadot, ngay cả khi những ứng dụng đó không được cấu trúc giống như các chuỗi khối hoặc Layer 2s.

Điều này được đạt được chủ yếu bằng cách tiết lộ ba khái niệm cốt lõi đã được thảo luận trước đó cho các nhà phát triển: thực thi trên chuỗi, thực thi trong lõi, và lớp DA.

Nói cách khác, trong JAM, các nhà phát triển có thể:

  • Đầy đủ chương trình cả nhiệm vụ trong lõi và trên chuỗi.
  • Đọc và ghi vào lớp DA của Polkadot với dữ liệu tùy ý.

Đây là cái nhìn tổng quan cơ bản về mục tiêu của JAM. Không cần phải nói, nhiều phần của điều này đã được đơn giản hóa, và giao thức có khả năng tiếp tục phát triển.

Với sự hiểu biết cơ bản này, chúng ta có thể đi sâu vào một số điều cụ thể về JAM trong các chương tiếp theo.

Dịch vụ và Mục công việc

Trong JAM, những gì trước đây được gọi là Layer 2 hoặc parachains bây giờ được gọi là Dịch vụvà những gì trước đây được gọi là khối hoặc giao dịch bây giờ được gọi làCông việchoặcGói công việc. Cụ thể, một mục công việc thuộc về một dịch vụ, và một gói công việc là một bộ sưu tập các mục công việc. Những thuật ngữ này được mô tả rộng rãi để bao gồm các trường hợp sử dụng vượt ra ngoài các kịch bản blockchain/Layer 2.

Một dịch vụ được mô tả bởi ba điểm nhập, trong đó hai điểm là fn refine() và fn accumulate(). Điểm đầu tiên mô tả dịch vụ làm gì trong quá trình thực thi trên core, và điểm thứ hai mô tả dịch vụ làm gì trong quá trình thực thi trên chuỗi.

Cuối cùng, tên của những điểm nhập này chính là lý do khiến giao thức được gọi là JAM (Join Accumulate Machine).Tham giađề cập đếnfn refine(), đó là giai đoạn mà tất cả các lõi Polkadot xử lý một lượng công việc lớn song song trên các dịch vụ khác nhau. Sau khi dữ liệu được xử lý, nó sẽ chuyển sang giai đoạn tiếp theo.Tích luỹđề cập đến quá trình tích lũy tất cả các kết quả này vào trạng thái JAM chính, điều này xảy ra trong giai đoạn thực thi trên chuỗi.

Các mục công việc có thể chỉ định một cách chính xác mã họ thực thi trên core và on-chain, cũng như cách, nếu có, và từ đâu họ đọc hoặc ghi nội dung trong Hồ dữ liệu phân tán.

Semi-Consistency

Đánh giá tài liệu hiện có về XCM (ngôn ngữ được chọn của Polkadot cho việc giao tiếp với parachain), tất cả giao tiếp đều là bất đồng bộ (để biết thêm chi tiết, xemở đây). Điều này có nghĩa là một khi một tin nhắn được gửi đi, bạn không thể đợi phản hồi của nó. Giao tiếp không đồng bộ là một triệu chứng của sự không nhất quán trong hệ thống và là một trong những nhược điểm chính của các hệ thống được chia nhỏ một cách cố định như Polkadot 1, Polkadot 2 và các hệ sinh thái Layer 2 hiện tại của Ethereum.

Tuy nhiên, như mô tả trong Phần 2.4 củaGraypaper, một hệ thống hoàn toàn nhất quán mà vẫn đồng bộ cho tất cả các người thuê chỉ có thể mở rộng đến một mức độ nhất định mà không phải hy sinh tính phổ biến, tính truy cập hoặc tính linh hoạt.

  • Đồng bộ ≈ Tính nhất quán || Bất đồng bộ ≈ Tính không nhất quán

Điều đặc biệt ở JAM là việc giới thiệu một số tính năng, JAM đạt được một trạng thái trung gian mới được biết đến là hệ thống bán kính bán kính. Trong hệ thống này, các hệ thống con giao tiếp thường xuyên có thể tạo ra môi trường nhất quán với nhau, mà không buộc cả hệ thống phải duy trì tính nhất quán. Điều này được mô tả tốt nhất bởi Tiến sĩ Gavin Wood, tác giả của Graypaper, trong một cuộc phỏng vấn: https://www.youtube.com/watch?t=1378&v=O3kRAVBTkfs&embeds_referring_euri=https%3A%2F%2Fblog.kianenigma.nl%2F&source_ve_path=OTY3MTQ

Một cách khác để hiểu điều này là bằng cách xem Polkadot/JAM như một hệ thống được chia nhỏ, nơi ranh giới giữa những mảnh này là linh hoạt và được xác định một cách động.

Polkadot luôn được chia nhỏ và hoàn toàn không đồng nhất.

Bây giờ, nó không chỉ phân mảnh và không đồng nhất, mà những ranh giới phân mảnh này cũng có thể được định nghĩa linh hoạt - điều mà Gavin Wood gọi là một hệ thống "bán nhất quán" trong những bài viết trên Twitter của mình và trong Graypaper. (xin xem: https://x.com/gavofyork?ref_src=twsrc%5Etfw、https://graypaper.com/)

Một số tính năng làm cho trạng thái bán ổn định này có thể xảy ra:

  1. Truy cập vào việc thực thi không trạng thái, song song trong core, nơi mà các dịch vụ khác chỉ có thể tương tác đồng bộ với các dịch vụ khác trong cùng một core và block cụ thể, cũng như thực thi trên chuỗi, nơi mà các dịch vụ có thể truy cập kết quả từ tất cả dịch vụ trên tất cả các core.
  2. JAM không áp đặt bất kỳ lịch trình dịch vụ cụ thể nào. Các dịch vụ có giao tiếp thường xuyên có thể cung cấp động lực kinh tế cho các bộ lập lịch của họ để tạo các gói công việc chứa những dịch vụ giao tiếp thường xuyên này. Điều này cho phép những dịch vụ này chạy trong cùng một nhân, làm cho tương tác của họ trở nên đồng bộ, mặc dù chúng được phân tán.
  3. Bên cạnh đó, dịch vụ JAM có thể truy cập vào lớp DA và sử dụng nó như một lớp dữ liệu tạm thời nhưng cực kỳ hiệu quả về chi phí. Khi dữ liệu được đặt vào DA, nó cuối cùng lan rộng đến tất cả các nhân nhưng ngay lập tức có sẵn trong cùng một nhân. Do đó, dịch vụ JAM có thể đạt được mức độ truy cập dữ liệu cao hơn bằng cách xếp lịch cho chính mình trong cùng một nhân qua các khối liên tiếp.

Lưu ý rằng trong JAM, các khả năng này có thể được thực hiện, nhưng không bắt buộc ở cấp độ giao thức. Do đó, một số giao diện lý thuyết là không đồng bộ nhưng trong thực tế có thể hoạt động đồng bộ do sự trừu tượng phức tạp và động cơ khuyến khích. CorePlay, sẽ được thảo luận trong phần tiếp theo, là một ví dụ cho hiện tượng này.

CorePlay

Phần này giới thiệu CorePlay, một khái niệm thí nghiệm trong môi trường JAM có thể được mô tả là một mô hình lập trình hợp đồng thông minh mới. Đến thời điểm viết bài này, CorePlay chưa được xác định đầy đủ và vẫn là một ý tưởng đầu cơ.

Để hiểu về CorePlay, chúng ta cần trước tiên giới thiệu máy ảo (VM) được JAM lựa chọn: PVM.

PVM

PVM là một chi tiết quan trọng trong cả JAM và CorePlay. Những chi tiết cấp thấp của PVM nằm ngoài phạm vi của tài liệu này và được giải thích tốt nhất bởi các chuyên gia lĩnh vực trong Graypaper. Tuy nhiên, cho giải thích này, chúng tôi sẽ nêu bật một số đặc điểm chính của PVM:

  • Đo lường hiệu quả
  • Khả năng tạm dừng và tiếp tục thực thi

Điều cuối cùng, đặc biệt quan trọng đối với CorePlay.

CorePlay là một ví dụ về cách các nguyên tắc linh hoạt của JAM có thể được sử dụng để tạo ra môi trường hợp đồng thông minh đồng bộ và có khả năng mở rộng với giao diện lập trình cực kỳ linh hoạt. CorePlay đề xuất rằng các hợp đồng thông minh dựa trên người tham gia được triển khai trực tiếp trên nhân JAM, cho phép họ hưởng lợi từ các giao diện lập trình đồng bộ. Các nhà phát triển có thể viết hợp đồng thông minh như là các hàm fn main() đơn giản, sử dụng các biểu thức như let kết quả = nhân vật coreplay khác(data).await?để giao tiếp. Nếudiễn viên khác của Coreplayđược trên cùng một lõi JAM trong cùng một khối, cuộc gọi này là đồng bộ. Nếu nó trên một lõi khác, diễn viên sẽ bị tạm dừng và tiếp tục trong một khối JAM sau. Điều này được thực hiện nhờ các dịch vụ JAM, lập lịch linh hoạt của họ và khả năng của PVM.

Dịch vụ CoreChains

Cuối cùng, hãy tổng kết lý do chính JAM hoàn toàn tương thích với Polkadot. Sản phẩm mũi nhọn của Polkadot là các chuỗi phản ứng agile-coretime, tiếp tục trong JAM. Các dịch vụ triển khai sớm nhất trong JAM có thể sẽ được gọi là CoreChains hoặc Parachains, cho phép các chuỗi phản ứng kiểu Polkadot-2 hiện có chạy trên JAM.

Các dịch vụ khác có thể được triển khai trên JAM, và dịch vụ CoreChains hiện tại có thể giao tiếp với chúng. Tuy nhiên, các sản phẩm hiện tại của Polkadot sẽ vẫn mạnh mẽ, đơn giản chỉ mở ra cơ hội mới cho các nhóm parachain hiện tại.

Phụ lục: Chia dữ liệu

Hầu hết tài liệu này nói về khả năng mở rộng từ góc nhìn của việc phân chia thực hiện. Tuy nhiên, chúng ta cũng có thể xem xét vấn đề này từ quan điểm phân chia dữ liệu. Thú vị là, chúng ta thấy rằng điều này tương tự như mô hình bán nhất quán được đề cập trước đó. Về nguyên tắc, một hệ thống hoàn toàn nhất quán là ưu việt nhưng không thể mở rộng, trong khi một hệ thống hoàn toàn không nhất quán mở rộng tốt nhưng không tối ưu. JAM, với mô hình bán nhất quán của nó, đưa ra một khả năng mới.

  • Hệ thống hoàn toàn nhất quán: Đây là các nền tảng mà mọi thứ được đồng bộ hóa, chẳng hạn như Solana hoặc những nền tảng chỉ triển khai trên Ethereum Layer 1. Tất cả dữ liệu ứng dụng đều được lưu trữ trên chuỗi và dễ dàng truy cập bởi tất cả các ứng dụng khác. Điều này lý tưởng từ góc độ có thể lập trình nhưng không có khả năng mở rộng.
  • Hệ thống không nhất quán: Dữ liệu ứng dụng được lưu trữ ở Layer 1 hoặc trong các shard cách ly khác nhau. Điều này có khả năng mở rộng cao nhưng hoạt động kém hiệu quả về khả năng kết hợp. Mô hình rollup của Polkadot và Ethereum rơi vào danh mục này.

JAM cung cấp điều gì đó vượt ra ngoài hai tùy chọn này: nó cho phép các nhà phát triển công bố dữ liệu tùy ý lên lớp DA JAM, là một điểm trung gian giữa dữ liệu trên chuỗi và ngoài chuỗi. Các ứng dụng mới có thể được xây dựng để tận dụng lớp DA cho hầu hết dữ liệu của họ, trong khi chỉ lưu trữ dữ liệu cực kỳ quan trọng vào trạng thái JAM.

Phụ lục: Phong cảnh tính mở rộng

Phần này sẽ xem xét lại quan điểm của chúng tôi về khả năng mở rộng của blockchain, được thảo luận trong Bản mô tả dự án, mặc dù ở đây được trình bày một cách ngắn gọn hơn.

Khả năng mở rộng của blockchain chủ yếu tuân theo các phương pháp truyền thống từ hệ thống phân tán: mở rộng theo chiều dọc và mở rộng theo chiều ngang.

Tăng cường theo chiều dọc là điều mà các nền tảng như Solana tập trung vào, tối đa hóa thông lượng bằng cách tối ưu cả mã và phần cứng đến giới hạn của họ.

Việc mở rộng theo chiều ngang là chiến lược được Ethereum và Polkadot áp dụng: giảm công việc mà mỗi người tham gia cần xử lý. Trong các hệ thống phân tán truyền thống, điều này được đạt được bằng cách thêm nhiều máy sao chép hơn. Trong blockchain, “máy tính” là toàn bộ mạng lưới của các nhà xác minh. Bằng cách phân phối các nhiệm vụ giữa họ (như ELVES làm) hoặc giảm trách nhiệm của họ một cách lạc quan (như trong Optimistic Rollups), chúng ta giảm công việc cho toàn bộ bộ xác minh, từ đó đạt được việc mở rộng theo chiều ngang.

Trong blockchain, việc mở rộng theo chiều ngang có thể được ví như “giảm số lượng máy cần thực hiện tất cả các hoạt động.”

Tóm lại:

  1. Tăng tỷ lệ theo chiều dọc: Phần cứng hiệu suất cao + tối ưu hóa của các chuỗi khối đơn vị.
  2. Mở rộng theo chiều ngang:
    • Tối Ưu Hóa Rollups
    • SNARK-based Rollups
    • ELVES: Các Cynical Rollups của Polkadot

Phụ lục: Cùng phần cứng, Nâng cấp Kernel

Phần này dựa trên phân tích của Rob Habermeier từ Sub0 2023: Polkadot: Nhân/Userland | Sub0 2023 - YouTube (see:https://www.youtube.com/watch?v=15aXYvVMxlw) giới thiệu JAM như một bản nâng cấp cho Polkadot: một bản cập nhật kernel trên cùng phần cứng.

Trong một máy tính điển hình, chúng ta có thể chia toàn bộ ngăn xếp thành ba phần:

  1. Phần cứng
  2. Nhân
  3. User Space

Trong Polkadot, phần cứng - cơ sở hạ tầng cung cấp tính toán và khả năng sẵn có dữ liệu - luôn là những lõi, như đã được đề cập trước đó.

Trong Polkadot, kernel cho đến nay đã bao gồm hai phần chính:

  1. Giao thức Parachainsmột cách cố định, kiểu cách cứng nhắc trong việc sử dụng các lõi.
  2. Một bộ các chức năng cấp thấp, như mã thông báo DOT và tính khả chuyển, staking, quản trị, v.v.

Cả hai đều tồn tại trong Chuỗi chuyển tiếp của Polkadot.

Các ứng dụng không gian người dùng, ngược lại, là các parachains chính họ, token bản địa của họ, và bất cứ điều gì được xây dựng trên cơ sở của chúng.

Chúng ta có thể hình dung quy trình này như sau:

Polkadot đã lâu đã mơ ước chuyển các chức năng cốt lõi hơn cho người dùng chính của mình - các parachain. Đây chính xác là mục tiêu của RFC Minimal Relay. (Để biết thêm chi tiết, xem:Bộ chỉ đường tối thiểu RFC)

Điều này có nghĩa là Chuỗi Truyền Relai Polkadot chỉ xử lý việc cung cấp giao thức parachain, từ đó giảm không gian kernel một phần nào đó.

Khi kiến trúc này được triển khai, việc hình dung ra một bản vẽ về việc di trú JAM sẽ trở nên dễ dàng hơn. JAM sẽ giảm đáng kể không gian nhân của Polkadot, khiến nó trở nên linh hoạt hơn. Ngoài ra, giao thức Parachains sẽ chuyển sang không gian người dùng, vì đó là một trong số ít cách để xây dựng ứng dụng trên cùng một hạt nhân (phần cứng) và nhân (JAM)

Điều này cũng củng cố lý do tại sao JAM là sự thay thế cho Chuỗi chuyển tiếp Polkadot, không phải cho parachain.

Nói cách khác, chúng ta có thể xem quá trình di cư JAM như một việc nâng cấp kernel. Phần cứng cơ bản vẫn không thay đổi, và nhiều nội dung của kernel cũ được di chuyển đến không gian người dùng để đơn giản hóa hệ thống.

Tuyên bố:

  1. Bài viết này được sao chép từ [ Viện Nghiên cứu Sinh thái Polkadot], Tất cả bản quyền thuộc về tác giả gốc [Viện nghiên cứu sinh thái Polkadot]. Nếu có ý kiến phản đối về việc tái bản này, vui lòng liên hệ với Gate Họcđội và họ sẽ xử lý nó ngay lập tức.
  2. Bản Tuyên Bố Miễn Trừ Trách Nhiệm: Các quan điểm và ý kiến được thể hiện trong bài viết này chỉ thuộc về tác giả và không cung cấp bất kỳ lời khuyên đầu tư nào.
  3. Bản dịch của bài viết sang các ngôn ngữ khác được thực hiện bởi nhóm Gate Learn. Trừ khi được đề cập, việc sao chép, phân phối hoặc đạo văn bản dịch là không được phép.

Một Tổng Quan Kỹ Thuật về Giao Thức JAM của Polkadot

Nâng cao9/14/2024, 10:47:29 AM
Bài viết này cung cấp một phân tích kỹ thuật về giao thức JAM mới được đề xuất của Polkadot, giúp độc giả hiểu cách JAM giới thiệu một cấp độ mở rộng mới cho hệ sinh thái Polkadot.

Dưới đây là một giải thích chi tiết về Polkadot1, Polkadot2 và cách họ phát triển thành JAM. (Để biết thêm chi tiết, xem tại:https://www.navalmanack.com/almanack-of-naval-ravikant/how-to-think-clearlyBài viết này nhằm vào độc giả kỹ thuật, đặc biệt là những người có thể không quá quen thuộc với Polkadot nhưng có một số hiểu biết về hệ thống blockchain và có thể đã quen thuộc với các công nghệ từ các hệ sinh thái khác.
Tôi tin rằng bài viết này là một bước đệm tốt cho việc đọc JAM Gray Paper. (Để biết thêm chi tiết, xem:https://graypaper.com/)

Kiến thức nền tảng

Bài viết này cho rằng người đọc đã quen thuộc với các khái niệm sau:

Giới thiệu: Polkadot1

Hãy trở lại xem xét các tính năng sáng tạo nhất của Polkadot1 trước.

Mặt xã hội:

Khía cạnh kỹ thuật:

  • Polkadot áp dụng bảo mật chung và thực thi theo hệ thống shard.
  • Sử dụng một metaprotocol dựa trên WASM (Để biết thêm chi tiết, xem: https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/wasm_meta_protocol/index.html) mã bytecode của mã nguồn blockchain được lưu trữ trong trạng thái. Điều này cho phép hầu hết các nâng cấp diễn ra mà không cần hard fork và cho phép phân tầng không đồng nhất. (Xem các phần liên quan để biết thêm thông tin về 'phân tầng không đồng nhất').

Thực thi theo phân mảnh: Điểm chính

Hiện tại, chúng tôi đang thảo luận về một mạng Layer 1 mà lưu trữ các mạng “blockchain” Layer 2 khác, tương tự như Polkadot và Ethereum. Do đó, các thuật ngữ Layer 2 và Parachain có thể được sử dụng thay thế cho nhau.

Vấn đề cốt lõi của khả năng mở rộng blockchain có thể được đặt ra như sau: Có một nhóm các bên xác nhận, sử dụng cơ cấu kinh tế mã hóa của chứng minh cổ phần, đảm bảo rằng việc thực thi mã nguồn nhất định là đáng tin cậy. Mặc định, những bên xác nhận này cần phải thực thi lại tất cả công việc của nhau. Miễn là chúng ta áp đặt rằng tất cả các bên xác nhận luôn phải thực thi lại tất cả mọi thứ, toàn bộ hệ thống vẫn không thể mở rộng được.

Vui lòng lưu ý rằng, miễn là nguyên tắc tái thực hiện tuyệt đối không thay đổi, việc tăng số lượng người xác minh trong mô hình này thực sự không cải thiện hiệu suất hệ thống.

Điều này chứng tỏ một chuỗi khối tuyến tính (so với chuỗi khối được chia nhỏ). Tất cả các máy chủ xác thực mạng xử lý đầu vào (tức là, các khối) một cách tuần tự. Trong một hệ thống như vậy, nếu Layer 1 muốn địa chỉ nhiều Layer 2 hơn, thì tất cả các máy chủ xác thực phải thực thi lại tất cả công việc của Layer 2. Rõ ràng, phương pháp này không mở rộng được.

Optimistic rollups giải quyết vấn đề này bằng cách chỉ thực hiện lại (bằng chứng gian lận) khi gian lận được tuyên bố. Bản tổng hợp dựa trên SNARK giải quyết vấn đề này bằng cách tận dụng thực tế là chi phí xác thực bằng chứng SNARK thấp hơn đáng kể so với chi phí tạo chúng, do đó cho phép tất cả các trình xác thực xác minh hiệu quả bằng chứng SNARK. Để biết thêm chi tiết, hãy tham khảo "Phụ lục: Sơ đồ không gian khả năng mở rộng".

Một giải pháp trực tiếp cho việc tách là chia tập hợp các validator thành các tập con nhỏ hơn và có các tập con nhỏ này thực thi lại các khối Layer2. Vấn đề của phương pháp này là gì? Cơ bản, chúng ta đang tách cả việc thực thi và an ninh kinh tế của mạng. Một giải pháp Layer2 như vậy có độ bảo mật thấp hơn so với Layer1, và độ bảo mật của nó giảm đi khi chúng ta chia tập hợp các validator thành nhiều phần hơn.

Không giống như optimistic rollups, nơi chi phí thực thi lại không phải lúc nào cũng có thể tránh được, Polkadot được thiết kế với việc thực thi phân mảnh trong tâm trí. Nó cho phép một phần của người xác thực thực thi lại các khối Layer 2 trong khi cung cấp đủ bằng chứng cryptoeconomic cho toàn bộ mạng lưới để chứng minh rằng khối Layer 2 là an toàn như khi toàn bộ bộ xác thực đã thực thi lại nó. Điều này được đạt được thông qua một cơ chế mới lạ (và gần đây được hình thành) được biết đến là ELVES. (Để biết thêm chi tiết, xem: https://eprint.iacr.org/2024/961)

Để ý, ELVES có thể được coi là cơ chế “suspicious rollups”. Thông qua một số vòng lặp của các nhà xác minh truy vấn một cách tích cực các nhà xác minh khác về việc xem xét xem một khối Layer 2 cụ thể có hợp lệ hay không, chúng ta có thể xác nhận với xác suất cao về tính hợp lệ của khối đó. Trong trường hợp có bất kỳ tranh cãi nào, toàn bộ bộ xác minh sẽ nhanh chóng tham gia. Rob Habermeier, người sáng lập Polkadot, đã giải thích điều này một cách chi tiết trong một bài viết. (Để biết thêm chi tiết, xem: https://polkadot.com/blog/polkadot-v1-0-sharding-and-economic-security#approval-checking-and-finality)

ELVES cho phép Polkadot sở hữu cả thực thi phân mảnh và an ninh chia sẻ, hai thuộc tính trước đây được cho là không thể tồn tại cùng nhau. Điều này là thành tựu kỹ thuật chính của Polkadot1 về khả năng mở rộng.

Bây giờ, hãy tiến xa hơn với phân tích "Core". Một blockchain thực thi phân mảnh rất giống với một CPU: giống như một CPU có thể có nhiều lõi thực thi các hướng dẫn song song, Polkadot có thể xử lý các khối Layer 2 song song. Đó là lý do tại sao Layer 2 trên Polkadot được gọi là một parachain, và môi trường nơi các tập hợp validator nhỏ hơn thực thi lại một khối Layer 2 đơn được gọi là một "core". Mỗi lõi có thể được trừu tượng hóa như "một nhóm validator hợp tác."

Bạn có thể nghĩ về một chuỗi khối đồng nhất như đang xử lý một khối duy nhất vào một thời điểm, trong khi Polkadot xử lý cả khối chuỗi relay và khối parachain cho mỗi nhân lõi trong cùng một khoảng thời gian.

Đa dạng

Cho đến nay, chúng tôi chỉ đã thảo luận về khả năng mở rộng và thực thi theo từng phần được cung cấp bởi Polkadot. Quan trọng phải lưu ý rằng mỗi phần của Polkadot, thực tế, là một ứng dụng hoàn toàn khác biệt. Điều này được đạt được thông qua metaprotocol được lưu trữ dưới dạng bytecode: một giao thức lưu trữ định nghĩa của chính blockchain dưới dạng bytecode trong trạng thái của nó. Trong Polkadot 1.0, WASM được sử dụng làm bytecode ưu tiên, trong khi trong JAM, PVM/RISC-V được áp dụng.

Đây là lý do tại sao Polkadot được gọi là một chuỗi khối phân mảnh không đồng nhất. (Để biết thêm chi tiết, xem:https://x.com/kianenigma/status/1790763921600606259) Mỗi Layer 2 là một ứng dụng hoàn toàn khác biệt.

Polkadot2

Một khía cạnh quan trọng của Polkadot2 là làm cho việc sử dụng lõi linh hoạt hơn. Trong mô hình Polkadot ban đầu, thời gian cho thuê cốt lõi dao động từ 6 tháng đến 2 năm, phù hợp với các doanh nghiệp giàu tài nguyên nhưng ít khả thi hơn đối với các nhóm nhỏ hơn. Tính năng cho phép các lõi Polkadot được sử dụng linh hoạt hơn được gọi là "Agile Coretime". (Để biết thêm chi tiết, xem:https://polkadot.com/agile-coretime) Trong chế độ này, các điều khoản cho thuê cơ bản có thể ngắn chỉ là một khối hoặc lâu đến một tháng, với mức giá tối đa đối với những người muốn thuê trong thời gian dài hơn.

Các tính năng khác của Polkadot 2 sẽ dần dần được tiết lộ khi cuộc thảo luận của chúng ta tiến triển, vì vậy không cần phải giải thích thêm ở đây.

Hoạt động trong lõi so với Hoạt động trên chuỗi

Để hiểu JAM, việc quan trọng đầu tiên là phải nắm bắt điều gì xảy ra khi một khối Layer 2 nhập vào hạt nhân Polkadot. Dưới đây là một giải thích đơn giản.

Hãy nhớ rằng một nhân hạt chủ yếu bao gồm một tập hợp các người xác minh. Vì vậy, khi chúng ta nói "dữ liệu được gửi đến nhân hạt", điều đó có nghĩa là dữ liệu được chuyển đến tập hợp này của các người xác minh.

  1. Một khối Layer 2, cùng với một phần của trạng thái của Layer 2 đó, được gửi đến nhân trung tâm. Dữ liệu này chứa tất cả thông tin cần thiết để thực thi khối Layer 2.

  2. Một phần của các trình xác minh nhân lõi sẽ thực hiện lại khối Layer 2 và tiếp tục với các nhiệm vụ liên quan đến sự đồng thuận.

  3. Các validator nhân lõi này cung cấp dữ liệu đã thực thi cho các validator khác bên ngoài nhóm nhân lõi. Theo quy tắc ELVES, các validator này có thể quyết định liệu có thực thi lại khối Layer 2 hay không, cần dữ liệu này để làm điều đó.

Quan trọng nhấn mạnh rằng, cho đến nay, tất cả những hoạt động này đều diễn ra bên ngoài khối chính của Polkadot và chức năng chuyển trạng thái. Mọi thứ diễn ra trong lõi và lớp tính sẵn sàng dữ liệu.

  1. Cuối cùng, một phần nhỏ của trạng thái Layer 2 mới nhất trở nên hiển thị trên chuỗi trung chuyển chính của Polkadot. Khác với các hoạt động trước đó, bước này rẻ hơn nhiều so với việc thực thi lại khối Layer 2, và nó ảnh hưởng đến trạng thái chính của Polkadot. Nó có thể nhìn thấy trong một khối Polkadot và được thực thi bởi tất cả các bộ xác minh của Polkadot.

Từ đó, chúng ta có thể khám phá một số hoạt động chính mà Polkadot đang thực hiện:

  • Từ Bước 1, chúng ta có thể kết luận rằng Polkadot đã giới thiệu một loại thực thi mới, khác biệt so với các chức năng chuyển trạng thái của blockchain truyền thống. Thông thường, khi tất cả các máy chủ xác thực mạng thực hiện một nhiệm vụ, trạng thái chính của blockchain sẽ được cập nhật. Đây chính là điều chúng ta gọi là thực hiện trên chuỗi, và đó là điều xảy ra trong Bước 3. Tuy nhiên, điều xảy ra bên trong lõi (Bước 1) lại khác. Hình thức tính toán blockchain mới này được gọi là thực thi trong lõi.
  • Từ Bước 2, chúng tôi suy luận rằng Polkadot có một Sẵn có Dữ liệu (DA)lớp và Layer 2s tự động sử dụng nó để đảm bảo rằng bằng chứng về việc thực thi của họ vẫn có sẵn trong một khoảng thời gian nhất định. Tuy nhiên, các khối dữ liệu có thể được đăng lên lớp DA là cố định, chỉ chứa bằng chứng cần thiết cho việc thực thi lại Layer 2. Hơn nữa, mã parachain không đọc dữ liệu lớp DA.

Hiểu điều này là nền tảng để hiểu JAM. Dưới đây là một bản tóm tắt:

  • Thực thi trong lõi: Đề cập đến các hoạt động diễn ra bên trong nhân hạt. Những hoạt động này phong phú, có khả năng mở rộng, và được bảo đảm thông qua cryptoeconomics và ELVES, cung cấp cùng mức độ bảo mật như thực thi trên chuỗi.
  • Thực thi trên chuỗi: Đề cập đến các hoạt động được thực hiện bởi tất cả các người xác minh. Những hoạt động này được cam kết về mặt kinh tế là đảm bảo an toàn mặc định, nhưng chúng đắt đỏ và bị hạn chế hơn vì mọi người đều thực hiện tất cả các nhiệm vụ.
  • Sẵn có dữ liệu: Đề cập đến khả năng của các nhà xác thực Polkadot để đảm bảo sẵn có dữ liệu cụ thể trong một khoảng thời gian và cung cấp nó cho các nhà xác thực khác.

JAM

Với sự hiểu biết này, chúng tôi có thể giới thiệu JAM ngay bây giờ.

JAM là một giao thức mới được truyền cảm hứng từ thiết kế của Polkadot và hoàn toàn tương thích với nó, nhằm mục tiêu thay thế chuỗi relay của Polkadot và làm cho việc sử dụng hạt nhân trở nên hoàn toàn phi tập trung và không bị hạn chế.

Xây dựng trên Polkadot 2, JAM cố gắng làm cho việc triển khai Layer 2 trên lõi dễ tiếp cận hơn, cung cấp thậm chí linh hoạt hơn so với mô hình agile-coretime.

  • Polkadot 2 cho phép triển khai Layer 2 trên lõi trở nên linh hoạt hơn.
  • JAM nhằm mục tiêu cho phép bất kỳ ứng dụng nào được triển khai trên hạ tầng cốt lõi của Polkadot, ngay cả khi những ứng dụng đó không được cấu trúc giống như các chuỗi khối hoặc Layer 2s.

Điều này được đạt được chủ yếu bằng cách tiết lộ ba khái niệm cốt lõi đã được thảo luận trước đó cho các nhà phát triển: thực thi trên chuỗi, thực thi trong lõi, và lớp DA.

Nói cách khác, trong JAM, các nhà phát triển có thể:

  • Đầy đủ chương trình cả nhiệm vụ trong lõi và trên chuỗi.
  • Đọc và ghi vào lớp DA của Polkadot với dữ liệu tùy ý.

Đây là cái nhìn tổng quan cơ bản về mục tiêu của JAM. Không cần phải nói, nhiều phần của điều này đã được đơn giản hóa, và giao thức có khả năng tiếp tục phát triển.

Với sự hiểu biết cơ bản này, chúng ta có thể đi sâu vào một số điều cụ thể về JAM trong các chương tiếp theo.

Dịch vụ và Mục công việc

Trong JAM, những gì trước đây được gọi là Layer 2 hoặc parachains bây giờ được gọi là Dịch vụvà những gì trước đây được gọi là khối hoặc giao dịch bây giờ được gọi làCông việchoặcGói công việc. Cụ thể, một mục công việc thuộc về một dịch vụ, và một gói công việc là một bộ sưu tập các mục công việc. Những thuật ngữ này được mô tả rộng rãi để bao gồm các trường hợp sử dụng vượt ra ngoài các kịch bản blockchain/Layer 2.

Một dịch vụ được mô tả bởi ba điểm nhập, trong đó hai điểm là fn refine() và fn accumulate(). Điểm đầu tiên mô tả dịch vụ làm gì trong quá trình thực thi trên core, và điểm thứ hai mô tả dịch vụ làm gì trong quá trình thực thi trên chuỗi.

Cuối cùng, tên của những điểm nhập này chính là lý do khiến giao thức được gọi là JAM (Join Accumulate Machine).Tham giađề cập đếnfn refine(), đó là giai đoạn mà tất cả các lõi Polkadot xử lý một lượng công việc lớn song song trên các dịch vụ khác nhau. Sau khi dữ liệu được xử lý, nó sẽ chuyển sang giai đoạn tiếp theo.Tích luỹđề cập đến quá trình tích lũy tất cả các kết quả này vào trạng thái JAM chính, điều này xảy ra trong giai đoạn thực thi trên chuỗi.

Các mục công việc có thể chỉ định một cách chính xác mã họ thực thi trên core và on-chain, cũng như cách, nếu có, và từ đâu họ đọc hoặc ghi nội dung trong Hồ dữ liệu phân tán.

Semi-Consistency

Đánh giá tài liệu hiện có về XCM (ngôn ngữ được chọn của Polkadot cho việc giao tiếp với parachain), tất cả giao tiếp đều là bất đồng bộ (để biết thêm chi tiết, xemở đây). Điều này có nghĩa là một khi một tin nhắn được gửi đi, bạn không thể đợi phản hồi của nó. Giao tiếp không đồng bộ là một triệu chứng của sự không nhất quán trong hệ thống và là một trong những nhược điểm chính của các hệ thống được chia nhỏ một cách cố định như Polkadot 1, Polkadot 2 và các hệ sinh thái Layer 2 hiện tại của Ethereum.

Tuy nhiên, như mô tả trong Phần 2.4 củaGraypaper, một hệ thống hoàn toàn nhất quán mà vẫn đồng bộ cho tất cả các người thuê chỉ có thể mở rộng đến một mức độ nhất định mà không phải hy sinh tính phổ biến, tính truy cập hoặc tính linh hoạt.

  • Đồng bộ ≈ Tính nhất quán || Bất đồng bộ ≈ Tính không nhất quán

Điều đặc biệt ở JAM là việc giới thiệu một số tính năng, JAM đạt được một trạng thái trung gian mới được biết đến là hệ thống bán kính bán kính. Trong hệ thống này, các hệ thống con giao tiếp thường xuyên có thể tạo ra môi trường nhất quán với nhau, mà không buộc cả hệ thống phải duy trì tính nhất quán. Điều này được mô tả tốt nhất bởi Tiến sĩ Gavin Wood, tác giả của Graypaper, trong một cuộc phỏng vấn: https://www.youtube.com/watch?t=1378&v=O3kRAVBTkfs&embeds_referring_euri=https%3A%2F%2Fblog.kianenigma.nl%2F&source_ve_path=OTY3MTQ

Một cách khác để hiểu điều này là bằng cách xem Polkadot/JAM như một hệ thống được chia nhỏ, nơi ranh giới giữa những mảnh này là linh hoạt và được xác định một cách động.

Polkadot luôn được chia nhỏ và hoàn toàn không đồng nhất.

Bây giờ, nó không chỉ phân mảnh và không đồng nhất, mà những ranh giới phân mảnh này cũng có thể được định nghĩa linh hoạt - điều mà Gavin Wood gọi là một hệ thống "bán nhất quán" trong những bài viết trên Twitter của mình và trong Graypaper. (xin xem: https://x.com/gavofyork?ref_src=twsrc%5Etfw、https://graypaper.com/)

Một số tính năng làm cho trạng thái bán ổn định này có thể xảy ra:

  1. Truy cập vào việc thực thi không trạng thái, song song trong core, nơi mà các dịch vụ khác chỉ có thể tương tác đồng bộ với các dịch vụ khác trong cùng một core và block cụ thể, cũng như thực thi trên chuỗi, nơi mà các dịch vụ có thể truy cập kết quả từ tất cả dịch vụ trên tất cả các core.
  2. JAM không áp đặt bất kỳ lịch trình dịch vụ cụ thể nào. Các dịch vụ có giao tiếp thường xuyên có thể cung cấp động lực kinh tế cho các bộ lập lịch của họ để tạo các gói công việc chứa những dịch vụ giao tiếp thường xuyên này. Điều này cho phép những dịch vụ này chạy trong cùng một nhân, làm cho tương tác của họ trở nên đồng bộ, mặc dù chúng được phân tán.
  3. Bên cạnh đó, dịch vụ JAM có thể truy cập vào lớp DA và sử dụng nó như một lớp dữ liệu tạm thời nhưng cực kỳ hiệu quả về chi phí. Khi dữ liệu được đặt vào DA, nó cuối cùng lan rộng đến tất cả các nhân nhưng ngay lập tức có sẵn trong cùng một nhân. Do đó, dịch vụ JAM có thể đạt được mức độ truy cập dữ liệu cao hơn bằng cách xếp lịch cho chính mình trong cùng một nhân qua các khối liên tiếp.

Lưu ý rằng trong JAM, các khả năng này có thể được thực hiện, nhưng không bắt buộc ở cấp độ giao thức. Do đó, một số giao diện lý thuyết là không đồng bộ nhưng trong thực tế có thể hoạt động đồng bộ do sự trừu tượng phức tạp và động cơ khuyến khích. CorePlay, sẽ được thảo luận trong phần tiếp theo, là một ví dụ cho hiện tượng này.

CorePlay

Phần này giới thiệu CorePlay, một khái niệm thí nghiệm trong môi trường JAM có thể được mô tả là một mô hình lập trình hợp đồng thông minh mới. Đến thời điểm viết bài này, CorePlay chưa được xác định đầy đủ và vẫn là một ý tưởng đầu cơ.

Để hiểu về CorePlay, chúng ta cần trước tiên giới thiệu máy ảo (VM) được JAM lựa chọn: PVM.

PVM

PVM là một chi tiết quan trọng trong cả JAM và CorePlay. Những chi tiết cấp thấp của PVM nằm ngoài phạm vi của tài liệu này và được giải thích tốt nhất bởi các chuyên gia lĩnh vực trong Graypaper. Tuy nhiên, cho giải thích này, chúng tôi sẽ nêu bật một số đặc điểm chính của PVM:

  • Đo lường hiệu quả
  • Khả năng tạm dừng và tiếp tục thực thi

Điều cuối cùng, đặc biệt quan trọng đối với CorePlay.

CorePlay là một ví dụ về cách các nguyên tắc linh hoạt của JAM có thể được sử dụng để tạo ra môi trường hợp đồng thông minh đồng bộ và có khả năng mở rộng với giao diện lập trình cực kỳ linh hoạt. CorePlay đề xuất rằng các hợp đồng thông minh dựa trên người tham gia được triển khai trực tiếp trên nhân JAM, cho phép họ hưởng lợi từ các giao diện lập trình đồng bộ. Các nhà phát triển có thể viết hợp đồng thông minh như là các hàm fn main() đơn giản, sử dụng các biểu thức như let kết quả = nhân vật coreplay khác(data).await?để giao tiếp. Nếudiễn viên khác của Coreplayđược trên cùng một lõi JAM trong cùng một khối, cuộc gọi này là đồng bộ. Nếu nó trên một lõi khác, diễn viên sẽ bị tạm dừng và tiếp tục trong một khối JAM sau. Điều này được thực hiện nhờ các dịch vụ JAM, lập lịch linh hoạt của họ và khả năng của PVM.

Dịch vụ CoreChains

Cuối cùng, hãy tổng kết lý do chính JAM hoàn toàn tương thích với Polkadot. Sản phẩm mũi nhọn của Polkadot là các chuỗi phản ứng agile-coretime, tiếp tục trong JAM. Các dịch vụ triển khai sớm nhất trong JAM có thể sẽ được gọi là CoreChains hoặc Parachains, cho phép các chuỗi phản ứng kiểu Polkadot-2 hiện có chạy trên JAM.

Các dịch vụ khác có thể được triển khai trên JAM, và dịch vụ CoreChains hiện tại có thể giao tiếp với chúng. Tuy nhiên, các sản phẩm hiện tại của Polkadot sẽ vẫn mạnh mẽ, đơn giản chỉ mở ra cơ hội mới cho các nhóm parachain hiện tại.

Phụ lục: Chia dữ liệu

Hầu hết tài liệu này nói về khả năng mở rộng từ góc nhìn của việc phân chia thực hiện. Tuy nhiên, chúng ta cũng có thể xem xét vấn đề này từ quan điểm phân chia dữ liệu. Thú vị là, chúng ta thấy rằng điều này tương tự như mô hình bán nhất quán được đề cập trước đó. Về nguyên tắc, một hệ thống hoàn toàn nhất quán là ưu việt nhưng không thể mở rộng, trong khi một hệ thống hoàn toàn không nhất quán mở rộng tốt nhưng không tối ưu. JAM, với mô hình bán nhất quán của nó, đưa ra một khả năng mới.

  • Hệ thống hoàn toàn nhất quán: Đây là các nền tảng mà mọi thứ được đồng bộ hóa, chẳng hạn như Solana hoặc những nền tảng chỉ triển khai trên Ethereum Layer 1. Tất cả dữ liệu ứng dụng đều được lưu trữ trên chuỗi và dễ dàng truy cập bởi tất cả các ứng dụng khác. Điều này lý tưởng từ góc độ có thể lập trình nhưng không có khả năng mở rộng.
  • Hệ thống không nhất quán: Dữ liệu ứng dụng được lưu trữ ở Layer 1 hoặc trong các shard cách ly khác nhau. Điều này có khả năng mở rộng cao nhưng hoạt động kém hiệu quả về khả năng kết hợp. Mô hình rollup của Polkadot và Ethereum rơi vào danh mục này.

JAM cung cấp điều gì đó vượt ra ngoài hai tùy chọn này: nó cho phép các nhà phát triển công bố dữ liệu tùy ý lên lớp DA JAM, là một điểm trung gian giữa dữ liệu trên chuỗi và ngoài chuỗi. Các ứng dụng mới có thể được xây dựng để tận dụng lớp DA cho hầu hết dữ liệu của họ, trong khi chỉ lưu trữ dữ liệu cực kỳ quan trọng vào trạng thái JAM.

Phụ lục: Phong cảnh tính mở rộng

Phần này sẽ xem xét lại quan điểm của chúng tôi về khả năng mở rộng của blockchain, được thảo luận trong Bản mô tả dự án, mặc dù ở đây được trình bày một cách ngắn gọn hơn.

Khả năng mở rộng của blockchain chủ yếu tuân theo các phương pháp truyền thống từ hệ thống phân tán: mở rộng theo chiều dọc và mở rộng theo chiều ngang.

Tăng cường theo chiều dọc là điều mà các nền tảng như Solana tập trung vào, tối đa hóa thông lượng bằng cách tối ưu cả mã và phần cứng đến giới hạn của họ.

Việc mở rộng theo chiều ngang là chiến lược được Ethereum và Polkadot áp dụng: giảm công việc mà mỗi người tham gia cần xử lý. Trong các hệ thống phân tán truyền thống, điều này được đạt được bằng cách thêm nhiều máy sao chép hơn. Trong blockchain, “máy tính” là toàn bộ mạng lưới của các nhà xác minh. Bằng cách phân phối các nhiệm vụ giữa họ (như ELVES làm) hoặc giảm trách nhiệm của họ một cách lạc quan (như trong Optimistic Rollups), chúng ta giảm công việc cho toàn bộ bộ xác minh, từ đó đạt được việc mở rộng theo chiều ngang.

Trong blockchain, việc mở rộng theo chiều ngang có thể được ví như “giảm số lượng máy cần thực hiện tất cả các hoạt động.”

Tóm lại:

  1. Tăng tỷ lệ theo chiều dọc: Phần cứng hiệu suất cao + tối ưu hóa của các chuỗi khối đơn vị.
  2. Mở rộng theo chiều ngang:
    • Tối Ưu Hóa Rollups
    • SNARK-based Rollups
    • ELVES: Các Cynical Rollups của Polkadot

Phụ lục: Cùng phần cứng, Nâng cấp Kernel

Phần này dựa trên phân tích của Rob Habermeier từ Sub0 2023: Polkadot: Nhân/Userland | Sub0 2023 - YouTube (see:https://www.youtube.com/watch?v=15aXYvVMxlw) giới thiệu JAM như một bản nâng cấp cho Polkadot: một bản cập nhật kernel trên cùng phần cứng.

Trong một máy tính điển hình, chúng ta có thể chia toàn bộ ngăn xếp thành ba phần:

  1. Phần cứng
  2. Nhân
  3. User Space

Trong Polkadot, phần cứng - cơ sở hạ tầng cung cấp tính toán và khả năng sẵn có dữ liệu - luôn là những lõi, như đã được đề cập trước đó.

Trong Polkadot, kernel cho đến nay đã bao gồm hai phần chính:

  1. Giao thức Parachainsmột cách cố định, kiểu cách cứng nhắc trong việc sử dụng các lõi.
  2. Một bộ các chức năng cấp thấp, như mã thông báo DOT và tính khả chuyển, staking, quản trị, v.v.

Cả hai đều tồn tại trong Chuỗi chuyển tiếp của Polkadot.

Các ứng dụng không gian người dùng, ngược lại, là các parachains chính họ, token bản địa của họ, và bất cứ điều gì được xây dựng trên cơ sở của chúng.

Chúng ta có thể hình dung quy trình này như sau:

Polkadot đã lâu đã mơ ước chuyển các chức năng cốt lõi hơn cho người dùng chính của mình - các parachain. Đây chính xác là mục tiêu của RFC Minimal Relay. (Để biết thêm chi tiết, xem:Bộ chỉ đường tối thiểu RFC)

Điều này có nghĩa là Chuỗi Truyền Relai Polkadot chỉ xử lý việc cung cấp giao thức parachain, từ đó giảm không gian kernel một phần nào đó.

Khi kiến trúc này được triển khai, việc hình dung ra một bản vẽ về việc di trú JAM sẽ trở nên dễ dàng hơn. JAM sẽ giảm đáng kể không gian nhân của Polkadot, khiến nó trở nên linh hoạt hơn. Ngoài ra, giao thức Parachains sẽ chuyển sang không gian người dùng, vì đó là một trong số ít cách để xây dựng ứng dụng trên cùng một hạt nhân (phần cứng) và nhân (JAM)

Điều này cũng củng cố lý do tại sao JAM là sự thay thế cho Chuỗi chuyển tiếp Polkadot, không phải cho parachain.

Nói cách khác, chúng ta có thể xem quá trình di cư JAM như một việc nâng cấp kernel. Phần cứng cơ bản vẫn không thay đổi, và nhiều nội dung của kernel cũ được di chuyển đến không gian người dùng để đơn giản hóa hệ thống.

Tuyên bố:

  1. Bài viết này được sao chép từ [ Viện Nghiên cứu Sinh thái Polkadot], Tất cả bản quyền thuộc về tác giả gốc [Viện nghiên cứu sinh thái Polkadot]. Nếu có ý kiến phản đối về việc tái bản này, vui lòng liên hệ với Gate Họcđội và họ sẽ xử lý nó ngay lập tức.
  2. Bản Tuyên Bố Miễn Trừ Trách Nhiệm: Các quan điểm và ý kiến được thể hiện trong bài viết này chỉ thuộc về tác giả và không cung cấp bất kỳ lời khuyên đầu tư nào.
  3. Bản dịch của bài viết sang các ngôn ngữ khác được thực hiện bởi nhóm Gate Learn. Trừ khi được đề cập, việc sao chép, phân phối hoặc đạo văn bản dịch là không được phép.
即刻开始交易
注册并交易即可获得
$100
和价值
$5500
理财体验金奖励!