BitVM中文社区
白皮书BTC Layer2生态BitVM生态BTC 2024 会议BTC测试网水龙头社交媒体
  • 社区介绍
  • 成员招募
  • BitVM
    • 📖英文白皮书
    • 📖中英文白皮书
    • 📖BitVM白皮书-详细讲解
    • 🍀BitVM项目概况
    • 🌾基础知识
      • BitVM论文中图1解析
      • 隔离见证的好处
      • Schnorr 签名:简介
      • 谨慎日志合约(DLC):比特币的可扩展智能合约
      • 什么是比特币默克尔化抽象语法树(MAST)?
      • 什么是多重签名钱包(Multisig)?
      • 什么是门限签名(TSS)?
      • 什么是图灵完备
      • 区块、链
      • UTXO与普通账户模型
      • UTXO Vs 普通账户模型
      • PoW共识
      • PoS共识机制
      • 哈希与加密算法
      • 点时间锁合约(PTLC)
      • 基于 Taproot 的闪电通道
      • Taproot 及 MuSig2 回顾
      • Taproot是什么(比特币升级Taproot)
      • SegWit和Taproot是什么?二者之间的差异与各自优势
      • DPoS共识机制
      • 比特币脚本研究
      • 零知识证明介绍
      • Optimistic Rollups
      • Rollup:详解ZK Rollups、Optimistic
  • 👨重要人物
    • Robin Linus
  • BitVM精选文章
    • 与BitVM有关的重要信息
    • BitVM:比特币层计算的突破
    • BitVM 入门
    • 深入探讨BitVM - 表达图灵完备比特币合约的计算范式
    • BitVM and Bridges-侧链桥
    • What is BitVM?
      • What is BitVM? with Robin Linus and Super Testnet (SLP520)
      • BitVM是什么?与Robin Linus和Super Testnet详细讲解
    • Robin Linus on BitVM
      • BitVM:Bitcoin的链下合约
      • BitVM:Off-chain Bitcoin Contracts
      • PPT中文版
      • PPT英文版
    • BitVM:图灵完备的 Taproot 智能合约
    • BitVM 在比特币上实现智能合约
    • 全面解析ZK Rollups和Optimistic Rollups
    • Optimism Rollup原理详解【以太坊L2方案】
    • 要在比特币上计算任何内容,资深开发者们怎么看BitVM?
    • BitVM 是什么?图文讲解
    • BitVM 脑洞大开,复杂概念和落地可行性剖析
    • BitVM:开启比特币的智能合约时代
  • 🆚生态对比
    • 从比特币应用编程理解 CKB 的可编程性
    • BitVM 与 RGB 协议:瞄准比特币生态的“双星”
    • 什么是 RGB 协议?
    • 牛市第一响:BTC L2将造就alpha之王
    • 比特币L2的机会
  • BitVM项目
    • BitVM项目概览
    • Bitlayer
      • Bitlayer 介绍
      • Bitlayer快速了解
      • 一文了解 Bitlayer:构建比特币计算层
      • Bitlayer Research:DLC 原理解析及其优化思考
    • zkBase
      • 为什么市场需要 ZKBase?
      • 了解 ZKByte:基于零知识证明和 BitVm 的比特币 Layer2 拓展解决方案
    • Bitstake
      • Bitstake 简介:基于 BitVM 的权益证明桥
    • Citrea
      • Citrea 概述:比特币首个 ZK Rollup
  • Runes
    • 作者
    • 优质文章
      • 为什么说 Runes 符文赛道即将爆发?
      • 超越BRC20?一文读懂比特币符文协议Runes的前世今生
      • 解读Runes协议:两大发行方式、文化与玩法
      • xiyu 对 Runes 协议的解读:提供了一种在比特币网络上创建和转移符号化资产的方法
      • 解读Runes协议:发展历程及其最新「公开铭刻」发行机制的拓展
      • Ordinals创始人Cesay:首次全面介绍Runes协议
      • Runes预挖矿概念:一文读懂Rune Kingdom符文龙
      • Runes是一个Bitcoin Token Standard协议
      • 一文读懂 Runes 与 BRC20 等同质化代币协议的对比
      • Ordinals创始人首谈Runes协议细节:前10个Runes只支持Open mint
      • 一文看懂BRC20、Atomicals、RUNE等协议的独特之处
    • 视频
      • No129. 什么是符文Runes协议?Runes协议几个关注度高的项目介绍
      • 比特币牛市行情下个热点赛道布局 | 符文协议 runes protocol | 什么是符文协议Runes
      • 被譽為下一個「銘文」的「符文」是什麼?Runes協定主網上線時間已定?|秒懂符文
  • btc
    • 📖白皮书
      • 中英文
      • 注解版
    • 📖《精通比特币》第二版
      • 原版序言
      • 中文版序言
      • 译者序
      • 第二版更新内容
      • 术语
      • 目录
      • 第一章 介绍
      • 第二章 比特币工作原理
      • 第三章 比特币核心
      • 第四章 密钥和地址
      • 第五章 钱包
      • 第六章 交易
      • 第七章 高级交易和脚本
      • 第八章 比特币网络
      • 第九章 区块链
      • 第十章 挖矿和共识
      • 第十一章 比特币安全
      • 第十二章 区块链应用
      • 附录A-1 比特币白皮书吴忌寒翻译
      • 附录A-2 比特币白皮书李笑来翻译
      • 附录B、交易脚本语言操作符,常量和符号
      • 附录C:比特币改进提案(BIP)
      • 附录D:Bitcore
      • 附录E:pycoin库、实用密钥程序ku和交易程序tx
      • 附录F:Bitcoin Explorer(bx)命令
    • 📖《精通比特币》第三版
    • 🌾精选文章
      • BTC生态扩容方案巡礼(1):铭文何去何从
      • BTC生态扩容方案综述
  • 培训
    • Web3技术培训
  • BTC 生态项目汇总
    • 图文版
  • 比特币 二层
    • Rollup
      • Bitlayer
      • QED Protocol
      • BitVM
      • Bison
      • B² Network
        • B² Network技术实现:基于零知识证明验证承诺的比特币ZK-Rollup
      • Chainway
      • bl2
      • Rollux
      • BOB
      • Hacash.com
      • BeL2
      • LumiBit
        • 详解原生比特币 Layer 2 网络 LumiBit
    • 比特币侧链
      • BEVM
        • BEVM Founder自述:为什么以及如何做BTC Layer2 ?
        • 以BTC为Gas且兼容EVM的BTC Layer2
      • MAP Protocol
      • Merlin Chain
      • Chain-key Bitcoin (ckBTC)
      • SatoshiVM
        • 比特币 L2 新机会?详解 SatoshiVM 及测试网交互流程
      • Rootstock
      • Libre
      • Stacks
      • Liquid Network
      • Babylon
      • BitBolt
      • Drivechain
      • RGB++
        • RGB++:为正统比特币L2添砖加瓦
        • RGB++ Protocol Light Paper
        • 从RGB到RGB++:CKB如何赋能比特币生态资产协议
        • 一文了解提出 RGB++ 协议的比特币二层:CKB
        • RGB++:比特币 L2 资产的新思路
    • 数据可用性
      • Veda
      • Nubit
    • 状态通道
      • OmniBOLT
      • Lightning Network
    • 客户端验证
      • BiHelix
      • RGB
    • 其他
      • Path Protocol
      • Bool Network
      • Dovi
      • Bitfinity Network
      • U Protocol
      • Botanix
        • Botanix protocol
      • AiPTP
  • BTC 基础设施
    • 链下索引
      • UniSat
      • Rooch Network
    • 资产协议
      • Layer1
        • Ordinals序列协议
          • BRC20.com
          • LRC-20/LTC-20
          • ORC-20
            • Ordinals
          • BRC-100
          • SRC-20(STAMPS 协议)
            • SRC20 OpenStamp
          • Runes 协议
          • Pipe 协议
          • Tap Protocol
        • Atomical原子协议
          • ARC-20
            • Atomicals Protocol
      • Layer2
        • BitVM
        • Lightning Network
        • RGB
        • Nostr Assets Protocol
    • 资产桥
      • DLC.Link
      • Liquidium
      • BoringDAO
      • GoWrap
      • XLink
      • MultiBit
      • UniRouter
      • VMPX
      • OrdBridge
      • BRCport
      • SoBit
      • BitSwap
      • SaxBridge
      • Ordinfinity
      • Shell Trade
    • 预言机
      • 概览
        • 预言机赛道大全图谱(经典收藏)
        • OKX Ventures研报:重新思考预言机,看到及未被看到的
      • Chainlink
        • 万字拆解 Chainlink 2.0 构成背景、技术原理、经济模型与未来挑战
        • Chainlink (LINK) 资金面情况及近期发展动态
      • Band Protocol
        • 投资 Band Protocol (BAND) – 您需要了解的一切
      • Pyth Network
        • Pyth Network 研报:Solana 生态预言机发展现状与前景分析
      • Supra
        • Supra万字研究报告: Intralayer中间件,能否撼动Link预言机龙头地位?
  • twitter-space
    • 怎么样的 BTC Layer2 更有机会胜出?
      • 全文
    • BTC Layer2 技术创新盘点
      • 全文
    • 比特币L2混战:从业者 / 市场如何选择?
      • 全文版
      • 精简
  • BTC Layer2 周报
    • BTC Layer2 68个项目盘点
    • 2024.3.11 - 2024.3.17
    • 2024.3.4 - 2024.3.10
    • 2024.2.19 - 2024.2.25
  • BitVM 周报
    • 2024.3.18 - 2024.3.24
    • 2024.3.11 - 2024.3.17
    • 2024.3.4 - 2024.3.10
    • 2024.2.26 - 2024.3.3
  • BTC 2024 会议
    • 比特币复兴 2024:按主题演讲和专题小组分段
由 GitBook 提供支持
在本页
  • 什么是 BitVM?
  • 预赛
  • BitVM 协议详细信息
  • 进一步的发展
  • 结论

这有帮助吗?

  1. BitVM精选文章

深入探讨BitVM - 表达图灵完备比特币合约的计算范式

上一页BitVM 入门下一页BitVM and Bridges-侧链桥

最后更新于1年前

这有帮助吗?

原文:

作者:

什么是 BitVM?

BitVM是Robin Linus“表达图灵完备比特币合约的计算范式” ,不需要软分叉。

比特币脚本被设计为图灵不完备,因此不可能实现像基于虚拟机的链上实现的任意合约。之前在比特币上实现图灵完备合约的提议需要软分叉来激活新的操作码。BitVM 与这些提案不同,因为它不需要提案。

请注意,它仍然有重要的限制: ·合约仅限于两方之间的合约 ·需要两方之间进行大量的计算和交互(即数百 MB 到数 GB 的数据交互;本地存储) 尽管有这些限制,该提案引发了激烈的社区辩论。

下面的部分详细介绍了如何在证明者(断言他们知道特定问题的答案)和验证者(评估该断言的真实性)之间建立合同。 只要双方合作,任何合同都可以共同解决。 如果验证者不同意证明者的断言正确,则会启动“挑战与响应”计划(稍后将详细解释),如果发现断言不一致,则验证者有权扣押证明者的资金。

在讨论 BitVM 的工作原理之前,我们将提供一些预备知识。

预赛

⚫️逻辑电路 用编程语言编写的代码被编译器转换为二进制代码(一系列 0 和 1)。处理器读取该二进制代码并使用逻辑电路执行指令。 组成逻辑电路的组件的典型示例包括“与”门、“或”门、“非”门和“与非”门。与非门被称为“通用门”,因为它们可以用来构建所有其他门。

在本文中,与非门仅用于论证,以抽象出制作高效比特币脚本的所有复杂性。我们将该电路称为“二进制电路”。 作者认为, 在实践中,使用所有可用的比特币脚本操作码会使链上 TX 比仅使用 NAND 时小 10 倍至 100 倍。

下图显示了一个以 A、B、C 和 D 作为输入的二进制电路。证明者声称他(她)知道所有输入。

⚫️OP_NAND 比特币现有的操作码 OP_BOOLAND 和 OP_NOT 可以组合起来执行 NAND 操作的功能。

我们将 OP_BOOLAND 和 OP_NOT 的这种组合称为“OP_NAND”。

⚫️位值承诺 以下是证明者提交每个 NAND 门的输入和输出值(0 或 1)的脚本: 如果证明者提供 hash1 的原像,则将“1”压入堆栈。如果证明者提供了 hash0 的原像,则“0”被推入堆栈。

我们将这些操作码集称为“OP_BIT_COMMITMENT”。

OP_IF 
OP_HASH160 
<hash1> 
OP_EQUALVERIFY 
<1> 
OP_ELSE 
OP_HASH160 
<hash0> 
OP_EQUALVERIFY 
<0> 
OP_ENDIF

⚫️二元门承诺

以下是 Prover 通过组合 OP_NAND 和 OP_BITCOMMITMENT 提交到 LogicGate (NAND1) 的脚本。当它们提供以下三个值时,三组值(0或1),即A、B和E被压入堆栈。

・HashA0 或 HashA1 的原像
・HashB0 或 HashB1 的原像
・HashE0 或 HashE1 的原像

如果 A NAND B == E 成立,则该脚本可以解锁。

// 显示 hashE0 或 hashE1 的原像
<hashE0/1> 
OP_BITCOMMITMENT 
OP_TOALTSTACK 
// 现在“E”的位值在堆栈上
// 显示 hashB0 或 hashB1 的原像
<hashB0/1> 
OP_BITCOMMITMENT 
OP_TOALTSTACK 
// 现在位值“B”在堆栈上
// 显示 hashA0 或 hashA1 
<hashA0/1>的原像
OP_BITCOMMITMENT 
OP_TOALTSTACK 
// 现在“A”的位值在堆栈上
// 
// 验证“A NAND B == E” " 
// 
// 从替代堆栈中读取“B” 
OP_FROMALTSTACK 
#compute A NAND B 
OP_NAND 
# 从替代堆栈中读取“E” 
OP_FROMALTSTACK 
#Check A NAND B == E 
OP_EQUALVERIFY

⚫️Challenge and Response 当Verifier不同意Prover的断言正确时,就会发起Challenge and Response。如果发现断言不一致,验证者有权扣押证明者的资金。

验证者从电路中选择一个门,证明者公开输入和输出(我们将其称为打开门)。双方多次重复此过程,直到发现不一致,或者验证者耗尽了可能的挑战空间。 如果证明者声称当一个门打开时 D=1,但随后又声称当另一门打开时 D=0,则证明者模棱两可,验证者能够扣押证明者的资金。

请注意,证明者不需要打开每个门。 在下面的示例中,Verifier 要求 Prover 按顺序打开 NAND7、NAND1、NAND3、NAND6 和 NAND5。

最初,当请求打开 NAND6 时,证明者断言“I=1”。然而,随后当被要求打开 NAND1、NAND3、NAND6、然后 NAND5 时,Prover 被迫给出“I=0”的矛盾响应。当被要求打开 NAND6 时,如果证明者意识到它会给出关于 I 值的矛盾答案并且不打开它,则验证者可以在一段时间后扣押证明者的资金。

⚫️挑战 Taptree 和响应 Taptree Taptree 用于双方承诺挑战和响应方案。Taptree 是由脚本作为叶子和根(Taproot)组成的 Merkle 树,可用于调整密钥,从而可以使用密钥(密钥路径)或 Taptree 中的脚本(脚本)路径)来解锁输出。 在下面的示例中,验证者通过公开挑战抽头树的解锁条件来选择 Gate7,证明者通过公开响应抽头树的解锁条件来打开 Gate7。

如果证明者对同一变量公开不同的值(例如 E=0 && E=1 ),则证明者的声明为假,验证者可以获得所有资金。该模型是通过遵循Equivocals Taptree来实现的。

到目前为止,我们已经了解到证明者和验证者使用比特币脚本的组合致力于逻辑门,并且 Taptree 用于基于挑战和响应协议进行证明验证。 在以下部分中,我们将解释 BitVM 协议的详细信息。

BitVM 协议详细信息

以下是声称知道满足某个任意方程的值的证明者与验证者之间使用 BitVM 签订合约的流程。

1. 电路构建 合约以编程语言实现,并编译成大型二进制电路;证明者声称给予电路的一组特定输入评估为特定输出。

2.交易构建和预签名 Prover和Verifier之间构建并预签名交易,以承诺二进制电路输入值证明​​和验证方案。

3.合约执行 双方签署并广播下图的Tx1以锁定资金。一旦交易确认,合同即被执行。

Tx1已上链,而Tx2~Tx4尚未广播。Tx2 和 Tx4 由验证者持有,Tx3 由证明者持有。

如果验证者接受证明者的声明是正确的,他们会跳过“4”。挑战与响应”步骤并继续到“5. 结算步骤。如果验证者认为证明者的声明不正确,他们将继续进行“4”。挑战与响应步骤。

4.挑战和响应 验证者通过暴露挑战Taptree的解锁条件来选择他选择的门,证明者通过暴露响应Taptree的解锁条件来打开门。 理想情况下,这种交互是在链外执行的。(尽管也可以在链上执行) 双方重复此过程多次,直到发现不一致,或者验证者耗尽了可能的挑战空间。

以下是证明者和验证者在链下重复挑战和响应两次并发现不一致的示例。

在第一个挑战中,验证者选择 NAND1 门,证明者公开其输入和输出(A=1、B=1、E=0)。在第二个挑战中,验证者选择 NAND4 门,证明者公开其输入、输出(E=1,F=1,H=0)。 请注意,Prover 的响应不一致,第一次 E=0,第二次 E=1。由于证明者模棱两可,验证者继续进行“5”。扣押证明者资金的和解步骤。

5. 和解 如果验证者承认证明者在'3.中的主张是正确的。合同执行”步骤,他们跳过“4. 挑战和响应步骤。只要双方合作,任何2-of-2签名的合同都可以共同结算。

如果证明者的响应不一致,则在 '4. 挑战与响应步骤如第一次E=0,第二次E=1,验证者获得原像(E=0)和原像(E=1),这是Equivocas Taproot地址可以解锁的条件。 验证者通过广播 Tx6 来获得证明者的资金,如下所示。

进一步的发展

・更一般的合同 拟议的模型仅限于两方。需要更多的研究来将该模型开发为 N:N。

结论

请注意,上图与原始提案有所不同。上图中,第一笔交易的输出分为两部分,并使用ighasg_all进行预签名。如果输出不被分割,则所有可能使用的 Tapleaf 都必须预先签名。详情请参阅

・更高级的操作码以提高效率 Robin Linus 表示,使用 NAND 只是为了论证,以抽象出制作高效比特币脚本的所有复杂性。 他认为,在实践中,使用所有可用的比特币脚本操作码使得链上 TX 比仅使用 NAND 时小 10 倍至 100 倍。 这就是为什么创建一些例如 u32 加法、u32 异或、u32 旋转等。

・无脚本脚本 BitVM ZmnSCPxj通过用点和标量替换散列和原像来使用这个技巧,我们可以减少 Tx 大小和链上占用空间。

BitVM 是一个无需软分叉即可实现图灵完备比特币合约的项目。 如果您想贡献,是 Repo。您也可以在中讨论这个主题。

此处。
更高级的操作码,
表述“无脚本脚本 BitVM”。
这里
Telegram 组
https://medium.com/crypto-garage/deep-dive-into-bitvm-computing-paradigm-to-express-turing-complete-bitcoin-contracts-1c6cb05edfca
Ichiro Kuwahara
https://twitter.com/1_LOW_0219
提出的