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 列出了一系列可利用这些功能构建出来的可能的钱包功能和智能交易功能,以供开发者参考,它们包括:

  • 只将资金发送给授权接收者的钱包功能;
  • 只能以预设速度进行消费的钱包功能,包括能够以非交互方式向钱包发送付款。
  • 具有存款复原信息的钱包功能,如攻击面较低的纸质钱包。它可以用来恢复安全硬件出现故障的钱包中的资金,但与普通的纸质钱包不同,这种方式可以用来启动获得控制权的过程,而不是获得代币的控制权。在整个流程发生的这段时间,如果该硬件钱包仍然在线,可以收回资金。此外,它还支持需要存款来启动恢复的流程,在这个流程中,被攻击者可「偷回」资产。