风险提示:央行等十部委发布《关于进一步防范和处置虚拟货币交易炒作风险的通知》, 请读者提高风险意识。

比特币生态太扩容方案巡礼(2): BitVM——蚀刻的艺术

Robin Linus提出了一个BitVM计划,旨在将智能合约引入比特币区块链。通过哈希锁、OP_BOOLAND和OP_NOT等技术,可以实现复杂的计算过程,Taproot Tree可以将逻辑电路蚀刻到一系列树状结构相连的UTXO交易的Taproot脚本中,形成一个可以处理一定计算任务的“类合约”逻辑电路。Taproot Assets可以实现安全的结算,而Metatrust可以为BitVM生态的安全落地提供保障。

Simon shieh
Simon shieh
热度 ...

原文作者:Simon shieh

原文来源:MetaTrust Labs

前言回顾

上一篇《比特币生态太扩容方案巡礼(1):铭文何去何从》中,我们讨论了热门的铭文生态的技术原理和可能存在的安全问题,并且提到了用递归铭文来实现智能合约的可能性。但是因为Luke对Taproot脚本的限制,递归铭文似乎有了一些障碍,那在比特币网络上实现智能合约有没有其他的可能性呢?

区块链开发商ZeroSync的联合创始人Robin Linus,在2023年10月9日发表了一篇名为“BitVM:在比特币上进行所有运算(BitVM:Compute Anything on Bitcoin)”的论文,其中提出了一个计划,旨在将智能合约引入比特币区块链。

UTXO该论文提出了一个非常有趣的思路,可以用taproot完成几乎所有的任意计算,并使用这些计算来验证在比特币链下发生的事情。其中的诀窍是,将所有的逻辑都放在链下,并在其他人断言了不诚实的结果时,在链上用少数几步计算来挑战这些结果。

换句话说,就是将一个Verifier的逻辑放在比特币网络中,利用比特币的强共识安全,成为任何图灵完备运算层的可信第三方,再用Optimistic Rollups 的原理,来实现链外计算结果的验证。

那么怎么实现将一段Verifier的逻辑放在比特币网络中呢?为了和上一节的“铭刻”相呼应,我愿称之为在比特币网络上进行电路“蚀刻”的技术。

逻辑门电路

在现有的比特币脚本上构造与非门(NAND gate)可以通过结合哈希锁和两个可能不太为人所熟知的操作码:OP_BOOLAND和OP_NOT来实现。

首先,哈希锁可以用来创建一个分支脚本,这个脚本可以通过两种方式中的一种来花费:要么满足哈希锁,要么满足哈希锁B。这样,路径A将1输出到堆栈,而路径B将0输出到堆栈。

通过满足特定哈希锁,你可以"解锁"一个比特,这个比特作为我们要构造的NAND门的输入之一。由于你只能满足其中一个路径的要求,所以这种方法只允许用户一次提交一个比特。

与非门的逻辑是接收两个比特作为输入,输出一个比特。如果两个输入比特都是1,则输出0;如果输入是其他组合,则输出1。使用两个哈希锁技巧,可以提交这两个输入,并验证输出是否正确,这就是OP_BOOLAND和OP_NOT的用途所在。

OP_BOOLAND的操作与与非门相反:如果两个输入都是1,则输出1;任何其他输入组合都会产生0。OP_NOT则输出与输入相反的值。因此,通过结合使用这两个操作码,可以在脚本堆栈中取两个输入并进行反和操作。最后,可以使用OP_EQUALVERIFY以及哈希锁技巧来验证断言的输出。如果堆栈中实际的与非操作结果与用户断言的输出不一致,脚本就无法通过验证。

这样,就在比特币脚本中“蚀刻”了与非门电路,实际上是通过比特币脚本来强制执行虚拟的与非门操作。

UTXO

比特币上如何蚀刻与非门

在现有的比特币脚本上构造与非门(NAND gate)可以通过结合哈希锁和两个可能不太为人所熟知的操作码:OP_BOOLAND和OP_NOT来实现。

首先,哈希锁可以用来创建一个分支脚本,这个脚本可以通过两种方式中的一种来花费:要么满足哈希锁,要么满足哈希锁B。这样,路径A将1输出到堆栈,而路径B将0输出到堆栈。

通过满足特定哈希锁,你可以"解锁"一个比特,这个比特作为我们要构造的NAND门的输入之一。由于你只能满足其中一个路径的要求,所以这种方法只允许用户一次提交一个比特。

与非门的逻辑是接收两个比特作为输入,输出一个比特。如果两个输入比特都是1,则输出0;如果输入是其他组合,则输出1。使用两个哈希锁技巧,可以提交这两个输入,并验证输出是否正确,这就是OP_BOOLAND和OP_NOT的用途所在。

OP_BOOLAND的操作与与非门相反:如果两个输入都是1,则输出1;任何其他输入组合都会产生0。OP_NOT则输出与输入相反的值。因此,通过结合使用这两个操作码,可以在脚本堆栈中取两个输入并进行反和操作。最后,可以使用OP_EQUALVERIFY以及哈希锁技巧来验证断言的输出。如果堆栈中实际的与非操作结果与用户断言的输出不一致,脚本就无法通过验证。

这样,就在比特币脚本中“蚀刻”了与非门电路,实际上是通过比特币脚本来强制执行虚拟的与非门操作。

UTXO

如何蚀刻大规模电路

虽然这个利用Taproot脚本实现电路蚀刻的想法很酷,但是别说像PC那种超大规模电路了,就是要实现任意一组计算,都需要成千上万的与非门电路,那在比特币有限的Taproot脚本空间里,如何覆盖复杂计算呢?

关于【比特币生态太扩容方案巡礼(2): BitVM——蚀刻的艺术】的延伸阅读

  • 探讨比特币 Layer 2 解决方案的三个关键设计决策

    比特币的二层解决方案涉及三个关键设计决策:桥接BTC、继承安全性和处理数据可用性。最佳解决方案是BitVM桥接,但仍有问题。另一种选择是与Babylon结合,构建PoS侧链。数据可用性对乐观设计很重要,比特币侧链可能需要使用以太坊或其他替代方案。最有利于安全性的解决方案是合并挖矿,通过不同模块可创建18种独特的侧链组合。个人偏好的方案是通过BitVM桥接使用Babylon获得BTCPoS安全性,或者采用创新的合并挖矿方法扩展比特币PoW安全性,并依赖外部数据可用性。

  • 探讨比特币 Layer 2 解决方案的三个关键设计决策

    比特币的二层解决方案涉及三个关键设计决策:桥接BTC、继承安全性和处理数据可用性。最佳解决方案是BitVM桥接,但仍有问题。另一种选择是与Babylon结合,构建PoS侧链。数据可用性对乐观设计很重要,比特币侧链可能需要使用以太坊或其他替代方案。最有利于安全性的解决方案是合并挖矿,通过不同模块可创建18种独特的侧链组合。个人偏好的方案是通过BitVM桥接使用Babylon获得BTCPoS安全性,或者采用创新的合并挖矿方法扩展比特币PoW安全性,并依赖外部数据可用性。

BitVM提出了Taproot脚本树(Taproot Tree)的方法。为了在比特币脚本中实现复杂的计算过程,人们可以通过串联逻辑门来构建计算电路。在这个方案中,哈希锁被用来绑定各个门,从而实现顺序执行的逻辑操作。具体来说,如果一个门的脚本根据不同的哈希原像(哈希明文值)输入产生不同的输出结果C1或C2,那么下一个门会使用与之相匹配的哈希锁值作为其输入。

这种方法可以实现一种惩罚机制,即如果试图谎报前一个门的结果,就只能揭晓另一个哈希锁的原像。这种机制可以用于两个用户之间的交互式计算,其中他们预先同意参与特定的计算任务,然后将计算过程分解成只由与非门组成的电路。他们需要为电路中的每个门选择合适的哈希锁,并将其编码进锁定UTXO的脚本树中。

然后通过多个地址组成一个Taproot地址矩阵,再通过Taproot Tree的方式将逻辑电路蚀刻到一系列树状结构相连的UTXO交易的Taproot脚本中,最终形成一个可以处理一定计算任务的“类合约”逻辑电路。

欺诈挑战

欺诈挑战是OP(Optimism Rollup)技术的核心(虽然至今都没有真的实现~),思想是在一个batch的交易被批量提交之前,挑战者对认为有错的交易发起欺诈挑战(质押对赌),主网上的Verifier合约会根据状态根在执行后的变化来判断提交者是否作恶,然后分配双方质押的资产。

而在bitVM中,脚本树被设计成两个电路,除了允许证明者提交到一个电路之外,还需要挑战者能够挑战证明者的声明。这可以通过预签名一系列的交易来实现。这些预签名交易通过「挑战 ->应答 ->挑战 ->…」的方式连接。如果某一方停止一段时间后,另外一方就会赢得挑战并回收双方的存款。

UTXO

上图展示了一系列预先签名的交易:

• 挑战:Vicky (挑战者 / 验证者)在脚本路径中释放一个原像(这些原像只有挑战者知道),用作对证明的挑战;

• 应答:Paul (证明者)执行对应的逻辑门,将资金发回初始的脚本中;

在几轮的查询后可以迅速驳斥任何一个不一致的声明。如果证明者停止在链下与挑战者合作,挑战者就会强制证明者在链上合作:挑战者每解锁一个哈希锁,使得证明者的 UTXO 中的每个 NAND 门对应的 Taproot 叶子节点只有在证明者知道挑战者持有的一个原像时才可以被花费。证明者可以通过揭示其输入和输出来证明给定的 Taproot 叶子节点执行正确。其前提是挑战者通过揭露对应 Tapleaf 的哈希的原像来解锁它,通过二分查找的方式,挑战者可以在经过有限轮(O(logn))的挑战和应答后锁定证明者的错误。

整个过程涉及到多轮交互,以确保合约能够正确结算。挑战者可以不断挑战证明者,直到证明者证实了每个门的正确结果,或者在证明者无法响应挑战的情况下,挑战者可以在特定时间后提取资金。在理想情况下,所有操作都在链下进行,双方协作完成结算,但如果合作破裂,双方可以通过链上的挑战游戏来确保合约得到正确的解决。

落地障碍与安全性问题

这项提议涉及处理和生成的数据量极其庞大。使用的Taproot脚本树可能包含数十亿个叶子节点,而相关的预先签名交易的处理时间可能至少需要几个小时,以确保准确的结算。每个Taproot地址的预设解锁条件执行都需支付矿工费,因此地址组合越多,成本也越大。

这种方案的一个主要限制在于,它只适用于两个参与者之间的交互:一个作为证明者,证明其执行的准确性;另一个作为验证者,挑战前者的声明。虽然未来的研究可能会找到方法让更多参与者加入,但目前看来还没有明确的解决方案。

在合作结算的场景中,所有参与者必须在线,这对于协议的实用性和便利性构成了一定的限制。

在安全性方面,主要有以下几点安全风险:

1、由于成本的限制,必然大量的计算工作要放在链下进行,链下计算就存在中心化服务的一些常见安全风险。

2、大量数据保存在链下,数据可用性和数据安全性也是必须要考虑的风险点

3、对于所蚀刻的电路本身是否存在逻辑漏洞也是一个安全风险点,由于电路的不易读性,需要付出更多的审计成本或形式化验证成本。

Metatrust曾经协助Uniswap进行了全面的形式化验证工作,并在ZK电路审计和形式化验证方面有非常丰富的经验,可以为BitVM生态的安全落地,提供保障。

上两篇的方案都是今年刚火热起来的技术方案,下一篇,我们将介绍一个更加古老,更加具备“正统性”的方案,闪电网络的升级版本——Taproott Assets。

免责声明:本文仅代表作者个人观点,不代表链观CHAINLOOK立场,不承担法律责任。文章及观点也不构成投资意见。请用户理性看待市场风险,以及遵守所在国家和地区的相关法律法规。
图文来源:Simon shieh,如有侵权请联系删除。转载或引用请注明文章出处!

标签:

分享至
https://www.chainlook.cn/toutiao/1703811007.html

下一篇:

Brevan Howard Digital:2024 年 Web3 的预期是什么?

2023年,我们对游戏、NFT、数字商品等做出了12个预测,2024年Web3游戏发布增长2-3倍,稳定币交易量将超过Visa,Solana上的稳定币交易量百分比翻倍,ETH流通总量将达到1.196亿,阿布扎比加大加密货币力度,Coinbase进入ADGM的RegLab沙盒。

免责声明:
链观CHAINLOOK作为区块链技术应用与Web3行业研究的智库媒体,旨在为中国区块链专家、学者们提供最新的行业资讯信息与数据样本,用于区块链技术研究与创新。本站所发布的文章仅代表作者的个人观点,不代表链观CHAINLOOK官方立场,本站所发布的区块链行业研究报告与数据分析成果是通过人工智能算法对数据内容进行分析与归纳生成,不代表任何投资暗示与建议,链观CHAINLOOK不承担法律责任。

风险提示:
虚拟货币不具有法定货币等同的法律地位,参与虚拟货币投资交易存在法律风险,链观CHAINLOOK坚决反对各类代币炒作,请读者提高风险意识,理性看待区块链技术应用及市场风险。

© 链观CHAINLOOK All Rights Reserved. 京ICP备18054193号-5