📢 #Gate广场征文活动第三期# 正式啓動!
🎮 本期聚焦:Yooldo Games (ESPORTS)
✍️ 分享獨特見解 + 參與互動推廣,若同步參與 Gate 第 286 期 Launchpool、CandyDrop 或 Alpha 活動,即可獲得任意獎勵資格!
💡 內容創作 + 空投參與 = 雙重加分,大獎候選人就是你!
💰總獎池:4,464 枚 $ESPORTS
🏆 一等獎(1名):964 枚
🥈 二等獎(5名):每人 400 枚
🥉 三等獎(10名):每人 150 枚
🚀 參與方式:
在 Gate廣場發布不少於 300 字的原創文章
添加標籤: #Gate广场征文活动第三期#
每篇文章需 ≥3 個互動(點讚 / 評論 / 轉發)
發布參與 Launchpool / CandyDrop / Alpha 任一活動的截圖,作爲獲獎資格憑證
同步轉發至 X(推特)可增加獲獎概率,標籤:#GateSquare 👉 https://www.gate.com/questionnaire/6907
🎯 雙倍獎勵機會:參與第 286 期 Launchpool!
質押 BTC 或 ESPORTS,瓜分 803,571 枚 $ESPORTS,每小時發放
時間:7 月 21 日 20:00 – 7 月 25 日 20:00(UTC+8)
🧠 寫作方向建議:
Yooldo
Iagon團隊成功開發Cardano生態燃燒證明協議
Iagon推出Cardano生態燃燒證明協議
Iagon近期完成了Charles Hoskinson提出的挑戰,開發出適用於Cardano生態的燃燒證明(PoB)協議。本文將介紹Iagon團隊的解決方案,主要包括以下幾個方面:
燃燒證明及其應用
目前,加密代幣的燃燒(銷毀)已被廣泛採用,本質上是將代幣發送到一個無法訪問的"黑洞"地址。這個地址無法訪問,也無法重新獲取被銷毀的代幣。公衆可以驗證銷毀確實發生,但只知道一個"祕密"承諾值。這種機制的目的是確保被銷毀的資金不會被中間人審查。
燃燒機制有多種用途,可以增加剩餘代幣的價值,也可以作爲區塊鏈協議的承諾證明。大規模燃燒代幣可能會引發通縮壓力,因爲它減少了流通中的代幣總量。盡管燃燒是常見的區塊鏈交易,但仍需要礦工接受。雖然這些機制有好處,但也有人反對燃燒代幣。針對這個問題,Iagon致力於引入一種無法審查的代幣燃燒協議。這種特殊的無審查操作引起了Charles Hoskinson的關注。
燃燒證明的安全性基於與代幣轉帳交易相同的機制,即"加密哈希函數"。這些函數易於計算,但非常難以反向計算。本質上,它之所以難以反向計算,是因爲輸入的單個位變化會導致輸出的每個位隨機變化。這意味着,從一個加密哈希函數的輸出開始反向計算會耗費極長時間。簡而言之,翻轉加密哈希函數最低位可以創建一個黑洞地址,發送到該地址的任何內容都將難以或無法恢復。
這展示了加密交易的安全性完全基於公鑰密碼學和加密哈希函數:"每次發送資金時,都會創建一個新的未花費交易輸出(UTxO)。"UTxO記錄資金數量和接收者公鑰的加密哈希。如果接收者想使用這筆資金,必須用同樣的公鑰簽署一個新的支出交易。
使用翻轉哈希函數輸出最低位而不是直接使用0x0的哈希函數的原因是,使用已知值會使燃燒立即可見。然而,該協議的設想是先燃燒資金,然後(在獨立步驟中)證明它已被燃燒。爲此,需要先創建一個承諾值的哈希函數,然後承諾值顯示已創建一個黑洞地址。
Cardano網路上的燃燒證明智能合約
Cardano智能合約是在Cardano網路上運行的程序,允許合約開發者根據特定規則執行(金融)交易。智能合約旨在在不同交易方之間建立透明且可驗證的交易。近期,去中心化金融服務和去中心化組織推動了其應用的快速增長。
與傳統以太坊智能合約不同,Cardano採用了不同的結構,允許用戶在自己的錢包中模擬每筆交易,使網路攻擊更加困難。由此產生的變化通過區塊鏈節點驗證後被記錄。Cardano智能合約有三個組成部分:
這意味着Cardano智能合約在帳本上沒有中心化狀態。每個eUTxO擁有獨立的狀態(數據),無法與其資金分離。這會產生四種可能的操作:
需要注意,端點在用戶錢包中運行。端點腳本在錢包中完成運行後,生成的交易會移至區塊鏈。在本例中,這個交易會將資金移至贖回者腳本。該腳本驗證資金只能被持有哈希值的目標地址訪問。
在鎖定中,哈希值可能是我們自己的地址。在燃燒中,哈希值指向一個黑洞地址。我們通過給哈希一個祕密的承諾值,然後翻轉它來實現這一點。由於使用了加密哈希函數,幾乎不可能找到其結果對應的匹配哈希值。
需要注意,flipCommitment只翻轉哈希值的最低有效位(LSB)。
接收交易的中間人無法知道這是燃燒還是鎖定交易。通過使用這個腳本,中間人無法選擇性地審查任何燃燒交易。燃燒和鎖定使用相同的贖回者格式,只有交易發起者知道這是燃燒還是鎖定。燃燒值可以通過使用給定承諾值的被銷毀端點來驗證。在承諾值公布之前,沒有人知道被銷毀的資金數量。
智能合約在測試網上的部署
要使用錢包啓動測試網節點,需要助記詞和隨機密碼。可以通過以下步驟部署智能合約:
安裝Haskell工具鏈
構建Plutus腳本
啓動連接Cardano節點和錢包的容器
恢復錢包並輸出錢包ID(後續步驟需要),運行以下代碼生成用於測試的隨機助記詞
運行燃燒代幣
運行並驗證燃燒
通過執行上述步驟,外界無法知道這是燃燒還是鎖定交易。然而,發布該腳本後,人們可能會嘗試編譯拒絕與提議的贖回者腳本哈希對應的贖回者。這需要付出巨大努力,但可能導致某些燃燒被審查。爲防止這種情況發生並使違規行爲更加困難,Iagon致力於使該解決方案更安全,將在下一部分詳細說明。
從智能合約到錢包腳本
利用大多數智能合約操作發生在用戶錢包中這一事實,創建僅使用錢包的執行方案可能使智能合約變得不再必要。然而,這種做法可能有一個實際意義,即不可能有選擇地阻止對應燃燒的智能合約交易。但是,想要阻止所有燃燒的審查者可以阻止所有腳本來達到目的。只使用錢包,審查燃燒的唯一方法就是審查所有Cardano交易。這對審查而言是一種終極抵抗。
要實現這一點,我們需要用承諾值的哈希替換其公鑰的哈希,並翻轉承諾值的最低位。但這還不夠。Cardano通過檢查結構和CRC代碼來防止地址中的輸入錯誤。因此,從承諾生成地址的最簡單方法是使用以下腳本和Cardano API庫。
要查看其工作原理,可以使用以下代碼生成燃燒地址:
然後,可以使用以下代碼將交易提交到Cardano區塊鏈:
要驗證燃燒,需要使用以下代碼查看發送到燃燒地址的交易:
結語
本文將燃燒證明協議的實現分爲智能合約或錢包交易兩種方式。然而,Alonzo智能合約目前缺乏必要的基礎設施,如PAB庫。因此,我們建議使用錢包腳本。無論如何,PAB庫將在不久的將來實施基於Cardano的應用程序開發,結合錢包腳本,復雜的智能合約解決方案可能更具可行性,以創建一個能抵抗潛在審查的環境。如果想深入了解這個解決方案,可以在Github上查看所有相關信息。