Cardano上實現燃燒證明協議:Iagon團隊打造抗審查解決方案

燃燒證明協議:在Cardano上的創新應用

Iagon團隊近期完成了一項挑戰,爲Cardano生態系統開發了燃燒證明(PoB)協議。這是對某位區塊鏈領域知名人士提出問題的回應。本文將介紹Iagon團隊的解決方案,主要包括以下幾個方面:

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

燃燒證明及其應用

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

燃燒機制有多種用途,可以增加剩餘代幣的價值,也可以作爲區塊鏈協議的承諾證明。大規模燃燒代幣可能會產生通縮壓力,因爲它減少了流通中的代幣總量。盡管燃燒是一種常見的區塊鏈交易,但仍需要礦工接受。雖然這些機制有一定好處,但也有人反對燃燒代幣。針對這個問題,Iagon致力於開發一種不可審查的代幣燃燒協議。這種特殊的無審查操作引起了業內知名人士的關注。

燃燒證明的安全性基於與代幣轉帳交易相同的機制,即加密哈希函數。這些函數易於計算,但難以逆向計算。本質上,輸入的微小變化會導致輸出結果完全不同。這意味着,從哈希函數的輸出開始逆向計算會耗費大量時間。簡而言之,通過翻轉加密哈希函數的最低位可以創建一個黑洞地址。發送到這個地址的任何內容都將變得難以或無法恢復。

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

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

Cardano網路上的燃燒證明智能合約

Cardano智能合約是在Cardano網路上運行的程序,允許開發者根據預定規則執行(金融)交易。智能合約旨在建立交易方之間的透明和可驗證的交易。近期,去中心化金融服務和去中心化組織的興起推動了智能合約應用的快速增長。

與以太坊的智能合約不同,Cardano採用了不同的結構。它允許用戶在自己的錢包中模擬每筆交易,以增加網路攻擊的難度。交易產生的變化通過區塊鏈節點驗證後被記錄。爲此,Cardano智能合約包含三個組成部分:

  • 贖回者腳本:允許或禁止eUTxOs的支出
  • 錢包腳本:代表用戶運行,用於贖回資金和創建新的eUTxOs
  • eUTxOs:每個eUTxO包含資金和一個數據點(datum),用於贖回者確定何時可以重新使用這些資金

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

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

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

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

承接交易的中間人無法知道該筆交易是燃燒還是鎖定。利用這個腳本,中間人無法選擇性地審查任何燃燒交易。燃燒和鎖定使用相同的贖回者格式,只有交易發起者知道這是燃燒還是鎖定交易。燃燒值可以通過使用給定承諾值的驗證燃燒端點來檢驗。在承諾值公布前,沒有人知道被銷毀的資金數量。

智能合約的測試網部署

要在測試網上部署智能合約,需要執行以下步驟:

  1. 安裝Haskell工具鏈
  2. 構建Plutus腳本
  3. 啓動連接Cardano節點和錢包的容器
  4. 恢復錢包並獲取錢包ID
  5. 運行燃燒代幣的操作
  6. 運行驗證燃燒的操作

通過執行上述步驟,外界無法知曉該交易是燃燒還是鎖定。然而,發布這個腳本後,人們可能會嘗試編譯拒絕贖回者,對應其提議的贖回者腳本的哈希。這需要付出巨大努力,但可能導致某些燃燒被審查。爲了防止這種情況發生,並使違規行爲更難實施,Iagon正在努力提高該解決方案的安全性。

從智能合約到錢包腳本

利用大部分智能合約操作發生在用戶錢包中這一事實,可以創建僅使用錢包的執行方案,從而使智能合約變得不再必要。這種做法的實際意義在於,不可能有選擇性地阻止對應燃燒的智能合約交易。然而,想要阻止所有燃燒的審查者可以通過阻止所有腳本來達到目的。只使用錢包的話,審查燃燒的唯一方法就是審查所有Cardano交易。這對審查而言是一種終極抵抗。

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

可以使用提供的代碼生成燃燒地址,然後將交易提交到Cardano區塊鏈。爲了驗證燃燒,需要查看發送到燃燒地址的交易。

結語

本文將燃燒證明協議的實現分爲智能合約和錢包交易兩種方式。然而,由於Alonzo智能合約目前缺乏必要的基礎設施(如PAB庫),我們推薦使用錢包腳本。無論如何,PAB庫將在不久的將來支持基於Cardano的應用開發,結合錢包腳本,可能會創造一個更復雜、更具抗審查性的智能合約解決方案。如果想深入了解這個解決方案,可以在Github上查看所有相關信息。

ADA-4.21%
IAG-5.63%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 2
  • 分享
留言
0/400
GasFeeNightmarevip
· 18小時前
开花降低通胀率
回復0
MetaDreamervip
· 19小時前
值得期待的技术
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)