解读BitVM:如何在BTC链上验证欺诈证明?(执行EVM或其他VM的操作码)

BTC EVM 操作码 链上 2024-01-28 101

摘要:作者:雾月 & Faust,极客web3顾问:Kevin He, BitVM 中文社区发起人,ex Web3 Tech Head@Huobi导语:目前,比特币Layer2已经成为一股热潮,市面上自我定位为“比特币Layer2”的项目...

BitVM作为比特币的一种Layer2解决方案,迅速成为了市面上自我定位为“比特币Layer2”的多个项目中的显学。尽管在关于BitVM的文字资料中常常难免显得过于专业和晦涩,但BitVM的核心思路是非常简单的:无需on chain的数据首先在链下发布并存储,链上只存放Commitment(承诺)。当存在挑战或者欺诈证明的时候,只需要把需要上链的数据on chain,证明其与链上的Commitment存在关联。在此之后,BTC主网再校验这些on chain的数据是否有问题,并验证数据生产者(处理交易的节点)是否有作恶行为。简而言之,这一切都严格遵循奥卡姆剃刀原则——“若非必要,勿增实体”。使用这种方式能够最大程度地减少on chain的数据量,同时保证链上数据的安全性。

BitVM的核心思路之一是用Bitcoin Script(比特币脚本)模拟出逻辑门电路的输入-输出效果。只要能够模拟出逻辑门电路,就可以实现图灵机,完成所有可计算任务。尽管把原本在EVM/WASM上才能处理的指令放到比特币链上直接处理是可行的,但是用大量的逻辑门电路作为中间形态表达所有的EVM/WASM 操作码带来的工作量也会非常巨大。

BitVM方案中也涉及到了一些与Arbitrum高度相似的“交互式欺诈证明”,其中Proposer和Challenger会回合式的交换信息,并对有争议的数据进行验证。如果发生挑战,Proposer需要在链上层层揭示默克尔证明,以解决争议的关联的数据片段。

最后,BitVM还需要解决MAST树和Merkle Proof的问题,以此来最终证明在链下的交易数据真的存在于MAST树上,并且对将大量MAST树的单步欺诈证明和欺诈证明进行压缩。

虽然方案理论上是可行的,但是它也存在一些挑战,比如进一步压缩数据,处理zk proof和设计Proposer和Challenger在链下反复产生交互的情况,这需要进一步的优化和开发细节。

相关推荐