Cardano引入燃燒證明協議:PoB解決方案詳解

燃燒證明(PoB)協議:Cardano生態系統新解決方案

近期,一個針對Charles Hoskinson提出的挑戰的解決方案已經出現。該方案爲Cardano生態系統引入了燃燒證明(PoB)協議。本文將介紹這一新開發的解決方案,內容包括:

  1. 燃燒證明機制及其應用概述
  2. 該PoB解決方案在Cardano網路上的智能合約實現和運作機制
  3. 智能合約的部署和測試(在測試網上)
  4. 通過向"黑洞"地址發送代幣來執行PoB協議

1. 燃燒證明及其應用

代幣燃燒(銷毀)是一種常見做法,實質上是將代幣發送到一個無法訪問的"黑洞"地址。這個地址沒有任何私鑰可以取回被銷毀的代幣。公衆可以驗證銷毀確實發生了,但只知道一個"祕密"承諾值。這種機制的設計是爲了確保被銷毀的資金不會被中間人審查。

燃燒機制有多種用途,可以增加剩餘代幣的價值,或作爲區塊鏈協議的承諾證明。大規模燃燒代幣可能會造成通縮壓力,因爲它減少了流通中的代幣總量。雖然燃燒交易很常見,但仍需要礦工接受。盡管這些機制有好處,但也有人反對燃燒代幣。有鑑於此,一些團隊致力於引入一種無法審查的代幣燃燒協議。這種特殊操作引起了Charles Hoskinson的關注。

燃燒證明的安全性與代幣轉帳交易的安全性基於相同的機制 - 加密哈希函數。這些函數易於計算,但很難逆向計算。本質上,它之所以難以逆向計算,是因爲輸入的單個位變化會導致輸出的每個位都隨機改變。這意味着,從加密哈希函數的輸出開始逆向計算會耗費極長時間。簡而言之,翻轉加密哈希函數最低有效位可以創建一個黑洞地址。發送到該地址的任何內容都將變得難以或無法恢復。

加密交易的安全性完全基於公鑰密碼學和加密哈希函數:"每次發送資金時,都會創建一個新的未花費交易輸出(UTxO)。"這個UTxO記錄了資金數量和接收者公鑰的加密哈希。如果接收者想使用這筆資金,必須用同一公鑰簽署一個新的支出交易。

爲什麼要翻轉哈希函數輸出的最低有效位,而不直接使用0x0的哈希?原因是使用已知值會使燃燒立即可見。然而,該協議的設想是先燃燒資金,然後(在單獨的步驟中)證明它已被燃燒。爲了實現這一點,需要首先從創建承諾值的哈希開始。隨後,承諾值表明已創建了一個黑洞地址。

2. Cardano網路上的燃燒證明(PoB)智能合約

本節將解釋Cardano智能合約中的燃燒證明機制。Cardano智能合約是在Cardano網路上運行的程序,允許合約開發者根據特定規則執行(金融)交易。智能合約旨在在不同交易方之間建立透明和可驗證的交易。近期,去中心化金融服務和去中心化組織的興起推動了智能合約應用的指數級增長。

傳統的以太坊式智能合約由帳本上記錄的狀態和異步調用該狀態的程序組成。由於帳本上的狀態屬於智能合約,它只能通過程序更改,所有允許的狀態操作都可以從程序代碼中推導出來並記錄在區塊鏈上。

Cardano生態系統採用了不同的結構,允許用戶在自己的錢包中模擬每筆交易,使(網路)攻擊更加困難。由此產生的變化通過區塊鏈節點驗證,然後記錄下來。爲此,Cardano智能合約有三個組成部分:

  • 贖回者腳本:允許或禁止花費eUTxOs
  • 錢包腳本:代表用戶運行,以贖回資金和創建新的eUTxOs
  • eUTxOs:每個eUTxO持有資金和一個數據點(datum),贖回者用它來確定這些資金在什麼條件下可以再次使用

這意味着Cardano智能合約在帳本上沒有中心化狀態。每個eUTxO都有一個獨立的狀態(datum),與其資金不可分割。這導致以下四種可能的操作:

  • 燃燒:將資金發送到具有祕密哈希承諾值的黑洞地址
  • 被銷毀:驗證特定承諾值的燃燒確實發生了
  • 鎖定:將資金發送到有密鑰的地址
  • 贖回:贖回之前鎖定的資金

需要注意的是,端點在用戶錢包中運行。端點腳本在錢包中完成運行後,生成的交易會移至區塊鏈。在我們的案例中,這個交易會將資金移至贖回者腳本。該腳本驗證資金只能被擁有哈希值的目標地址訪問。

在鎖定操作中,哈希值可能是我們自己的地址。在燃燒中,哈希值指向一個黑洞地址。我們通過給哈希一個祕密承諾值,然後翻轉它來實現這一點。由於我們使用加密哈希函數,幾乎不可能找到其結果對應的匹配哈希值。

注意:flipCommitment只翻轉哈希值的最低有效位(LSB)。

接受交易的中間人無法知道這是燃燒還是鎖定交易。通過使用這個腳本,中間人無法選擇性地審查任何燃燒交易。燃燒和鎖定使用相同的贖回者格式,只有交易發起者知道這是燃燒還是鎖定。燃燒值可以通過使用給定承諾值的被銷毀端點來驗證。在承諾值公布之前,沒有人知道被銷毀的資金數量。如果您對代碼感興趣,代碼庫將在下一節中詳細介紹。

3. 智能合約的部署(在測試網上)

要啓動帶有錢包的測試網節點,需要助記詞和隨機密碼。可以通過執行以下步驟部署智能合約:

1. 安裝Haskell工具鏈

2. 構建Plutus腳本

3. 啓動連接Cardano節點和Cardano錢包的容器

4. 恢復錢包並輸出錢包ID(後續步驟需要),運行以下代碼(生成用於測試的隨機助記詞)

5. 運行燃燒代幣

6. 運行,驗證燃燒

通過運行上述步驟,外部無法知道這是燃燒還是鎖定交易。然而,發布此腳本後,人們可能會嘗試編譯拒絕贖回者,對應其提議的贖回者腳本的哈希。這需要付出巨大努力,但可能導致某些燃燒被審查。爲防止這種情況發生,並使違規行爲更難發生,下一節將討論如何使該解決方案更安全。

4. 從智能合約到錢包腳本

利用大多數智能合約操作發生在用戶錢包中這一事實,創建只使用錢包執行的方案可能會使智能合約變得不必要。然而,這種方法可能有一個實際優勢,即不可能有選擇地阻止對應燃燒的智能合約交易。但是,想要阻止所有燃燒的審查者可以通過阻止所有腳本來實現目的。只使用錢包,審查燃燒的唯一方法就是審查所有Cardano交易。這對審查來說是一種終極抵抗。

要實現這一點,我們需要用承諾值的哈希替換公鑰的哈希,並翻轉承諾值的最低有效位。但這還不夠。Cardano通過檢查結構和CRC代碼來防止地址中的輸入錯誤。因此,從承諾生成地址的最簡單方法是使用以下腳本和Cardano API庫。

要查看其工作原理,您可以使用以下代碼生成燃燒地址:

然後,您可以使用以下代碼將交易提交到Cardano區塊鏈:

要驗證燃燒,您需要使用以下代碼查看發送到燃燒地址的交易:

結語

本文將燃燒證明協議的實現分爲智能合約或錢包交易兩種方式。然而,Alonzo智能合約目前缺乏必要的基礎設施,如PAB庫。因此,我們建議使用錢包腳本。無論如何,PAB庫將在不久的將來實施基於Cardano的應用程序開發,結合錢包腳本,一個復雜的智能合約解決方案可能更可行,以創建一個能抵御潛在審查的環境。如果您想深入了解這個解決方案,可以在GitHub上查看所有相關信息。

查看原文
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 讚賞
  • 4
  • 分享
留言
0/400
MetaMiseryvip
· 12小時前
ada能涨了吧
回復0
MetaMask Mechanicvip
· 13小時前
挖哦 这也太烧了吧
回復0
老韭当家vip
· 13小時前
就燃烧呗,能跌到几毛钱
回復0
FalseProfitProphetvip
· 13小時前
就这燃烧力度 能有啥效果啊?
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)