ZeroSync是一个通过使用零知识证明来扩展比特币的协会。近日ZeroSync开发者Robin Linus发布新的比特币提案BitVM,BitVM为未来比特币应用程序开发打开了非常有趣的大门。BitVM可以启用几乎任意的计算,并利用该计算来强制执行比特币链上的操作。
BitVM不需要对比特币进行任何共识更改。诀窍在于将所有这些逻辑移至链下,并且如果对方声称不诚实的结果,能够在链上挑战计算的一些步骤。简而言之,BitVM将以一种可执行的方式,即时地将任意的图灵完备计算引入比特币。
逻辑门基础知识
为了真正理解该提案背后的机制,我们需要了解一些有关计算的物理和逻辑基础知识。
每个人都知道,计算机内部只是传递各个1和0来执行所有操作,但这是如何工作的呢?这意味着什么?计算机中的每个芯片核心都由数百万或数十亿个逻辑门组成。
这些小设备接收一个或两个信息位(1或0)作为输入,并对它们执行简单的逻辑操作,以产生1或0的输出,然后将其馈送到下一个逻辑门中。
有许多不同类型的逻辑门,有些只是接收一个位并输出相同的数字( buffer gate,缓冲门)。其他的接收一个位,并输出与接收到的相反的值(NOT门)。有些接收两个位,并且当两个输入位都是1时输出1,其他任何组合输出0(AND门)。最后,至少在下面的示例列表中,有一个门接收两个位,并在两个输入都是1时输出0,并在所有其他位组合上输出1(NAND门)。
NAND门真值表
NAND门的有趣之处在于你可以仅使用NAND门构建任何其他类型的逻辑门。它肯定不像只制作其他门的特殊版本那样高效,但它能完成任务。因此,鉴于你可以用NAND门构建任何逻辑门,你可以用NAND门构建任意计算的电路。
在比特币上构建NAND门
现在,如何使用现有的比特币脚本构建一个NAND门呢?用哈希锁和另外两个你可能不熟悉的操作码:OP_BOOLAND和OP_NOT。
首先,让我们看看哈希锁。创建一个分支脚本(branching script),可以通过两种方式之一花费,揭示哈希锁A的preimage,或者揭示哈希锁B的preimage。路径A会在堆栈上放置数字1,而路径B会放置数字0。
这使你能够通过提供哈希锁的preimage来“解锁”一个位,以用作我们正在构建的NAND门的输入。你只能使用其中之一完成脚本,而不能同时使用两者,我们很快会讨论其中的原因。这个简单的原语只是为了允许用户一次承诺使用一个位于NAND门脚本中。
现在回想一下NAND门是什么,它接收两位并输出一个。如果输入位都是1,则输出必须为零。如果输入位是任何其他组合,则输出为1。你可以使用上面的两路径哈希锁技巧承诺两个输入,以及输出,只需要一种验证输出是否正确的方法。这就是OP_BOOLAND和OP_NOT发挥作用的地方。
在选择要分配为输入的值和要验证的输出值之后,你可以利用一个巧妙的技巧。OP_BOOLAND与NAND执行的操作正好相反,如果两个输入都是1,则输出为1。其他所有情况输出0。OP_NOT获取输入的任何值并将其反转,1变为0,反之亦然。这使你可以在脚本堆栈上对两个输入值执行NAND操作。然后,使用OP_EQUALVERIFY验证与哈希锁技巧中承诺的输出相匹配的NAND操作的实际输出。如果脚本在堆栈上创建的实际NAND操作输出与用户声称它将产生的输出不匹配,则脚本将无法通过评估。
现在,你已经在比特币脚本中实现了一个NAND门,以一种实际上强制执行虚拟NAND门的方式。
引入任意计算
那么,既然现在可以在比特币脚本中创建一个单独的NAND门,那么可以做什么呢?你可以创建一个完整的tapleaf树,覆盖任意计算的每一步,就像实际的逻辑门为制造计算机处理器一样。
为了完成复杂的计算,人们将逻辑门连续放在一起,这样一旦将初始输入送入第一个门,每个门的输出就直接作为另一个门的输入。通过在门之间适当地绑定哈希锁,我们在这里完成了同样的事情。即,如果一个门脚本在值C1或C2的输出之间有一个选择,系列中的下一个门将在匹配的输入中使用相同的哈希锁值。这样,有人欺骗关于上一个门的结果的唯一方法是揭示另一个C哈希锁。我们可以将其用于惩罚机制。
两个用户选择他们想要参与的任何计算,并将其分解为仅使用NAND门逐个进行计算的电路。然后,他们采用并对电路中的每个单独门进行编码,每个电路步骤都有适当的哈希锁选择,并将其编码到可以锁定单个UTXO的tapleaf树中。有一个版本的树是供试图证明他们正确执行程序的用户使用的,另一个版本是供验证程序是否正确执行的人使用的。现在,他们要做的是预先签署一系列用于在链上执行的挑战和响应游戏的交易。理想情况下,整个计算在链下运行并得到验证,用户通过共同花费资金将其结算到基于计算结果的适当人员。然而,如果证明者停止合作,验证者可以在链上对其提出挑战。
第一步是将资金加载到方案中。一个脚本路径将允许证明者在时间锁定后单方面主张资金。下一个脚本路径将允许验证者在可以展示当前门的任何输入或输出的可能值的两个preimage的情况下立即索赔资金。下一个脚本路径将允许验证者强制证明者在链上执行任何特定的门合约(即在链下停止合作后的门)。该路径要求验证者发布另一个只有他们拥有的哈希锁preimage,作为对证明者每个门挑战的锁。这保证了证明者只能执行该特定的门。验证者对该路径的预签名交易将其花费到一个脚本中,该脚本具有以下脚本路径:验证者在时间锁定后取走硬币,或证明者执行门并将硬币花费回到类似于第一个的脚本,证明者在时间锁定后可以索赔资金,验证者可以立即索赔资金,如果向任何单个哈希锁对显示两个preimage,或者验证者可以再次挑战证明者。
这个方案只需进行几轮就可以保证合约正确结算。要么验证者用完预签名交易以继续挑战证明者,因为证明者一直在展示每个门的正确执行,证明者会主张这笔资金;或者,证明者不回应挑战,因为这会使他们受到惩罚,而验证者会在时间锁定后索赔资金;或者证明者在链上错误执行了一个门,验证者立即索赔资金。理想情况下,一切都在链下发生,并且通过合作解决,但是如果合作失败,那么在链上进行几轮后,除了正确结算合约之外,没有其他结果。
未来之路
毫无疑问,这样的提案将在未来的几周内讨论。
需要处理和生成的数据量是巨大的。我们正在讨论叶子编号达数十亿的tapleaf树,并且至少有几跳的预签名交易以确保准确的结算。
链下数据管理成本绝对是巨大的。
另一个重要的限制是,这个方案只能与两个参与方一起使用,一个扮演证明正确执行的角色,另一个扮演验证正确执行的角色。
虽然未来的研究有可能找到将其推广到更多参与方的方法,但至少我看不到完成这一点的明确途径。而且,即使解决了这个特定的问题,我也看不到摆脱这是一种互动协议的方式,该协议要求在合作情况下所有参与方始终参与。
尽管如此,这确实是一个非常有趣的演示,展示了如何使用复杂的程序来强制对比特币进行有条件的控制。在单个叶脚本中可以打包多少逻辑,或者使用不同的操作码可以使整个方案更加高效,这方面肯定还有优化的空间。通过对基本操作和博弈理论平衡的简单拆解,可以使用比特币强制执行任意计算。
本文观点仅供参考,不构成投资建议。币圈波动大,投资需理性。
欢迎关注笔者,在留言区分享您的观点!
“机会永远是留给有准备的人”,我们要对将来的机会做好准备。但是应该怎么买,什么时候卖呢?判断什么时候买,什么时候卖,没有人能够准确地做出判断,在这种情况下我们应该如何去赚取更多的盈利?笔者这边建议直接使用智能量化交易软件就可以全自动赚钱了。如果你没了解过量化交易,或者不知道市面上哪些智能量化比较好的话,这里笔者推荐CCR智能量化机器人,CCR智能量化机器人是适用于币圈现货的一款全自动炒币机器人。
CCR智能量化机器人,兼容国际主流交易平台,深度挖掘全球各大交易平台历史数据,内置核心算法与技术,帮助您在现货市场如鱼得水,熊牛通吃。
以官方观摩账号10000USDT仓位为例,启动CCR机器人后每月追踪数据,数据真实有效,支持观摩。
CCR机器人的优势是什么?
1、兼容主流平台
您的资金在全球主流交易平台,安全无忧,不用担心本金安全。
2、7*24小时无休,全自动执行
机器人在云服务器上24小时运行,不断电不断网。初始化设置参数之后,机器人将按照策略进行自动交易。达到设定条件自动买入或者卖出,无须长时间盯盘。
3、制定交易策略与仓位分配
机器人内置多种交易策略,从“保守-”到“激进+”,满足不同的风险类型。设置策略后,机器人将智能分配每次进单的仓位和条件,严格执行交易策略,交易补单策略,根据当前行情,云大数据实时调整。
4、同时监控多个交易品种
可支持上百个交易币种同时运行交易策略,每个品种独立线程,自动监控报价深度、策略计算,实时监控交易条件,保证交易执行的即时性。
5、智能追踪止盈,让盈利飞一会
设置触发条件,盈利比例达到条件之后,机器人自动触发追踪止盈。盘面报价一直涨的情况下,盈利比例不断突破最高值;价格回落时,触发平仓条件,止盈出场。
6、一键设置策略,一键启动
博森一直在努力降低量化交易的操作难度。在机器人中,填写仓位、品种数量,选择风险类型,即可一键设置,一键启动。数字资产交易新手,轻松上手,快速使用。
7、追踪建仓,延迟补单
针对下跌趋势,需要回调1%再建仓,即如果达到了算法的建仓点,行情继续下跌,自动延迟补单,做到尽可能的低位补单,让交易成本更低。
8、智能防瀑布
5秒内行情瞬间瀑布式暴跌,即暂停补单,让交易更安全。
9、规避客观情绪影响,策略严格执行
信号严格判断,规避人工主观情绪的影响,不符合条件坚决不补单,不交易,不平仓。
10、官方推荐币种
不懂币,不知道怎么筛选币,可以选择官方推荐币种,不用担心归零,不用担心空气币,都是优质币种。
11、人工与智能的完美结合
无需人工干涉,全自动智能交易,用户手动购买的币可以托管给机器人监控卖出,也可以根据自己的想法手动修改机器人的参数指令,让收益更高,赚取更多利润。
12、网格止盈策略
机器人同时监控整体策略和各订单盈亏状态,即使未达到策略整体止盈条件,也可以收单获利,若行情在尾单附近震荡,则可能不断收益,减轻持仓负担。
我是小将,专注币圈量化交易软件,从2018年至今,不抽成、不分润,收益和运行一直都很稳定,感兴趣的朋友欢迎一起交流~bosen12306