Tác giả: Hanssen; Bản dịch: saku; Link gốc:
https://talk.nervos.org/t/en-cn-misc-single-use-seals/8279
Niêm phong một lần là nền tảng của giao thức RGB/RGB++, giúp mở rộng khả năng của Bitcoin. Nhưng chính xác thì Con dấu sử dụng một lần (SUS) là gì? Làm cách nào để chúng tôi triển khai điều này trên blockchain? Bạn có biết rằng niêm phong dùng một lần đã tồn tại trong kiến trúc kỹ thuật của CKB trước khi giao thức RGB++ được đề xuất không?
Chúng tôi sẽ thảo luận ngắn gọn về các vấn đề trên và hiển thị một số thiết kế tập lệnh CKB dựa trên khái niệm niêm phong dùng một lần.
SUS là gì?
Để đạt được việc niêm phong một lần, chúng tôi khuyên bạn nên thợ mỏ chứng minh một loạt Nội dung về biểu thức chân lý cho tập hợp các cặp khóa-giá trị. Các khóa là các biểu thức và các giá trị là các khai báo, cùng với nhân chứng (dùng một lần) tạo nên các tham số của biểu thức. Khi một biểu thức được thêm vào tập dấu, giá trị liên quan của nó không thể thay đổi.
Peter Todd - Bộ con dấu kín và Danh sách sự thật để bảo vệ quyền riêng tư và khả năng chống kiểm duyệt tốt hơn
Hình ảnh sau đây được lấy từ ví dụ thực tế về SUS của Peter Tod, mô tả một cách sinh động và chính xác về SUS:Giống như các con dấu ngoài đời thực, chúng không thể mở lại sau khi đã được niêm phong và mỗi con dấu đều có một logo riêng.

Hãy tưởng tượng rằng trong thế giới kỹ thuật số, bạn có thể có một con dấu duy nhất và không thể phá hủy để niêm phong bất kỳ dữ liệu nào và không ai (kể cả bạn) có thể giả mạo những con dấu này. Đây là SUS.
SUS đơn giản và dễ hiểu< /strong>
Khi chúng ta chi tiêu một kết quả, mục tiêu của chúng ta là điều chỉnh dòng tiền đã chi tiêu trên một tập hợp đầu ra khác bằng cách cam kết phân bổ cho tập hợp đầu ra đó cho các con dấu một lần này.
Peter Todd - Bộ con dấu kín và Danh sách sự thật để bảo vệ quyền riêng tư và khả năng chống kiểm duyệt tốt hơn
Trong thế giới blockchain, UTXO (Đầu ra giao dịch chưa được chi tiêu) là nơi người dùng lưu trữ tài sản. Quá trình người dùng chuyển tài sản của họ thông qua các giao dịch về cơ bản sẽ tiêu tốn UTXO và tạo UTXO mới cho người khác.
Tính nhất quán tự nhiên của SUS và UTXO giúp cho việc thiết kế các con dấu sử dụng một lần trên các mẫu UTXO trở nên đơn giản và dễ dàng. Chúng tôi có thể coi TXO (Đầu ra giao dịch) là con dấu của chúng tôi và mỗi giao dịch được gửi trên chuỗi khối có thể được coi là niêm phong dữ liệu của nó vào tất cả các TXO đầu vào. Bằng cách này, chúng tôi đã hoàn thành thiết kế niêm phong một lần trên mô hình UTXO: đầu ra của giao dịch đáp ứng tất cả các yêu cầu của chúng tôi về niêm phong một lần:
Đóng dấu Chuỗi và ID loại
Type ID mô tả một phương thức sử dụng A tập lệnh loại đặc biệt được sử dụng để tạo một loại đơn lẻ - nghĩa là chỉ có một Live Cell trong Loại này.
CKB RFC 0022 - Cấu trúc giao dịch CKB
Chúng tôi có thể đóng khi con dấu được gắn vào, con dấu mới được gắn vào nó, tạo thành một chuỗi con dấu. Cách tiếp cận này giúp đơn giản hóa quá trình xác minh vì người xác nhận chỉ cần đạt được sự đồng thuận về con dấu ban đầu để có được con dấu mới nhất thông qua chuỗi con dấu. Mặc dù vậy, điều này cũng có nghĩa là người xác thực phải truy xuất toàn bộ chuỗi con dấu để xác minh dữ liệu mới nhất.
Nhờ có máy ảo Turing-complete của CKB và mô hình UTXO mở rộng của nó - mô hình Cell, chúng tôi có thể đưa thêm thông tin vào con dấu. Sự khác biệt giữaCell trên CKB và UTXO trên BTC là Cell có thể lưu trữ dữ liệu tùy ý và việc chuyển đổi những dữ liệu này bị giới hạn bởi Tập lệnh "Type".
Trong lược đồ ID Loại của CKB, chúng tôi yêu cầu mỗi con dấu trong chuỗi con dấu phải chứa ID của con dấu đầu tiên làm thông tin điểm bắt đầu. Type ID có nghĩa là Type Script cung cấp cho Ô một ID duy nhất và hạn chế ID của nó bị thay đổi từ đầu đến cuối chuỗi con dấu. ID này cho phép người xác nhận chỉ truy xuất con dấu mới nhất thông qua bộ chỉ mục chung trên CKB.
Thêm SUS trên CKB< /strong>
Khóa sử dụng một lần: Loại Khóa này cần tiêu thụ Tế bào sống được chỉ định Mở khóa. Như chúng tôi đã nói, phong ấn chỉ được phong ấn một lần. Do đó, Khóa sử dụng một lần chỉ có thể được mở khóa một lần.
Khóa proxy loại: Khóa này cần được mở khóa bằng cách sử dụng một Ô có Tập lệnh loại cụ thể. Trong trường hợp Type Script là Type ID, chỉ những người có toàn bộ giới hạn của chuỗi dấu cập nhật mới có thể mở khóa nó.
Kiểm soát quyền phát hành tài sản là một kịch bản ứng dụng thực tế của hai Tập lệnh này. Trong giao thức xUDT của CKB, các tổ chức phát hành có thể đúc token mới khi họ chứng minh được rằng họ có thể mở khóa Chủ sở hữu. Chỉ sử dụng Khóa dựa trên chữ ký đơn giản, chúng tôi không thể chắc chắn rằng nhà phát hành vẫn sở hữu khóa riêng của họ, điều đó có nghĩa là họ luôn có thể tạo ra các mã thông báo mới, khiến mỗi tài sản có thể được phát hành lại vô hạn.
Ở đây, Khóa sử dụng một lần cung cấp cho chúng ta một giải pháp. Sau khi sử dụng Ô được chỉ định, vì không ai có thể mở khóa Chủ sở hữu để đúc mã thông báo mới, chúng tôi có thể tin rằng nguồn cung cấp mã thông báo thực sự đã bị giới hạn.
Là một giải pháp linh hoạt hơn, nhà phát hành mã thông báo có thể sử dụng Khóa proxy loại để liên kết quyền khai thác với Ô ID loại. Nó giống như một chiếc chìa khóa không thể giả mạo và có thể đưa cho người khác hoặc phá hủy.