Bằng chứng lưu trữ là gì và chúng có thể cải thiện Oracles như thế nào?

Giới thiệu

Bằng chứng lưu trữ là một cách mã hóa để theo dõi thông tin blockchain để có thể chia sẻ thông tin đó trên các chuỗi. Tương tự như lời tiên tri, bằng chứng lưu trữ cung cấp bằng chứng cho thấy thông tin đó là đúng. Tuy nhiên, không giống như các nhà tiên tri, họ không  yêu  cầu sự tin tưởng vào bên thứ ba về bằng chứng này; đúng hơn, với bằng chứng lưu trữ, niềm tin được xây dựng trong bộ lưu trữ.

Trong một số trường hợp, bằng chứng lưu trữ có thể thay thế lời tiên tri. Trong các trường hợp khác, bằng chứng lưu trữ có thể nâng cao chúng và mở ra các trường hợp sử dụng blockchain mới mà trước đây không thể thực hiện được.

Vì vậy, hãy xem xét chi tiết các bằng chứng lưu trữ – chúng là gì, chúng hoạt động như thế nào, trường hợp sử dụng của chúng và cách chúng có thể nâng cao (và đôi khi thay thế) oracle.

Bằng chứng lưu trữ là gì?

Bằng chứng lưu trữ cho phép bạn mở các cam kết mật mã của trạng thái, chúng có thể được tối ưu hóa bằng cách kết hợp chúng với S[N/T]ARKS. Những bằng chứng hợp lệ này chứng minh rằng một trạng thái cụ thể đã tồn tại và hợp lệ tại một khối cụ thể trong quá khứ.

Về cơ bản, chuỗi khối là cơ sở dữ liệu chứa dữ liệu được mã hóa bằng cách sử dụng cây Merkle, cây Merkle Patricia, cây Verkle, v.v. Vì tất cả dữ liệu đã được cam kết nên chúng tôi có thể chứng minh rằng một số thông tin được gói gọn trong một trạng thái nhất định. Tuy nhiên, với các sơ đồ cam kết đơn giản, quy mô của bằng chứng này trở nên nổi bật hơn khi quy mô của dữ liệu mà nó bao gồm trở nên lớn hơn. Việc xác minh các bằng chứng như vậy trên chuỗi trở nên quá tốn kém để thực tế.

Mặt khác, bằng chứng lưu trữ khi được sử dụng cùng với STARK hoặc SNARK có thể tương đối nhỏ và cho phép bạn xác minh một phần trạng thái cụ thể, tại một thời điểm cụ thể và trên bất kỳ miền nào — mà không cần tin tưởng vào bên thứ ba . Thay vì bên thứ ba, họ dựa vào tính bảo mật của chính chuỗi cơ bản.

Sao nó lại quan trọng? Ethereum ngày nay không còn là chuỗi nguyên khối (L1) đơn giản như cách đây vài năm. Với sự ra đời của các giải pháp L2, dữ liệu hiện được trải rộng trên nhiều chuỗi.

Các giả định đồng bộ về trạng thái của chuỗi không còn có thể được thực hiện nữa. Nhiều giải pháp chia sẻ dữ liệu hiện đang hoạt động như hệ thống nhắn tin L1->L2, cầu nối chuỗi chéo và oracles. Nhưng vấn đề với các giải pháp hiện tại này là chúng bao gồm sự tin tưởng vào bên thứ ba như người chuyển tiếp, người ký nhiều chữ ký và ủy ban. Bằng chứng lưu trữ cho phép chúng tôi xác thực trạng thái của blockchain tại bất kỳ thời điểm nào bằng cách sử dụng các cam kết mật mã giả sử không có sự tin tưởng vào bên thứ ba.

Các trường hợp sử dụng bằng chứng lưu trữ

Vì bằng chứng lưu trữ cho phép chúng tôi “nén” blockchain một cách hiệu quả và truyền dữ liệu đi nơi khác nên chúng có khá nhiều ứng dụng. Chi phí xác minh phải chăng, một đặc tính không thể thiếu của bằng chứng lưu trữ, cho phép bằng chứng được xác thực trên  chuỗi đích  , giảm thiểu nhu cầu phát triển hệ thống nhắn tin xuyên chuỗi.

Các trường hợp sử dụng tiềm năng bao gồm:

  • Truy cập thông tin chung  của chuỗi này từ chuỗi khác về trạng thái và giao dịch trên chuỗi khối.
  • Hệ thống bỏ phiếu xuyên chuỗi được đơn giản hóa . Người dùng thường giữ tài sản của họ trên chuỗi A chậm nhưng an toàn hơn, nhưng một số cuộc bỏ phiếu dựa trên mã thông báo xảy ra trên chuỗi B với các giao dịch rẻ hơn. Điều này buộc người dùng phải bỏ qua phiếu bầu của họ hoặc trả phí giao dịch khổng lồ để kết nối tài sản của họ từ A đến B, bỏ phiếu bầu, sau đó kết nối chúng trở lại A. Trong những trường hợp như vậy, bằng chứng lưu trữ cho phép người dùng chứng minh số dư mã thông báo của họ trên chuỗi A. tại một khối nhất định và bỏ phiếu liền mạch trên chuỗi B.
  • Thay thế cho cầu xuyên chuỗi . Hiện tại, các cầu nối chuỗi chéo có mức độ tin cậy đối với bên thứ ba vì chúng thường liên quan đến một bên trung gian, chẳng hạn như người giám sát hoặc tổ chức tự trị phi tập trung (DAO). Người trung gian này chịu trách nhiệm đảm bảo rằng một số lượng mã thông báo nhất định được người trung gian nhận được trên chuỗi nguồn và nắm giữ tài sản trên chuỗi nguồn. Sau đó, các token tương ứng sẽ được tạo trên chuỗi đích. Bằng chứng lưu trữ có thể cho phép các cầu nối chuỗi chéo không đáng tin cậy vì ứng dụng hợp đồng thông minh trên chuỗi đích có thể xác thực giao dịch trong đó tài sản được chuyển sang hợp đồng thông minh cầu nối trên chuỗi nguồn và tạo ra các tài sản được bắc cầu. Tuy nhiên, trong nhiều trường hợp, nhu cầu chuyển tài sản giữa các chuỗi có thể bị loại bỏ vì quyền sở hữu tài sản trên chuỗi khác có thể được chứng minh đơn giản bằng bằng chứng lưu trữ.
  • UX nâng cao cho các trường hợp sử dụng Trừu tượng hóa tài khoản (AA) . AA đã được triển khai trong các chuỗi khác nhau và được coi là một sự đổi mới quan trọng trong việc đưa một tỷ người dùng đầu tiên vào không gian blockchain. Với bằng chứng lưu trữ, ví có thể bao gồm chức năng bổ sung là chỉ khôi phục quyền truy cập nếu ví không gửi bất kỳ giao dịch nào trong một thời gian dài. Các biện pháp kiểm tra bổ sung yêu cầu sử dụng một số dữ liệu từ các chuỗi khác cũng có thể được thực thi.

Ví dụ về bằng chứng lưu trữ

Việc tạo bằng chứng lưu trữ trên chuỗi tương thích EVM rất đơn giản. Ví dụ: thư viện Web3.js có chức năng `getProof` có thể tạo bằng chứng về trạng thái hợp đồng trên Ethereum (và các chuỗi tương thích EVM khác như Polygon hoặc BSC). Địa chỉ hợp đồng và vùng lưu trữ cho hợp đồng phải được chuyển cho hàm.

Trong Ethereum, hợp đồng thông minh sử dụng kho lưu trữ khóa-giá trị để lưu trữ dữ liệu trong bộ lưu trữ của chúng. Mỗi phần dữ liệu được lưu trữ ở một vị trí cụ thể được gọi là “khe lưu trữ”. Khe lưu trữ là các vị trí bộ nhớ trong kho lưu trữ của hợp đồng và được xác định bằng một chỉ mục duy nhất. Hãy xem xét một hợp đồng thông minh mẫu với mã sau được triển khai trên mạng chính Ethereum tại  0xcc…da8b .

Biến `chủ sở hữu` sẽ được lưu trữ ở vị trí 0. Bây giờ, để tạo bằng chứng cho thấy `chủ sở hữu` của hợp đồng này là địa chỉ A, chúng ta có thể sử dụng hàm `getProof` như sau:

Đầu ra của đoạn mã trên trông giống như thế này:

“StorageProof” được trả về chứa bằng chứng lưu trữ cho biến “chủ sở hữu”. Vì Ethereum sử dụng Cây Merkle Patricia để cam kết trạng thái của tài khoản và bộ nhớ của chúng, nên bộ nhớ được tạo có thể được sử dụng để chứng minh khe lưu trữ (hoặc trạng thái tài khoản). Tuy nhiên, như đã nêu trước đây, những bằng chứng này không đủ khả năng mở rộng để thảo luận về việc chuyển tin nhắn xuyên chuỗi. Việc sử dụng toán học ZK phức tạp có thể làm giảm tính toán cần thiết để xác minh bằng chứng.

Vậy làm thế nào để bằng chứng lưu trữ có thể so sánh và đối chiếu với oracles?

Theo thiết kế, blockchain không thể truy xuất dữ liệu ngoài chuỗi. Điều này giữ cho blockchain không được tin cậy nhưng cũng đưa ra các giới hạn về khả năng đưa ra quyết định của hợp đồng thông minh dựa trên các sự kiện trong thế giới thực. Oracles cũng thường được sử dụng để thu thập thông tin blockchain lịch sử, vì việc thu thập dữ liệu này trực tiếp là rất khó khăn và do đó dễ mắc sai lầm.

Để giải quyết vấn đề này, các thực thể đặc biệt có tên  oracles  đã được tạo ra để truy xuất dữ liệu ngoài chuỗi này (hoặc truy xuất kết quả từ một số tính toán nặng ngoài chuỗi). Hiện tại, các nhà tiên tri này yêu cầu bên thứ ba, chẳng hạn như tổ chức hoặc mạng lưới phi tập trung của các nhà khai thác nút gửi dữ liệu trên chuỗi để công khai cho người dùng và hợp đồng thông minh. Giả định về sự tin cậy này hiện là điều không thể tránh khỏi nhưng vẫn chưa lý tưởng (mặc dù một số nhóm đang nỗ lực giảm thiểu yêu cầu về sự tin cậy này, chẳng hạn như Pragma)

Chainlink  là một ví dụ về nhà tiên tri blockchain cung cấp nhiều loại dữ liệu trong thế giới thực (giá cổ phiếu, dữ liệu thời tiết, v.v.), dịch vụ tính toán ngoài chuỗi để giảm thiểu chi phí tính toán nặng nề trên chuỗi và các dịch vụ xuyên chuỗi đọc và ghi thông tin giữa các blockchain khác nhau.

Vì các hợp đồng thông minh không có cách nào khác để biết điều gì đang xảy ra trong thế giới thực ngoại trừ việc sử dụng các oracle, nên oracle đã trở thành một phần không thể thiếu trong hệ sinh thái blockchain.

Trạng thái của các nhà tiên tri trên Starknet

Trên mạng thử nghiệm Starknet, Chainlink đã đề cập trước đó hiện cung cấp nguồn cấp dữ liệu giá cho bảy cặp tiền điện tử và đã  hợp tác  với nhóm Starkware để “đẩy nhanh hơn nữa việc phát triển ứng dụng và tăng trưởng chung cho hệ sinh thái StarkNet”. Chainlink giảm thiểu giả định về độ tin cậy bằng mạng lưới các nút phi tập trung cung cấp dữ liệu từ các nguồn ngoài chuỗi, nhưng việc tổng hợp dữ liệu diễn ra ngoài chuỗi.

Pragma  và  Stork Network  là hai trong số những nhà cung cấp oracle lớn nhất trên Starknet, hoạt động trên cả mainnet và testnet. Cùng với các mã giá cho nhiều cặp tiền điện tử, Pragma đang nỗ lực triển khai nguồn cấp dữ liệu ngẫu nhiên có thể kiểm chứng trên mạng chính để cho phép các giao thức yêu cầu tính ngẫu nhiên an toàn trên chuỗi. Nguồn cấp giá trên Pragma dựa trên việc gửi giá của các tổ chức lớn và nhà tạo lập thị trường, đồng thời việc tổng hợp giá xảy ra trên chuỗi tận dụng công nghệ ZK hiệu quả.

Oracle có thể được thay thế hoặc cải thiện bằng bằng chứng lưu trữ không?

Trong một số trường hợp, bằng chứng lưu trữ có thể thay thế lời tiên tri.

Không phải tất cả dữ liệu do oracle cung cấp thực sự cần được cung cấp bởi bên thứ ba. Trong một số trường hợp, dữ liệu do oracle cung cấp đã có sẵn trên chuỗi (dưới dạng lưu trữ trên chuỗi hoặc giao dịch) và có thể được truy xuất bằng cách xem qua trạng thái trước đó của blockchain. Trong những trường hợp này, bằng chứng lưu trữ có thể thay thế nhu cầu tin tưởng vào bên thứ ba và nhà tiên tri, đồng thời cho phép các hợp đồng thông minh hoàn toàn dựa vào tính bảo mật của các cam kết mật mã.

Trong các trường hợp khác, khi bằng chứng lưu trữ không thể thay thế hoàn toàn oracle, họ vẫn có thể  cải tiến  chúng bằng chức năng bổ sung, chẳng hạn như sau:

  • Oracles truyền thông tin từ nhà cung cấp dữ liệu đến người tiêu dùng dữ liệu. Tuy nhiên, không phải tất cả người tiêu dùng dữ liệu đều nằm trên cùng một chuỗi. Với sự trợ giúp của bằng chứng lưu trữ, có thể hoàn thành một số  tính toán trên dữ liệu từ các nguồn khác nhau và xuất kết quả sang các chuỗi khác .
  • Chuỗi nguồn ưa thích cho những dữ liệu như vậy là chuỗi có tính toán rẻ và việc xác thực bằng chứng có thể được thực hiện một cách hiệu quả về mặt chi phí trên các chuỗi đích khác.
  • Herodotus  là một trong những công ty nghiên cứu hàng đầu trong lĩnh vực này và họ cung cấp quyền truy cập dữ liệu giữa các miền trên các chuỗi Ethereum khác nhau bằng cách sử dụng bằng chứng lưu trữ và toán học ZK. Pragma cũng hợp tác với Herodotus để hỗ trợ oracle xuyên chuỗi trong tương lai gần.
  • Bằng chứng lưu trữ có thể  thống nhất trạng thái của nhiều lần cuộn và thậm chí cho phép đọc đồng bộ  giữa  các lớp Ethereum.
  • Một cải tiến khác là  truy xuất không đáng tin cậy dữ liệu lịch sử được xuất bản trên chuỗi . Các chuỗi khối trạng thái như Ethereum và Starknet ghi lại và bảo toàn trạng thái của chúng bằng mật mã thông qua các cấu trúc dữ liệu chuyên dụng, chẳng hạn như cây Merkle/Verkle và MPT. Điều này giúp có thể chứng minh sự bao gồm của bất kỳ dữ liệu nào được lưu trữ trong các cấu trúc này. Do đó, mọi dữ liệu trước đây được xuất bản trên chuỗi cũng có thể được tin cậy, truy xuất và sử dụng trong các ứng dụng khác (thậm chí không nhất thiết phải trên cùng một chuỗi). Những bằng chứng lưu trữ này cho phép các hợp đồng thông minh truy cập thông tin có từ khối gốc.
  • Pragma đang nghiên cứu khả năng tồn tại của việc phát triển oracle dưới dạng L3 trên Starknet từ đó dữ liệu có thể được “kéo” trên các chuỗi khác và được xác minh bằng bằng chứng lưu trữ. Những lợi ích của việc có oracle ở một miền khác trên một mạng có chi phí tính toán rẻ như Starknet bao gồm:
  • Vì L3 có thể là một chuỗi có khả năng tùy biến cao nên nhiều thông số khác nhau có thể được điều chỉnh để  đạt được sự đồng thuận nhanh hơn trên các khối , giúp giảm đáng kể độ trễ dữ liệu cho oracle.
  • Kết hợp với bằng chứng lưu trữ,  dữ liệu có độ trễ thấp có thể được truyền không đồng bộ sang các chuỗi khác  sau khi đạt được sự đồng thuận trong chuỗi nguồn.
  • Khả năng  nâng cao độ tin cậy vào dữ liệu  bằng cách phát triển một hệ thống sẵn có trong L3 để loại bỏ những nhà cung cấp dữ liệu không trung thực. Nếu được khuyến khích phù hợp, các nhà cung cấp dữ liệu trên L3 có thể đặt cược tài sản của họ như một sự đảm bảo cho việc xuất bản dữ liệu chính xác. Vì cần có sự đồng thuận của toàn bộ mạng trên L3 trước khi các chuỗi khác có thể sử dụng dữ liệu, nên dữ liệu do nhà tiên tri cung cấp có thể được coi là được bảo mật bằng cổ phần của người xác thực trên L3.

Phần kết luận

Trong vài tháng qua, việc sử dụng L2 ngày càng tăng trên Ethereum đã cho chúng ta cái nhìn rõ ràng hơn về tương lai của ngành. Câu chuyện về L2 đã thu hút được sự chú ý của các mạng như  Starknet ,  Optimism và  Arbitrum . Tuy nhiên, một trong những điểm tựa chính cho sự phát triển của nó là triển khai hệ thống nhắn tin xuyên chuỗi phi tập trung. Mặc dù vẫn còn ở giai đoạn sơ khai nhưng bằng chứng lưu trữ hứa hẹn những cải tiến đáng kinh ngạc cho vấn đề này.

Xin chân thành cảm ơn  Marcello Bardus  &  Kacper Koziol  đã xem xét bài viết này.

Nguồn

Resident