Chialisp 是由 BitTorrent 創始人 Bram Cohen 創立的加密貨幣項目 Chia Network 發明的新型編程語言,它可以實現哪些新的錢包和智能交易功能?

撰文:LeftOfCenter

2019 年 12 月,由 BitTorrent 創始人 Bram Cohen 創立的加密貨幣項目 Chia Network 宣佈正式啓動測試網 Alpha Testnet。在此次發佈的 Alpha 測試網中,新增了 Chia 的區塊鏈共識層,包括一個全節點、「農民」和時間證明。此外,特別值得一提的是,此次測試版還同時引入了首版 Chialisp 語言,根據官方的描述,這是一種能更好構建智能合約交易的編程語言,當前支持的智能合約交易包括原子交換、授權收款人、可恢復的錢包、多重簽名錢包和限價錢包。

五分鐘瞭解 Chia 發明的新型編程語言 Chialisp 亮點

那麼,Chia 發明的這門新型編程語言 Chialisp 構建智能合約背後的原理是什麼?它到底好在哪裏呢?鏈聞爲你一一解讀 Chialisp 的優勢是什麼?以及它可能實現哪些新的錢包和智能交易功能?

Chialisp 最重要的特點也是最大優勢是既保留了「UTXO 模型」,同時加入了「以太坊 Solidity 模型」的一般功能,從而實現更加強大的功能,包括:

  • Chialisp 將「資產」作爲「第一類對象」,交易成了銷燬一些對象並創建其他對象的短暫調整,與之對比,在比特幣中,「交易」作爲「第一類對象」,代幣(UTXO)則表示爲一種交易 ID 和輸出編號;
  • Chialisp 將代幣(UTXO)的格式大大簡化,只包括主要輸入、謎題哈希和數量;
  • Chialisp 中發生的交易是同時發生而非按順序發生的;
  • 簽名是使用 BLS 完成的,BLS 是一種非交互式可聚合的格式,並且聚合總是會完成;
  • 這種語言沒有副作用,這使得委託和部分委託將能以一種比目前比特幣中加入的 taproot 提案更加通用和強大的方式實現;
  • 所有謎題(在比特幣中叫 scriptpubkey)解決方案(scriptsigs)的要求由其返回值表示;
  • Chialisp 是一門圖靈完備的語言,因爲執行是短暫的,這會比以太坊的 Solidity 模型簡單許多;
  • Chialisp 語言具有用於計算代幣 ID 的必要原語,並且代幣能夠聲明自己的 ID,因此支持顯式的自我引用,可避免使用自產生程序 Quine。

除了語言和環境擴展之外,Chia 還提供了一些編程技巧可擴展更多功能,包括:

  • 通過對遞歸適用的謎題哈希輸出進行聲明來實現契約(Covenants )。有人會說,這完全可以在比特幣腳本中實現,但是比特幣腳本缺乏足夠的字符串處理功能,也無法「從堆棧檢查簽名」;
  • 可以使用向後指向的契約對功能進行實現,向後指向意味着,指向祖先而非後代;
  • 代幣可以使用臨時代幣進行通信,這些臨時代幣可在它們自己創建的交易中被消耗,並通過接受代幣聲明輸入;
  • 可將「狀態」保存在謎題無法被訪問的代碼中,之後可通過在解決方案中顯示內容,並聲明代幣的 ID (該 ID 通過謎題哈希計算得出)來訪問狀態。

開發者運用以上這些技巧,可靈活擴展和部署更多新功能,而無需任何新的操作碼。

那麼,這些功能可實現哪些可能的錢包和智能合約功能呢?爲此,Chia 列出了一系列可利用這些功能構建出來的可能的錢包功能和智能交易功能,以供開發者參考,它們包括:

  • 只將資金髮送給授權接收者的錢包功能;
  • 只能以預設速度進行消費的錢包功能,包括能夠以非交互方式向錢包發送付款。
  • 具有存款復原信息的錢包功能,如攻擊面較低的紙質錢包。它可以用來恢復安全硬件出現故障的錢包中的資金,但與普通的紙質錢包不同,這種方式可以用來啓動獲得控制權的過程,而不是獲得代幣的控制權。在整個流程發生的這段時間,如果該硬件錢包仍然在線,可以收回資金。此外,它還支持需要存款來啓動恢復的流程,在這個流程中,被攻擊者可「偷回」資產。