Skip to main content

PPP 040303 - A Vesting Example

Tóm tắt nội dung

"Video thảo luận về cách Plutus có thể được sử dụng để tạo ra một hợp đồng thông minh, một ví dụ được trình bày. Ý tưởng là bạn có thể làm một món quà của ADA cho một đứa trẻ, nhưng bạn muốn đứa trẻ chỉ có quyền truy cập vào ADA khi chúng đến một độ tuổi nhất định, ví dụ: 18 hoặc 21. Mô -đun vesting theo bài giảng trong thư mục Trích dẫn của tuần này chứa việc thực hiện một hợp đồng thông minh vesting đơn giản. Hợp đồng thông minh chỉ nên mở khóa sau khi thời hạn đã đạt được và chỉ khi giao dịch thực hiện chi tiêu được ký bởi khóa của Redeemer. Plutus giúp bạn dễ dàng thực hiện sơ đồ vest như thế này, sử dụng các bộ lọc cấp cao được định Kiểu với dữ liệu tùy chỉnh Kiểu. Dữ liệu tùy chỉnh Kiểu trong trường hợp này là Datum, được gọi là Datum và nó chứa hai mẩu thông tin - Redeemer và thời hạn. Redeemer là băm khóa công khai, và thời hạn là thời gian POSIX.

Hợp đồng thông minh kiểm tra hai điều kiện: được ký bởi Redeemer và thời hạn đạt được. Cái trước rất dễ dàng, vì nó sử dụng TX được ký bởi Hàm xuất phát từ các thư viện Plutus, lấy thông tin TXinfo và sau đó trả về đúng nếu giao dịch được xác nhận đã được ký bởi Redeemer và sai. Cái sau thú vị hơn vì nó kiểm tra xem xác nhận có xảy ra sau khi đạt được thời hạn hay không. Để làm điều này, Plutus sử dụng khoảng thời gian hợp lệ trước khi tập lệnh trình xác thực được chạy và node kiểm tra xem thời gian hiện tại có rơi vào phạm vi hợp lệ của giao dịch hay không. Nếu có, thì Trình xác thực chạy, nhưng chúng ta không muốn Trình xác thực khai báo giao dịch có hiệu lực nếu nó trước thời hạn. Do đó, một khoảng thời gian nửa mở bắt đầu vào thời hạn và kéo dài thành vô cùng được sử dụng để xác định điều kiện đạt được thời hạn này. Nếu khoảng thời gian này chứa khoảng thời gian hợp lệ của giao dịch, thì giao dịch là hợp lệ và nó có thể được mở khóa.

Nhìn chung, bài viết trình bày một ví dụ đơn giản tốt đẹp về cách sử dụng thời gian trong hợp đồng thông minh và một ví dụ khá chung chung và hữu ích, vì các tình huống giao dịch ở khắp mọi nơi và xảy ra trong nhiều Context. Tuy nhiên, cần lưu ý rằng đây không phải là cách duy nhất để thực hiện hợp đồng giao dịch. Ví dụ: bạn cũng có thể cho phép các bên khác mở khóa Vesting với điều kiện chúng trả nội dung giá trị thực tế trong UTXO cho một địa chỉ Redeemer cụ thể, điều này có thể có ý nghĩa nếu người nhận Vesting không phải là người am hiểu blockchain."


Picture