简易性 - Simplicity
简易性是一种正在开发中的低级编程语言,比比特币脚本 (Bitcoin Script) 提供更大的灵活性和表达力。它允许您验证程序的安全性、安全保障和成本。它还提供原生的梅克尔化脚本、正式语义和类型检查。要在比特币上使用简易性,需要进行软分叉,但目前尚未提出这样的提议。目前,ElementsProject.org 和比特币核心 (Bitcoin Core) 代码库的测试分支支持简易性。
简易性的核心由九个称为组合子的原始操作符组成,其语义被正式指定。然而,在如此低级别上实现比特币功能会导致程序庞大、运行缓慢且成本高昂。可以将实现基本功能的预写简易性程序添加到比特币共识中,以便其他简易性程序可以使用短标识符内联这些函数,消除它们的大小惩罚。然后可以用更高效的语言(如C语言)重新实现内联简易性代码的功能,这些代码被证明与纯简易性程序等效——消除速度或内存惩罚。这些替换(称为 jets)允许整个程序用简易性语言指定,包括像哈希函数和签名验证这样的操作,但可以使用其他语言的代码执行,以实现与今天的比特币脚本类似的性能。
假设简易性在某个阶段通过软分叉集成到比特币中,并配备了足够的 jets,那么像 SIGHASH_ANYPREVOUT 这样的新功能(目前需要软分叉来实现)可以在比特币上使用,而无需单独的共识规则变更。尽管简易性提供了某些正确性证明,但在设计任何依赖于比特币限制之外的合约协议时,仍然需要小心。
主要代码和文档
Optech新闻简报和网站提及
2022
2020
另见
Last updated