Điều gì sẽ xảy ra nếu bạn mất trí nhớ mỗi giờ? Và bạn cần liên tục yêu cầu ai đó cho bạn biết bạn đã làm gì? Đó là tình trạng hiện tại của hợp đồng thông minh. Trên các chuỗi khối như Ethereum, hợp đồng thông minh không thể truy cập trực tiếp vào các trạng thái vượt quá 256 khối. Vấn đề này càng trở nên trầm trọng hơn trong hệ sinh thái đa chuỗi, nơi việc truy xuất và xác minh dữ liệu trên các lớp thực thi khác nhau thậm chí còn khó khăn hơn.
Vào năm 2020, Vitalik Buterin và Tomasz Stanczak đã đề xuất cách truy cập dữ liệu theo thời gian. Trong khi EIP đã trở nên trì trệ, nhu cầu của nó lại nổi lên trong thế giới đa chuỗi tập trung vào cuộn lên. Ngày nay, bằng chứng lưu trữ đã nổi lên như một biên giới, nhằm mang lại nhận thức và trí nhớ cho các hợp đồng thông minh.
Có một số cách để dapp có thể truy cập dữ liệu và trạng thái. Tất cả các phương pháp tiếp cận đều yêu cầu ứng dụng đặt niềm tin vào con người/thực thể hoặc mã hoặc bảo mật kinh tế tiền điện tử và phải có một số đánh đổi:
Với những thách thức và hạn chế của các giải pháp này, rõ ràng cần phải lưu trữ và cung cấp băm khối trên chuỗi. Đây là nơi có bằng chứng lưu trữ. Để hiểu rõ hơn về bằng chứng lưu trữ, chúng ta hãy xem nhanh việc lưu trữ dữ liệu trong chuỗi khối.
Blockchain là cơ sở dữ liệu công cộng được cập nhật và chia sẻ trên nhiều máy tính trong mạng. Dữ liệu và trạng thái được lưu trữ trong các nhóm liên tiếp được gọi là khối và mỗi khối tham chiếu mật mã đến khối mẹ của nó bằng cách lưu trữ hàm băm của tiêu đề khối trước đó.
Hãy lấy khối Ethereum làm ví dụ. Ethereum tận dụng một loại cây Merkle cụ thể được gọi là “cây Merkle Patricia” (MPT). Tiêu đề khối Ethereum chứa gốc của bốn lần thử Merkle-Patricia khác nhau, tức là Trie trạng thái, Trie lưu trữ, Trie biên nhận và Trie giao dịch. Bốn lần thử này mã hóa ánh xạ bao gồm tất cả dữ liệu Ethereum. Cây Merkle được sử dụng do tính hiệu quả trong việc lưu trữ dữ liệu. Sử dụng hàm băm đệ quy, cuối cùng chỉ có hàm băm gốc cần được lưu trữ, tiết kiệm rất nhiều dung lượng. Chúng cho phép mọi người chứng minh sự tồn tại của một phần tử trong cây bằng cách chứng minh rằng việc băm đệ quy các nút sẽ dẫn đến cùng một hàm băm gốc. Bằng chứng Merkle cho phép các client nhẹ trên Ethereum nhận được câu trả lời cho các câu hỏi như:
Thay vì tải xuống mọi giao dịch và mọi khối, “khách hàng nhẹ” chỉ có thể tải xuống chuỗi tiêu đề khối và xác minh thông tin bằng Merkle Proofs. Điều này làm cho quá trình tổng thể có hiệu quả cao. Tham khảo blog này của bài viết nghiên cứu của Vitalik và Maven11 để hiểu rõ hơn về cách triển khai, ưu điểm và thách thức liên quan đến Merkle Trees.
Bằng chứng lưu trữ cho phép chúng tôi chứng minh rằng nội dung nào đó đã được cam kết trong cơ sở dữ liệu và cũng hợp lệ bằng cách sử dụng các cam kết mật mã. Nếu chúng tôi có thể cung cấp bằng chứng như vậy thì đó là tuyên bố có thể kiểm chứng được rằng đã có điều gì đó xảy ra trên blockchain.
Bằng chứng lưu trữ cho phép hai chức năng chính:
Bằng chứng lưu trữ ở mức kiểm tra rất cao xem khối cụ thể có phải là một phần của lịch sử chuẩn của blockchain hay không và sau đó xác minh xem dữ liệu cụ thể được yêu cầu có phải là một phần của khối hay không. Điều này có thể đạt được thông qua:
Một số dự án áp dụng phương pháp này là Herodotus, Lagrange, Axiom, Hyper Oracle, Brevis Network và nil Foundation. Trong khi nỗ lực đáng kể đang được thực hiện để làm cho các ứng dụng nhận biết trạng thái trên nhiều chuỗi khối, IBC (Giao tiếp chuỗi khối liên kết) nổi bật như một tiêu chuẩn về khả năng tương tác cho phép các ứng dụng như ICQ (Truy vấn liên chuỗi) và ICA (Tài khoản liên chuỗi). ICQ cho phép các ứng dụng trên Chuỗi A truy vấn trạng thái của chuỗi B bằng cách đưa truy vấn vào gói IBC đơn giản và ICA cho phép một chuỗi khối kiểm soát an toàn một tài khoản trên chuỗi khối khác. Việc kết hợp chúng có thể tạo ra các trường hợp sử dụng chuỗi chéo thú vị. Các nhà cung cấp RaaS như Saga cung cấp các chức năng này cho tất cả chuỗi ứng dụng của họ theo mặc định bằng cách sử dụng IBC.
Có nhiều cách để tối ưu hóa bằng chứng lưu trữ nhằm tìm ra mức cân bằng phù hợp về mức tiêu thụ bộ nhớ, thời gian chứng minh, thời gian xác minh, hiệu quả tính toán và trải nghiệm của nhà phát triển. Quá trình tổng thể có thể được chia thành 3 quy trình phụ chính.
Truy cập dữ liệu: Trong quy trình con này, nhà cung cấp dịch vụ truy cập vào các tiêu đề khối của chuỗi nguồn trên lớp thực thi hoặc thông qua việc duy trì bộ nhớ đệm trên chuỗi. Để truy cập dữ liệu trên các chuỗi, cần phải xác minh sự đồng thuận của chuỗi nguồn trên chuỗi đích. Một số phương pháp tiếp cận và tối ưu hóa đang được áp dụng bao gồm:
Cùng với quyền truy cập vào dữ liệu, hợp đồng thông minh cũng có thể thực hiện các phép tính tùy ý dựa trên dữ liệu. Mặc dù một số trường hợp sử dụng có thể không yêu cầu tính toán nhưng đây là một dịch vụ giá trị gia tăng quan trọng đối với nhiều trường hợp sử dụng khác. Nhiều nhà cung cấp dịch vụ cho phép tính toán trên dữ liệu vì bằng chứng zk về tính toán có thể được tạo và cung cấp trên chuỗi để đảm bảo tính hợp lệ. Vì các giải pháp AMP hiện có như Axelar, LayerZero, Mạng Polyhedra có thể được sử dụng để truy cập dữ liệu nên việc xử lý dữ liệu có thể trở thành điểm khác biệt đối với các nhà cung cấp dịch vụ chứng minh lưu trữ.
Ví dụ: Hyper Oracle cho phép các nhà phát triển xác định các tính toán ngoài chuỗi tùy chỉnh bằng JavaScript. Brevis đã thiết kế một thị trường mở gồm Công cụ truy vấn ZK chấp nhận các truy vấn dữ liệu từ dApp và xử lý chúng bằng cách sử dụng các tiêu đề khối đã được chứng thực. Hợp đồng thông minh gửi một truy vấn dữ liệu, được người kiểm chứng chọn từ thị trường. Prover tạo ra bằng chứng dựa trên đầu vào truy vấn, các tiêu đề khối có liên quan (từ lớp tổng hợp Brevis) và kết quả. Lagrange đã giới thiệu ZK Big Data Stack để chứng minh các mô hình lập trình phân tán như SQL, MapReduce và Spark/RDD. Bằng chứng là mô-đun và có thể được tạo từ bất kỳ tiêu đề khối nào có nguồn gốc từ các cầu nối chuỗi chéo và giao thức AMP hiện có. ZK MapReduce, sản phẩm đầu tiên trong nhóm Lagrange ZK BigData, là một công cụ tính toán phân tán (dựa trên mô hình lập trình MapReduce nổi tiếng) để chứng minh kết quả tính toán liên quan đến các tập hợp dữ liệu đa chuỗi khá lớn. Ví dụ: một bằng chứng ZKMR duy nhất có thể được sử dụng để chứng minh những thay đổi về tính thanh khoản của DEX được triển khai trên 4–5 chuỗi trong một khoảng thời gian nhất định. Đối với các truy vấn tương đối đơn giản, việc tính toán cũng có thể được thực hiện trực tiếp trên chuỗi như Herodotus đang thực hiện vào thời điểm hiện tại.
Bằng chứng trạng thái và lưu trữ có thể mở khóa nhiều trường hợp sử dụng mới cho hợp đồng thông minh ở lớp ứng dụng, phần mềm trung gian và cơ sở hạ tầng. Một số trong số này là:
Quản trị:
Tất cả các bằng chứng trên có thể được sử dụng để cung cấp trải nghiệm tùy chỉnh cho người dùng. Dapps có thể cung cấp giảm giá hoặc đặc quyền để giữ chân các nhà giao dịch hoặc người dùng có kinh nghiệm và cung cấp trải nghiệm người dùng đơn giản hóa cho người dùng mới làm quen.
Hai trường hợp sử dụng cuối cùng sẽ yêu cầu cập nhật bằng chứng mỗi khi một khối mới được thêm vào chuỗi nguồn.
Nhận thức giúp các công ty công nghệ phục vụ khách hàng tốt hơn. Từ danh tính người dùng đến hành vi mua hàng cho đến biểu đồ xã hội, các công ty công nghệ tận dụng nhận thức để mở khóa các khả năng như nhắm mục tiêu chính xác, phân khúc khách hàng và tiếp thị lan truyền. Các công ty công nghệ truyền thống cần có sự cho phép rõ ràng từ người dùng của họ và phải cẩn thận trong khi quản lý dữ liệu người dùng. Tuy nhiên, tất cả dữ liệu người dùng trên các chuỗi khối không được phép đều được cung cấp công khai mà không nhất thiết phải tiết lộ danh tính người dùng. Hợp đồng thông minh sẽ có thể tận dụng dữ liệu có sẵn công khai để phục vụ người dùng tốt hơn. Việc phát triển và áp dụng các hệ sinh thái chuyên biệt hơn sẽ khiến nhận thức của nhà nước theo thời gian và blockchain trở thành một vấn đề ngày càng quan trọng cần được giải quyết. Bằng chứng lưu trữ có thể cho phép Ethereum nổi lên như một lớp nhận dạng và quyền sở hữu tài sản cùng với lớp thanh toán. Người dùng có thể duy trì danh tính và tài sản chính của họ trên Ethereum, có thể được sử dụng trên nhiều chuỗi khối mà không cần kết nối tài sản mọi lúc. Chúng tôi tiếp tục vui mừng về những khả năng và trường hợp sử dụng mới sẽ được mở khóa trong tương lai.
Điều gì sẽ xảy ra nếu bạn mất trí nhớ mỗi giờ? Và bạn cần liên tục yêu cầu ai đó cho bạn biết bạn đã làm gì? Đó là tình trạng hiện tại của hợp đồng thông minh. Trên các chuỗi khối như Ethereum, hợp đồng thông minh không thể truy cập trực tiếp vào các trạng thái vượt quá 256 khối. Vấn đề này càng trở nên trầm trọng hơn trong hệ sinh thái đa chuỗi, nơi việc truy xuất và xác minh dữ liệu trên các lớp thực thi khác nhau thậm chí còn khó khăn hơn.
Vào năm 2020, Vitalik Buterin và Tomasz Stanczak đã đề xuất cách truy cập dữ liệu theo thời gian. Trong khi EIP đã trở nên trì trệ, nhu cầu của nó lại nổi lên trong thế giới đa chuỗi tập trung vào cuộn lên. Ngày nay, bằng chứng lưu trữ đã nổi lên như một biên giới, nhằm mang lại nhận thức và trí nhớ cho các hợp đồng thông minh.
Có một số cách để dapp có thể truy cập dữ liệu và trạng thái. Tất cả các phương pháp tiếp cận đều yêu cầu ứng dụng đặt niềm tin vào con người/thực thể hoặc mã hoặc bảo mật kinh tế tiền điện tử và phải có một số đánh đổi:
Với những thách thức và hạn chế của các giải pháp này, rõ ràng cần phải lưu trữ và cung cấp băm khối trên chuỗi. Đây là nơi có bằng chứng lưu trữ. Để hiểu rõ hơn về bằng chứng lưu trữ, chúng ta hãy xem nhanh việc lưu trữ dữ liệu trong chuỗi khối.
Blockchain là cơ sở dữ liệu công cộng được cập nhật và chia sẻ trên nhiều máy tính trong mạng. Dữ liệu và trạng thái được lưu trữ trong các nhóm liên tiếp được gọi là khối và mỗi khối tham chiếu mật mã đến khối mẹ của nó bằng cách lưu trữ hàm băm của tiêu đề khối trước đó.
Hãy lấy khối Ethereum làm ví dụ. Ethereum tận dụng một loại cây Merkle cụ thể được gọi là “cây Merkle Patricia” (MPT). Tiêu đề khối Ethereum chứa gốc của bốn lần thử Merkle-Patricia khác nhau, tức là Trie trạng thái, Trie lưu trữ, Trie biên nhận và Trie giao dịch. Bốn lần thử này mã hóa ánh xạ bao gồm tất cả dữ liệu Ethereum. Cây Merkle được sử dụng do tính hiệu quả trong việc lưu trữ dữ liệu. Sử dụng hàm băm đệ quy, cuối cùng chỉ có hàm băm gốc cần được lưu trữ, tiết kiệm rất nhiều dung lượng. Chúng cho phép mọi người chứng minh sự tồn tại của một phần tử trong cây bằng cách chứng minh rằng việc băm đệ quy các nút sẽ dẫn đến cùng một hàm băm gốc. Bằng chứng Merkle cho phép các client nhẹ trên Ethereum nhận được câu trả lời cho các câu hỏi như:
Thay vì tải xuống mọi giao dịch và mọi khối, “khách hàng nhẹ” chỉ có thể tải xuống chuỗi tiêu đề khối và xác minh thông tin bằng Merkle Proofs. Điều này làm cho quá trình tổng thể có hiệu quả cao. Tham khảo blog này của bài viết nghiên cứu của Vitalik và Maven11 để hiểu rõ hơn về cách triển khai, ưu điểm và thách thức liên quan đến Merkle Trees.
Bằng chứng lưu trữ cho phép chúng tôi chứng minh rằng nội dung nào đó đã được cam kết trong cơ sở dữ liệu và cũng hợp lệ bằng cách sử dụng các cam kết mật mã. Nếu chúng tôi có thể cung cấp bằng chứng như vậy thì đó là tuyên bố có thể kiểm chứng được rằng đã có điều gì đó xảy ra trên blockchain.
Bằng chứng lưu trữ cho phép hai chức năng chính:
Bằng chứng lưu trữ ở mức kiểm tra rất cao xem khối cụ thể có phải là một phần của lịch sử chuẩn của blockchain hay không và sau đó xác minh xem dữ liệu cụ thể được yêu cầu có phải là một phần của khối hay không. Điều này có thể đạt được thông qua:
Một số dự án áp dụng phương pháp này là Herodotus, Lagrange, Axiom, Hyper Oracle, Brevis Network và nil Foundation. Trong khi nỗ lực đáng kể đang được thực hiện để làm cho các ứng dụng nhận biết trạng thái trên nhiều chuỗi khối, IBC (Giao tiếp chuỗi khối liên kết) nổi bật như một tiêu chuẩn về khả năng tương tác cho phép các ứng dụng như ICQ (Truy vấn liên chuỗi) và ICA (Tài khoản liên chuỗi). ICQ cho phép các ứng dụng trên Chuỗi A truy vấn trạng thái của chuỗi B bằng cách đưa truy vấn vào gói IBC đơn giản và ICA cho phép một chuỗi khối kiểm soát an toàn một tài khoản trên chuỗi khối khác. Việc kết hợp chúng có thể tạo ra các trường hợp sử dụng chuỗi chéo thú vị. Các nhà cung cấp RaaS như Saga cung cấp các chức năng này cho tất cả chuỗi ứng dụng của họ theo mặc định bằng cách sử dụng IBC.
Có nhiều cách để tối ưu hóa bằng chứng lưu trữ nhằm tìm ra mức cân bằng phù hợp về mức tiêu thụ bộ nhớ, thời gian chứng minh, thời gian xác minh, hiệu quả tính toán và trải nghiệm của nhà phát triển. Quá trình tổng thể có thể được chia thành 3 quy trình phụ chính.
Truy cập dữ liệu: Trong quy trình con này, nhà cung cấp dịch vụ truy cập vào các tiêu đề khối của chuỗi nguồn trên lớp thực thi hoặc thông qua việc duy trì bộ nhớ đệm trên chuỗi. Để truy cập dữ liệu trên các chuỗi, cần phải xác minh sự đồng thuận của chuỗi nguồn trên chuỗi đích. Một số phương pháp tiếp cận và tối ưu hóa đang được áp dụng bao gồm:
Cùng với quyền truy cập vào dữ liệu, hợp đồng thông minh cũng có thể thực hiện các phép tính tùy ý dựa trên dữ liệu. Mặc dù một số trường hợp sử dụng có thể không yêu cầu tính toán nhưng đây là một dịch vụ giá trị gia tăng quan trọng đối với nhiều trường hợp sử dụng khác. Nhiều nhà cung cấp dịch vụ cho phép tính toán trên dữ liệu vì bằng chứng zk về tính toán có thể được tạo và cung cấp trên chuỗi để đảm bảo tính hợp lệ. Vì các giải pháp AMP hiện có như Axelar, LayerZero, Mạng Polyhedra có thể được sử dụng để truy cập dữ liệu nên việc xử lý dữ liệu có thể trở thành điểm khác biệt đối với các nhà cung cấp dịch vụ chứng minh lưu trữ.
Ví dụ: Hyper Oracle cho phép các nhà phát triển xác định các tính toán ngoài chuỗi tùy chỉnh bằng JavaScript. Brevis đã thiết kế một thị trường mở gồm Công cụ truy vấn ZK chấp nhận các truy vấn dữ liệu từ dApp và xử lý chúng bằng cách sử dụng các tiêu đề khối đã được chứng thực. Hợp đồng thông minh gửi một truy vấn dữ liệu, được người kiểm chứng chọn từ thị trường. Prover tạo ra bằng chứng dựa trên đầu vào truy vấn, các tiêu đề khối có liên quan (từ lớp tổng hợp Brevis) và kết quả. Lagrange đã giới thiệu ZK Big Data Stack để chứng minh các mô hình lập trình phân tán như SQL, MapReduce và Spark/RDD. Bằng chứng là mô-đun và có thể được tạo từ bất kỳ tiêu đề khối nào có nguồn gốc từ các cầu nối chuỗi chéo và giao thức AMP hiện có. ZK MapReduce, sản phẩm đầu tiên trong nhóm Lagrange ZK BigData, là một công cụ tính toán phân tán (dựa trên mô hình lập trình MapReduce nổi tiếng) để chứng minh kết quả tính toán liên quan đến các tập hợp dữ liệu đa chuỗi khá lớn. Ví dụ: một bằng chứng ZKMR duy nhất có thể được sử dụng để chứng minh những thay đổi về tính thanh khoản của DEX được triển khai trên 4–5 chuỗi trong một khoảng thời gian nhất định. Đối với các truy vấn tương đối đơn giản, việc tính toán cũng có thể được thực hiện trực tiếp trên chuỗi như Herodotus đang thực hiện vào thời điểm hiện tại.
Bằng chứng trạng thái và lưu trữ có thể mở khóa nhiều trường hợp sử dụng mới cho hợp đồng thông minh ở lớp ứng dụng, phần mềm trung gian và cơ sở hạ tầng. Một số trong số này là:
Quản trị:
Tất cả các bằng chứng trên có thể được sử dụng để cung cấp trải nghiệm tùy chỉnh cho người dùng. Dapps có thể cung cấp giảm giá hoặc đặc quyền để giữ chân các nhà giao dịch hoặc người dùng có kinh nghiệm và cung cấp trải nghiệm người dùng đơn giản hóa cho người dùng mới làm quen.
Hai trường hợp sử dụng cuối cùng sẽ yêu cầu cập nhật bằng chứng mỗi khi một khối mới được thêm vào chuỗi nguồn.
Nhận thức giúp các công ty công nghệ phục vụ khách hàng tốt hơn. Từ danh tính người dùng đến hành vi mua hàng cho đến biểu đồ xã hội, các công ty công nghệ tận dụng nhận thức để mở khóa các khả năng như nhắm mục tiêu chính xác, phân khúc khách hàng và tiếp thị lan truyền. Các công ty công nghệ truyền thống cần có sự cho phép rõ ràng từ người dùng của họ và phải cẩn thận trong khi quản lý dữ liệu người dùng. Tuy nhiên, tất cả dữ liệu người dùng trên các chuỗi khối không được phép đều được cung cấp công khai mà không nhất thiết phải tiết lộ danh tính người dùng. Hợp đồng thông minh sẽ có thể tận dụng dữ liệu có sẵn công khai để phục vụ người dùng tốt hơn. Việc phát triển và áp dụng các hệ sinh thái chuyên biệt hơn sẽ khiến nhận thức của nhà nước theo thời gian và blockchain trở thành một vấn đề ngày càng quan trọng cần được giải quyết. Bằng chứng lưu trữ có thể cho phép Ethereum nổi lên như một lớp nhận dạng và quyền sở hữu tài sản cùng với lớp thanh toán. Người dùng có thể duy trì danh tính và tài sản chính của họ trên Ethereum, có thể được sử dụng trên nhiều chuỗi khối mà không cần kết nối tài sản mọi lúc. Chúng tôi tiếp tục vui mừng về những khả năng và trường hợp sử dụng mới sẽ được mở khóa trong tương lai.