雜談:一次性密封是RGB/RGB++ 協定的基石

作者:Hanssen;翻譯:saku;原文連結:

https://talk.nervos.org/t/en-cn-misc-single-use-seals/8279

一次性密封是RGB/RGB++ 協定的基石,它拓展了比特幣的能力。但究竟什麼是一次性封印(Single-Use-Seals, SUS)?我們如何在區塊鏈上實現它?你知道一次性密封在RGB++ 協定提出之前就已經存在於CKB 的技術架構中了嗎?

我們將簡要討論以上問題,並展示一些基於一次性密封理念的CKB 腳本設計。

什麼是SUS?

為了實現一次性密封,我們建議礦工證明一系列關於鍵值對集的真值表達式的內容。鍵是表達式,值是聲明,它們與(可丟棄的)witness 一起組成了表達式的參數。一旦一個表達式被加入了封條集,與它相關聯的值就不能被改變。

Peter Todd – Closed Seal Sets and Truth Lists for Better Privacy and Censorship Resistance

下面這張圖來自Peter Tod 的SUS 實用例子,它生動而準確地描述了SUS:就像現實生活中的封條一樣,它們封上就不能再打開,而且每個都有唯一標識。

想像一下,在數位世界,你可以擁有獨一無二且不可摧毀的封條來封印任何數據,而任何人(包括你自己)都無法偽造這些印章,這就是SUS。

簡單易懂SUS

當我們花費一筆輸出時,我們的目標是讓花費的資金流向另一組輸出上,透過將這組輸出的分配提交到這些一次性密封上的方式。

Peter Todd – Closed Seal Sets and Truth Lists for Better Privacy and Censorship Resistance

在區塊鏈世界中,UTXO(Unspent Transaction Outputs)是用戶儲存資產的地方。使用者透過交易轉移他們的資產的過程,基本上就是消耗UTXO,並為其他人創建新的UTXO。

SUS 和UTXO 的天然一致性,使得一次性密封在UTXO 模型上的設計上直接而又簡單。我們可以將TXO(Transaction Outputs)視為我們的封條,而在區塊鏈上提交的每筆交易都可以被視為將其資料封入所有的輸入TXO。這麼一來,我們就完成了UTXO 模型上的一次性密封設計:交易的輸出滿足我們對一次性密封的所有要求:

  • 被封上的封條不能被毀壞,因為我們需要花費TXO 來封上封條,而一筆錢不能被花費兩次。

  • 封條是獨特的,而且不能被偽造,因為所有的TXO 都是獨特的。

  • 我在將資料封入前我們就可以擁有封條,因為創造和花費TXO 是分開的過程。

封條鍊和Type ID

Type ID 描述了一種透過使用特殊的type script 來創造單例類型的方式——即在這個Type 下只有一個Live Cell。

CKB RFC 0022 – CKB Transaction Structure

我們可以透過在關閉一個封條時將新封條連接到其上,從而創建封條鏈。這種方法簡化了驗證過程,因為驗證者只需要在初始封條上達成共識,就可以透過封條鏈來取得最新的封條。儘管,這同樣意味著驗證者必須檢索整個封條鏈來驗證最新的資料。

由於CKB的圖靈完備虛擬機器和它的擴展UTXO 模型—— Cell 模型,我們可以在封條中包含更多資訊。 CKB 上的Cell 與BTC 上的UTXO 的不同之處在於,Cell 可以儲存任意數據,這些數據的轉換受到「Type」 Script 的限制。

在CKB 的Type ID 方案中,我們要求封條鏈上的每個封條都必須包含第一個封條的ID 作為起始資訊。 Type ID 意味著Type Script 賦予了Cell 唯一的ID,並限制其在封條鏈的開始到結束的過程中ID 都不能被更改。這個ID 允許驗證者僅透過CKB 上的通用索引器就可以檢索最新的封條。

更多CKB 上的SUS

  • Single Use Lock:這個Lock 需要消耗指定的Live Cell 才能解鎖。正如我們先前所言,一個封條只能被封上一次。因此,Single Use Lock 只能被解鎖一次。

  • Type Proxy Lock:這個Lock 需要使用特定Type Script 的Cell 來解鎖。在這個Type Script 是Type ID 的情況下,只有擁有更新封條鏈全限的人才能進行解鎖。

資產發行權限控制是這兩種Script 的一個實際應用場景。在CKB 的xUDT 協議中,發行者可以在證明他們能夠解鎖Owner lock 時鑄造新代幣。僅使用簡單的基於簽名的Lock,我們無法確定發行者是否仍然擁有他們的私鑰,這意味著他們總是可以鑄造新代幣,使得每種資產都可以無限增發。

在這裡,Single Use Lock 為我們提供了解決方案。消耗指定Cell 後,由於沒有人能夠解鎖Owner lock 來鑄造新代幣,我們可以相信代幣供應量確實有上限。

作為更靈活的解決方案,代幣發行者可以使用Type Proxy Lock 將鑄造權限綁定到Type ID Cell。它就像一把無法被偽造的鑰匙,可以交給其他人,或被銷毀。

Total
0
Shares
Related Posts