优惠论坛

标题: BitVM 概述:将有效性证明引入比特币(转) [打印本页]

作者: 九嶷风    时间: 2024-4-27 07:36
标题: BitVM 概述:将有效性证明引入比特币(转)
       BitVM 是比特币生态系统中最新的热门协议,有潜力使每个在比特币上构建的项目受益。让我们谈谈 BitVM 的设计以及它为比特币开启的新可能。2 S( f4 z, h* T5 J' G

( g# }$ P! T% [8 @$ U; n( V5 U
将欺诈证明引入比特币
% ]. ]$ \7 n  d  h) l
. v$ a5 r; f2 I6 d“ 比特币第二季[3] ”正在进行中,开发人员和用户都对在比特币上构建项目以及为解决在比特币上构建永恒挑战带来新用例和新方法感到兴奋。
0 g2 w2 V& ]  M% {5 S& d; i1 K2 g: _* V! o
比特币不具备可扩展性。由于区块空间有限,交易费用可能会在网络拥堵时大幅波动。每秒仅处理 7 笔交易,每个区块仅包含约 1MB 的数据,如果要让数十亿用户使用比特币,仅靠比特币是不够的。你需要扩展解决方案[4] 。2 P7 r0 g( e( w+ ~4 [
- \  r3 V) d4 m1 b: h) V/ Y
在比特币 L2s[5](Layer2 区块链)方面已经做了大量工作,以提高比特币的可扩展性和引入新功能。如今有数十个在比特币上构建的项目[6] ,其中最有前景的研究和创新领域之一是比特币 Rollups[7]。在高层次上,比特币 Rollups 使交易可以在链下发生,然后“卷起”成单个状态更改提交到区块链,同时有一个密码学证明系统,以便参与者可以验证提交的状态更改是否准确。
6 d( ^" U' B/ E( ^% S: Z
! q1 q$ ]  t$ X! i4 K7 v9 K6 K" ?然而,将这种证明系统引入比特币存在挑战,这就是 BitVM 的作用所在。
1 S2 L0 h& \: E3 o3 y2 [6 L% R2 W4 n) c# P! s
什么是 BitVM?
" _- g. ~1 g2 {+ Y- O0 u4 t; C- }! N+ `1 J, ^% k
BitVM[8]是一种协议/规则集,可以实现在比特币上进行欺诈证明,开发人员可以立即使用该协议,实现在比特币上的各种用例,包括比特币 Rollups、最小信任桥等。BitVM 的核心设计将计算移到链下,并在比特币区块链上实现了欺诈证明机制。6 x4 ~( w$ O0 M. k* k' G
9 L' Z( N- _% ]0 M% z. j+ H
BitVM 可以在比特币上实现欺诈证明。% V/ R9 ~. C4 p9 F% c
! E6 x  L7 i2 a' z, G  y0 o! u6 w
BitVM 白皮书于 2023 年 10 月由 Robin Linus 发布(值得注意的是,Robin 是 ZeroSync[9] 团队的一员,该项目致力于为比特币开发零知识证明系统),开发人员在过去几个月开始对该协议进行实验,并且越来越感兴趣。
  H7 M' E. f/ R' Z0 W: q9 E' n4 p' M9 n* }' q" ]
你可以将 BitVM 视为参与者事先同意遵循的分布式协议/规则集,而不是由软件实现的实际虚拟机(例如以太坊虚拟机)。类似于比特币 Ordinals[10] 的工作方式,这里存在社会共识的组成部分,参与者选择加入规则,并且这些规则在协议层面上并未完全执行。: \2 K  }1 Y4 g! `% [" F

) N7 g; i, l2 mBitVM 如此令人兴奋的原因在于它为验证比特币上的任意电路提供了挑战-响应协议——你可以在链下提出声明(例如,此证明有效),并使用比特币 L1 来验证。其中“在比特币上”是关键的,因为在比特币上构建非常困难,如果实施,BitVM 协议可以用于构建乐观 Rollups、双向 BTC 锚定等,这些可以使其他在比特币上构建的项目受益。  i8 B6 I+ C1 L( I# a9 ~! s. Q
, p+ o* F& X& S7 F' ?4 T, C1 H7 H
BitVM 解决了什么问题?! t, U+ K* p1 z2 S
3 j' n$ j: }& u/ |5 C+ S+ q
任何在比特币上构建的项目都知道与链交互有多么困难(在 Hiro,我们亲身体会到了这种痛苦)。在比特币上构建的挑战之一是,比特币没有处理复杂计算的能力。
: r: A8 s1 }4 p$ V8 q# R( W
# u. V  _6 {" Y0 X4 e- r没有智能合约。没有虚拟机。可编程性仅限于开发人员可以通过操作码[11] (操作码)构建的内容,而该功能是有限的。引入新的操作码需要 BIP 和比特币分叉(这是非常困难的)。
5 {7 |( O' S, T
, Q0 X* L; ~% {( a因此,在没有分叉和新操作码的情况下,我们只能使用有限的可编程性。在扩展比特币的情况下,这种限制主要体现在两个方面:
. j  _# A* R0 ^( r3 m; S
7 s" g8 W  n/ L( `/ @( r& ^如果要构建双向 BTC 锚定,很难从方程中去除信任。大多数 BTC 锚定今天涉及托管方,无论是单一机构还是控制多签的联盟,以处理存款/提款。有时被描述为“写问题”。在 Stacks 生态系统中,即将推出的 Nakamoto 升级[12]包括设计用于最小信任桥——稍后详细介绍。
# h; t/ ^% o8 e! h' r8 P3 R$ n6 Q( ?9 ^
如果要通过 Rollup 将计算或交易移到链下,很难在比特币本身上验证和验证链下数据。这是一个验证问题。
/ {7 M* r. y* x
- |3 p; H6 p4 {对于这两个问题,BitVM 可以通过在比特币 L1 上实现挑战/响应协议来解锁戏剧性的设计改进。
5 N6 c+ U3 u5 U
7 X4 }7 N: e4 xBitVM 如何工作?: p# K7 c5 e9 K  m1 y( g: }

& i, j7 e" a0 w5 G" r7 G: C9 |" C% G0 H将 BitVM 视为一种协议或一组规则是一个很好的方式。如果两个方在事先同意遵循这些规则(这意味着他们需要相互合作),则可以进行任意的挑战-响应游戏。理论上,这可以用于在比特币上验证/证明任意复杂的程序(这些程序的实际执行发生在链下)。
; r% F; e. [( `9 @
3 n3 Y3 _1 l0 v& }* V2 M3 H让我们举个具体的例子。' O' G6 t% b7 U- c7 N0 D7 ~8 w9 J

, @, K/ [& f1 b3 m假设 Alice 和 Bob 想玩一个抛硬币游戏。两位玩家各自在奖池中放入 0.5 BTC。正面赢得 1 BTC。Alice 拿着硬币并将首先抛硬币。Bob 希望确保 Alice 不作弊。以下是他们如何使用 BitVM 玩这个游戏(为简单起见省略了许多细节):( ]- h. ]" I0 \1 M
* S9 Z! K# c+ v" q+ I
Alice 和 Bob 同意遵循 BitVM 协议。
, B  c) w2 A# \+ W; N7 ?8 i" C% I. _6 G3 X- t6 r
假设正面由值 H0 表示,反面由值 H1 表示。Alice 通过选择两个其他值,比如 P0 和 P1,并对它们进行哈希,生成了 H0 和 H1。因此,Hash(P0) = H0 和 Hash(P1) = H1。P0 称为 H0 的“原像”,P1 称为 H1 的原像。% D$ A; @  a! K. G  s, P

# H, }* W  l3 |. eAlice 与 Bob 分享值 H0 和 H1(实际上,Alice 不可撤销地“承诺”这些哈希值,因此她不能后来声称有不同的值)。Bob 不知道原像 P0 和 P1(并且“猜测”这些值是非常困难的,因此我们可以安全地假设 Bob 不会神奇地发现这些值)。
2 I; k* ^- u: f3 U  U7 `" b" ?* N9 B% s) [( B2 V
Alice 和 Bob 预先签署两笔交易:一笔用于挑战,另一笔用于响应。
' m* {  z6 X- s& V+ R2 e$ }7 ]8 r  C7 `
在挑战交易中,Bob 将包含一个脚本,该脚本基本上检查提供的输入是否哈希为已知哈希值 H0 或 H1 之一——如果哈希为 H0,则 Bob 知道该值是正面;如果是 H1,则是反面。此外,脚本具有一个时间锁,如果在截止日期前未收到响应,则 Bob 获得奖池。
* H1 ^! g+ \( ~: W& o( O2 a$ Q
& G; ~) ], O: {* M" j9 D" o; ~在响应交易中,Alice 可以通过包含相应的原像 P0 或 P1 来“揭示”抛硬币结果。如果 Alice 未包含任何值、包含两个值或包含除 P0 或 P1 之外的任何值,则 Bob 获得奖池。否则,如果值为 P0(正面),Alice 获得奖池。0 W9 F" f0 ]: C* \# u% u

; y6 d5 E  p- D9 v1 o% I7 P现在我们准备开始游戏。Alice 抛硬币但尚未揭示结果。Bob 发出挑战交易,随后 Alice 广播响应交易。通过前面描述的脚本,在链上执行“欺诈检测”的逻辑。显然,这是一个琐碎且刻意设计的例子,但它展示了关键思想。对于一个稍微复杂的例子,考虑由一位名为 Super Testnet 的开发者设计的井字棋游戏。你可以在这里查看 GitHub 存储库[13] ,甚至今天可以玩“bit tac toe[14]”。Super Testnet 实际上向 Hiro 展示了这个游戏,你可以在下面观看:9 I6 ^: w7 ?, m; y5 Z  Y, e

& V, f# L7 |: a1 p5 u- C' UBitvm Crash Course on Youtube [15]! B0 v* m+ V9 B  @
; P, h; j. @8 y# P( `2 E
以下是游戏的高级组件:" ~9 X- K4 N" n. O0 L
  {9 V/ ]: t- O) J7 k
井字棋是一个 9 宫格。第一位玩家 Alice 最多可以走 5 步,因此有 45 个预影像和哈希(每轮 9 个)。第二位玩家 Bob 最多可以走 4 步,因此有 36 个哈希。" w5 M( {8 ]. T" h% ~; F

& x8 H: I  o. ~9 z: G井字棋有 3 种“作弊”方式:玩家可以在他们的回合放置多个 X / O;玩家可以覆盖他们先前使用过的方格;玩家可以覆盖对手先前使用过的方格。因此,挑战/响应协议围绕检测这些情况构建。( R; Z; @2 b9 K4 l
6 [% Q9 |" O: K/ I# q8 R4 V9 O
挑战交易将迫使另一位玩家“揭示”他们在哪个方格放置了 X 或 O。
) @7 ]( O( y9 _0 @/ l7 P
1 z  e7 l, l7 L9 A% U7 \6 _响应交易将具有一个脚本,该脚本将针对上述所有 3 种情况进行检查:如果未检测到欺诈,则游戏继续(或游戏结束,因为有人获胜)。如果检测到欺诈,则挑战者获胜,证明者失败。/ ^0 J" O* v2 `& d

( K& o. e6 V7 O! m+ R, x( }$ ]& y请注意,在这两种情况下,欺诈证明是手工制作的,并专门为该用例设计:井字棋的欺诈证明对于抛硬币或其他任何事情都不起作用。- H7 ~* ?" ]. B9 P. x4 y5 O4 _8 g

* b$ M$ W) M( B回到大局,BitVM 白皮书描述了一种通用方法:针对任何程序,它提供了构建该程序的有效性证明的一种方式。关键见解如下:! F* b# L9 ~4 Q. h( F5 o
+ g# H! L: y( ^( v$ I" @4 s
从抛硬币的例子中,我们看到了如何验证单个比特:让我们称之为“比特承诺”证明。
% z- b9 W  ?" g: r9 X! f) ]" l- U( Z2 k
有了比特承诺,我们可以构建逻辑门承诺:考虑布尔 AND / OR 运算符 - 针对任何两个输入(每个取值为 0 或 1),该运算符定义一个单一输出。因此,使用 2 个比特承诺作为输入和 1 个比特承诺作为输出,我们可以为任何逻辑门创建有效性证明。BitVM 白皮书使用了一个 NAND 逻辑门。
) X1 C# W. s6 k: ?- h4 s, \. A/ C4 r. G6 e! e4 g; a3 {
最后,任何任意计算都可以使用一系列逻辑门来表示。BitVM 白皮书将其称为“二进制电路”。这样的电路可以使用 Tapscript 有效地表示,每个 tap 树中的叶子代表一个单一的门承诺。9 c/ ?, c7 k' \
& ~' Y! }+ T+ n; E! ~1 V
然后,挑战/响应协议基本上涉及验证特定门承诺的输出。在最坏的情况下,你可能需要验证每个单个门的输出。: f% W: W! y- t+ y

! }; a  S1 _8 B6 P$ G3 J查看这个存储库[16] ,了解将任意程序转换为 tapleaf 电路的一种方法。
7 H8 `0 D+ }6 Y4 F8 |
+ J* E" j: L# m/ t8 r$ T9 S  KStacks 如何适应?. N8 z# }8 b3 }4 C) ~2 U
1 |* B3 W/ @" j+ e0 g4 i) T
BitVM 在 Stacks 生态系统中的两个明显且最相关的应用是:. m: @  l2 x& x# s* L3 x  C0 r* `+ N
# ]0 y6 b( X0 j4 x4 f6 {+ P/ S
改善 sBTC 的信任假设
$ b& T3 h. z9 A1 b% b/ i2 I/ b5 M5 w+ X7 F2 y: [
为比特币上的 Stacks 块添加有效性证明
5 `: Q3 K& t  v# D7 \# u
7 F3 p9 R: G6 n. U" G/ s: F6 w/ \/ {为什么选择这两个应用?当前的 sBTC 设计[17]已经是正在开发中的比特币最安全、最小化信任的双向锚定之一。尽管如此,在安全模型和信任假设[18]方面仍有改进的空间。与要求至少 30%诚实签名者或信任一组高声誉签名者不同,基于 BitVM 的方法理论上可以使 sBTC 只需一个诚实参与者即可运行。
+ D# ?: f5 g4 `2 n" N  R0 {) \# b% Q. K) T
同样,虽然每个 Stacks 块在比特币上结算,但当前设计仅允许你在拥有链状态的一份副本时独立验证 Stacks 数据。如果使用 BitVM,Stacks 块还包括有效性证明,那么你不仅可以检查完整性(给定 Stacks 块中的数据与存储在比特币上的哈希一致),还可以检查正确性(你可以通过查看存储在比特币上的证明验证给定 Stacks 块中的交易是否实际执行正确)。换句话说:这将使 Stacks 能够发展成为比特币上的乐观 Rollup。
, f1 {" Q; x  i% G$ |0 P  b2 ]# h, F  c% ?6 B5 Y
如何利用 BitVM 实现这些应用的具体方法需要进行更多的研究和开发。但我们可以尝试在高层次上勾勒出一些想法。# @) p6 L6 W& i1 r/ H% Z6 K: H
! V* Y( |& X1 _) ?9 g- ?4 J4 ]9 M
BitVM 与 sBTC7 K$ T. J/ P( U5 G

# T! f9 S) ?, T2 O. X6 B考虑 sBTC 的例子:锚定进程非常简单,只需广播比特币交易即可完成。然而,在当前设计中,锚定退出过程依赖于签名者来处理请求(在 Stacks 上)。这带来了一些约束:4 Q- t0 T% k$ r8 P2 c8 ?

* O- T% e% N' a退出可能需要时间,这取决于有多少签名者离线/诚实。* i& l% n5 N6 y. r/ s6 h/ z8 R

6 b$ I) A; K9 e/ k1 ]. R; j你需要信任这个签名者网络,更广泛地信任整个 Stacks。
% e; i7 `( s5 U8 h/ C0 s/ c! Z0 ]! N! N2 }/ j: u
如果改为(或可能还要)在比特币上生成一个有效性证明并使用 BitVM[19],那么:
! z3 W& B% v2 }  @& V' }; I+ s& S1 j8 ^$ U( m, G9 [$ e
退出可以进行乐观处理(因此,在快乐路径上,可以更快地处理)。
5 i6 }4 y- Y' X* u* |
4 J/ g0 B4 Z2 q" F* N+ [该锚只需要一个诚实参与者即可运行;你不需要信任签名者网络的 30%。
1 ~1 J% S* I& K  G
* ~& j$ S( c( _/ i. G关键是确切地找出如何构建有效性证明。BitVM 白皮书中描述的蛮力方法可以奏效,但可能会导致一个非常庞大的 tapleaf 电路(数十亿个节点)。这反过来意味着任何挑战都将需要很长时间(可能需要数周或更长时间),
- O# `# F4 x" k: n  O9 V
' ~6 @2 h! u% w$ Z1 O更不用说在注意力和资源(交易费用!)方面的成本。正如我们在井字棋的例子中看到的,可以构建更简洁的证明,专为特定用例定制,类似的方法可能对这种情况更有效。5 K! D1 m7 ?# {$ w7 R

  d5 ?& y/ P, Z' `5 A, iBitVM 与 Stacks! _1 U, R. s# S+ ]0 J" q  ~8 T: }
8 C1 Q* _+ s8 w* ^
至于整个 Stacks 块的有效性证明,有很多值得探索的设计空间。例如,证明是以单个交易的粒度还是整个块的粒度还是介于两者之间(比如构成因果依赖链的交易)?是否可能采取渐进式方法,比如首先为简单的代币转账
3 B1 o% }9 t  t8 i  J' @# k: u' Q1 p" W9 o
生成证明,然后逐渐添加 Clarity 合约?这是否是比特币区块空间的良好利用,因为 Stacks 矿工和网络参与者已经有经济激励来维护 Stacks 链状态的完整历史?
& S+ X: Q* h* P, v
' @% Q; A  T6 k% H6 U3 g结论
. U- t9 o7 ]1 w, r5 Y* m2 E2 X5 b
BitVM 是一个令人兴奋的主题,需要进行比博客文章更多的研究、思考和实验,但我希望这有助于阐明比特币中最近一些令人兴奋的发展之一。- I- v% p% q$ S1 m& V
+ J# f2 b6 P) q4 C: u5 K" [

作者: 22301    时间: 2024-4-27 08:51
比特币也是很火爆的啦。
作者: 徐子    时间: 2024-4-27 09:29
这一次方法也的确超级好的胜利来的啊
作者: 丁小荷    时间: 2024-4-27 09:32
我看到你的分享很非常棒,可以要给一个赞。
作者: 知行合一    时间: 2024-4-27 09:34
介绍各种玩法是不能错过学习的啦,感谢您介绍的玩法
作者: 小梦    时间: 2024-4-27 09:37
理论尽管看起来很牛逼,或许我还是不会
作者: 朱古力    时间: 2024-4-27 09:38
学学这之类的经验分享,前人总结的。
作者: 小希哥    时间: 2024-4-27 09:38
这样的理论还是肯定多多学习一下。
作者: xiaoyi    时间: 2024-4-27 09:42
我现在还是研究一下理论打法,感谢楼主的分享,我也来学习
作者: 百战    时间: 2024-4-27 09:43
此次方法可以赢到一天的生活费我也满足了。
作者: yumi666    时间: 2024-4-27 09:44
各种方法也是值得去看看收藏下的啦。
作者: 春娇与小智    时间: 2024-4-27 09:45
每种游戏的吧也是关注一下了
作者: drogan    时间: 2024-4-27 09:45
老哥的理论打法,搞起上来确实能控制振幅
作者: stareshiny    时间: 2024-4-27 09:46
老哥这个分享读起来不错,赶紧收藏起来。
作者: 老龙口    时间: 2024-4-27 09:46
理论实践得好,赢钱的机会就来了。
作者: linxiaoshan888    时间: 2024-4-27 09:46
具体的理论打法还得让朋友来解答啊
作者: 护国石柱    时间: 2024-4-27 09:49
你的介绍肯定可以赢,就是一个好心态。
作者: hong29    时间: 2024-4-27 09:50
看了这个游戏我感到也是要游戏起来了的哦。
作者: bishao    时间: 2024-4-27 09:52
这样的理论打法是十分科学很有道理哦,我也来学习
作者: 心随你动    时间: 2024-4-27 09:52
每一种游戏也是值得去看看关注下的啦。
作者: liuxin960    时间: 2024-4-27 09:52
今天您介绍要用这个技巧去赢下多少的呢
作者: 南相楚    时间: 2024-4-27 09:53
分享的是很好啊,得找时间看一下啊!
作者: anzizhong    时间: 2024-4-27 09:55
这个理论或许是大伙实现的效果。
作者: 一路顺风    时间: 2024-4-27 09:55
也是谢谢老哥的分享和介绍了,不容易的!
作者: 星星知我心    时间: 2024-4-27 09:57
这个游戏有赢钱还是最好的结果了呀。
作者: wuzhaoshichao    时间: 2024-4-27 10:01
麻烦的分享才是好玩意儿,找时间学习一下都不错的。
作者: wodezhuanyong    时间: 2024-4-27 10:02
游戏最后一段话觉得是有感觉的,但是在我面前就难以实现,毕竟好运太差了。
作者: 想要水果机    时间: 2024-4-27 10:02
方法最后一段话觉得是有感觉的,但是在我面前就难以实现,毕竟时运太差了。
作者: leconer    时间: 2024-4-27 10:02
我的成果的功劳都是老哥像这样的理论分享。
作者: 中大奖    时间: 2024-4-27 10:02
老哥的理论打法还是很好啊,来收藏下了解下了
作者: jslinen    时间: 2024-4-27 10:04
谢谢楼主的理论分享,还是可以了解到许多的。
作者: 不傻不成气候    时间: 2024-4-27 10:04
今次游戏在论坛的运气还是值得肯定的.
作者: 不要脸最大    时间: 2024-4-27 10:07
使用这个方法有盈利就是最好的结果了呀。
作者: 越前龙马    时间: 2024-4-27 10:08
什么游戏都有技术,楼主介绍这个技巧这个也不例外
作者: gkfbuw    时间: 2024-4-27 10:11
这个理论打法说起来是绝对有效的,我也来学习
作者: 小夏Sherry    时间: 2024-4-27 10:11
这次游戏也确实很不错的胜率来的啊
作者: 不洗脸都帅    时间: 2024-4-27 10:13
辛苦的介绍也是要收藏,技术肯定是有用的
作者: 大吉大利    时间: 2024-4-27 10:13
基础理论也是要学习的了哦
作者: 万家灯火    时间: 2024-4-27 10:18
知道这个方法我非常也是要学习起来了的哦。
作者: 强强强123    时间: 2024-4-27 10:19
楼主介绍这个玩法还是需要多多的关注一下的。
作者: 赌神归来    时间: 2024-4-27 10:19
这样的分享是应该收藏起来,然后学习一下的。
作者: 一帆风顺发    时间: 2024-4-27 10:19
你的理论打法不错的呀,赢钱了应该是打法对你有用哦~来学习下了解下了
作者: 高文胜    时间: 2024-4-27 10:20
今次方法在这个帖子的运气还是值得肯定的.
作者: 洋森    时间: 2024-4-27 10:20
感谢您介绍的技巧都不能无视技巧啊
作者: mxsj2016k    时间: 2024-4-27 10:21
你介绍技巧也是要学习一下的了
作者: 我的花园    时间: 2024-4-27 10:21
其实每个方法的吧~这个也是收藏关注一下了
作者: Lhrlhrgo    时间: 2024-4-27 10:23
不错的想法,感谢分享。
作者: lvaeyou    时间: 2024-4-27 10:25
介绍各种策略的玩法,值得好好收藏哦
作者: ouliangzhong    时间: 2024-4-27 10:29
老哥估计也是一个理论很内行的玩家,谢谢你的分享。
作者: 林武风    时间: 2024-4-27 10:30
谢谢楼主的分享,好人一生平安。
作者: 舞出精彩    时间: 2024-4-27 20:06
有效性证明的还是要看好些啊
作者: rainwang    时间: 2024-4-27 22:59
比特币引入这个东西干嘛呢,有啥意义吗?
作者: yubuluowang    时间: 2024-4-28 14:49
引入比特币还是非常的不错吧
作者: 爱美的女人    时间: 2024-4-29 10:28
那么是要在看是有引入什么以
作者: 如梦的生活    时间: 2024-4-29 10:29
看来也是有很大的变法的了
作者: 如梦的生活    时间: 2024-4-29 10:31
这个理论也是要看一下的了
作者: 无名的赌徒    时间: 2024-4-30 19:12
有效的证明了,可以了解一点的
作者: 赚钱小样    时间: 2024-5-1 13:45
比特币这个也是要看一下如何了
作者: 爬格子的瘦书生    时间: 2024-5-1 16:40
这样是不是更加可靠一些




欢迎光临 优惠论坛 (https://www.tcelue.tv/) Powered by Discuz! X3.1