美文网首页共读《精通比特币》
共读《精通比特币》第19天——第5章5.6.2 脚本语言5.6.

共读《精通比特币》第19天——第5章5.6.2 脚本语言5.6.

作者: 且听风吟闲翻书 | 来源:发表于2018-08-16 08:44 被阅读7次

    他们说,靠音乐的力量,造一个桃源。我说,让我们靠文字的力量,造一个桃源。

    比特币,究竟是一场颠覆现有金融体系的伟大互联网金融试验?还是一个由极客主导的庞氏骗局?比特币到底是什么?我们能做的是人云亦云还是有自己的独立判断?

    一起来读《精通比特币》,全面了解比特币的工作原理,从而理解其他数字货币,走向数字货币新旅程。

    每天早上10:24发文,欢迎关注支持,一起加油!

    《精通比特币》一书,英文原名为Mastering Bitcoin ,本书中英文电子版链接如下,点击蓝色字可跳转阅读:

    1. 英文原版:Mastering Bitcoin
    2. 知笔墨中文版,第5章 交易

    今天我们一起来读《精通比特币》一书的第5章交易第6节的2 、3、4小节

    5.6 比特币交易脚本和脚本语言

    比特币客户端,通过执行一个用类Forth脚本语言编写的脚本,来验证比特币交易。当一笔比特币交易被验证时,每一个输入值中的解锁脚本,都被与其对应的锁定脚本,同时互不干扰地执行,从而查看这笔交易是否满足使用条件。

    简单的说比特币世界里的钱,是一串数字签名链条。

    我们把这一串数字签名链条,叫做一个数字货币。

    数字货币,也就是这一串数字签名链条,可以理解为一个巨大的活页账本。

    第一页写的是『中本聪的钱』;第二页写的是『中本聪把钱给张3啦』和中本聪的亲笔签名;第三页写的是『张3把钱给李4啦』和『张3』的签名……

    每次交易,在这个活页账本上再加上一页,让这个钱的上一个主人,写上把钱给了谁,以及附加上自己的签名,这样就使得数字货币得以流转起来。并且,这期间活页账本上再加上一页,每一步变化都由比特币网络中的所有人,做了记录和见证,因而无法造假,或者因为造假成本太大,比如黑掉全网51%的账本,才能改变之前的账本,而变成事实上的无法造假。

    比特币交易验证,并不基于一个不变的模式,而是通过运行脚本语言来实现。这种语言,可以表达出无数个条件变种。这也是比特币作为一种“可编程的货币”所拥有的权力。

    昨天我们学习了5.6.1 脚本创建,了解了锁定与解锁脚本,今天我们继续学习第六节余下内容。

    5.6.2 脚本语言

    比特币脚本语言使用的数据结构,被称为栈。栈,可以被理解为一堆卡片。

    栈,允许两类操作:入栈和出栈。

    入栈,是在栈顶部增加一个项目,出栈,则是从栈顶部移除一个项目。

    我们来看一个脚本的简单例子,用来验证2+3是否等于5:

    2 3 OP_ADD 5 OP_EQUAL
    

    OP_ADD,是算术加法操作符。

    它从堆栈移除最顶部的两个数2和3,将二者相加,并将相加之和,再推送到堆栈。

    OP_EQUAL,用来验算两数之和,是否等于5。

    二者相等,则推送,用数字1表示;二者不等,则推送为,用数字0表示。

    上面这个简单算术运算,是一个有效的锁定脚本,这一行代码简单模拟了锁定交易输出的比特币代码。

    在比特币交易中,也同样处理,如果堆栈顶部的结果显示为真(标记为{0×01}),则交易有效。如果堆栈顶部的结果,显示为假(0字节空值,标记为{}),或脚本执行被操作符禁止,则交易无效。

    详见 附录1:交易脚本的操作符、常量和符号

    5.6.3 图灵非完备性

    比特币脚本语言包含许多操作,但都故意限定为一种重要的方式——没有循环,或者复杂流控制功能以外的其他条件的流控制。从而保证了脚本语言的复杂性有限,交易可执行的次数也可预见,这就是我们常说的图灵非完备性

    脚本并不是一种通用语言,它是一个受限制的语言。

    施加的这些限制,就能防止交易激活机制,被人当作薄弱环节而加以利用。确保该语言不被用于创造无限循环或其它类型的逻辑炸弹,这样的炸弹可以植入在一笔交易中,通过引起拒绝服务的方式攻击比特币网络。

    5.6.4 非主权验证

    比特币交易脚本语言,是无国家主权的

    也就是,没有国家能凌驾于脚本之上,需要执行脚本的所有信息,都已包含在脚本之中。

    一个脚本,能在任何系统上以相同的方式执行。

    如果某个系统对一个脚本进行验证,可以确信的是,每一个比特币网络中的其他系统,也将对其进行验证,这意味着一个有效的交易对每个人而言都是有效的,而且每一个人都明白这一点。这种对于结果的可预见性,是比特币系统的一项重要良性特征。


    第五章全部内容思维导图如下:

    第五章第六节全部内容到此结束,明天我们开始《5.7 标准交易》的学习。

    今天就到这里吧,明天我们继续,祝大家夏天快乐!

    286/365
    20180816首发简书


    参考文献:

    1、 知笔墨《精通比特币》中文

    2、比特币白皮书英文原版:Bitcoin: A Peer-to-Peer Electronic Cash System

    3、比特币白皮书中文版:比特币,一种点对点的电子现金系统

    4、《15分钟彻底读懂中本聪比特币白皮书》作者:任鑫Mars

    5、Scalers:《比特币白皮书解析 | 从零开始区块链》

    照搬的信念,无法抵御波动的冲击,只有行动铸就的思想体系,并在行进中不断修正,才能让我们不断变得更好。——Scalers《投资赚钱就是信念变现》

    相关文章

      网友评论

        本文标题:共读《精通比特币》第19天——第5章5.6.2 脚本语言5.6.

        本文链接:https://www.haomeiwen.com/subject/xbjibftx.html