美文网首页区块链区块链研习社一分钟读书俱乐部
一分钟读书俱乐部(四十一):《区块链技术驱动金融》比特币脚本语言

一分钟读书俱乐部(四十一):《区块链技术驱动金融》比特币脚本语言

作者: 全职高手一叶之秋 | 来源:发表于2019-02-16 13:18 被阅读6次

    原文精选:这个脚本语言是为比特币开发的。在比特币里只叫作“脚本”。它和另一种Forth语言有很多相似的地方,Forth是一种简单的堆栈式编程语言(stack-based programming language),但你并不需要先学习Forth语言才会使用比特币的脚本语言。

    比特币的脚本语言设计原则就是简明扼要,并内生地支持加密操作。比如,脚本里面有目的性的指令用来计算哈希值和检验签名。这种脚本语言是堆栈式的,意味着每个指令只被执行一次,是线性的,无法循环执行。所以指令的数目给了我们一个执行时间与内存使用的上限。这个语言不是图灵完备的,意味着不能随意运行强大函数功能。但这是有意设计的,因为矿工需要去执行这些网络上任意交易提交者所递交的脚本,设计者并不希望让他们提交可能无限循环的脚本。


    读书笔记:

    1,比特币的脚本语言设计原则就是简明扼要,并内生地支持加密操作。

    2,脚本语言是堆栈式的,意味着每个指令只被执行一次,是线性的,无法循环执行。

    3,设计者并不希望让矿工可以提交可能无限循环的脚本。


    原文精选:执行比特币脚本只能产生两个结果:要么被成功执行,这种情况下,交易有效;要么脚本执行出现错误,这种情况下,整个交易无效,拒绝记入区块链。

    这个脚本语言十分简单。只有256个指令,每个只用一个字节。256个指令中,有15个目前不可用,有75个被保留还没有具体定义(以后或许可以被用来扩展),剩下的才是可用的。许多在其他语言里常见的基本指令这里面都有。例如,基本的算数、逻辑语句(如If-then)、抛出错误、过早返回等。而且,还有密码指令,比如哈希函数语句、签名验证语句,还有一个重要的特殊指令是“CHECKMULTISIG”——可以查证多个签名。表3.1列举了一些比特币工作控制语言里的常用语句。

    表3.1 一些比特币脚本工作语言中的指令及其功能



    读书笔记:

    1,执行比特币脚本只有两个结果,要么被成功执行,交易有效;要么脚本执行出现错误,交易无效。

    2,脚本语言十分简单。只有256个指令,每个只用一个字节。


    原文精选:CHECKMULTISIG指令要求指定n个公钥和一个参数t(作为一个临界值)。这个指令正确执行的条件是:在n个公钥中,至少可以选出t个现时有效的签名。我们在本章3.3节会示范这个指令的用法,但现在我们需要认识到这个原生指令是非常强大的,它以一种极其精练的方式协助我们查验交易中的多方签名。

    不过,目前比特币多方签名功能实现过程中有一个缺陷,CHECKMULTISIG指令在执行的时候会返回一个没用的值,而且系统还必须要安排一个堆栈中的变量去储存它,然后再忽略掉。由于修复这个缺陷成本很高,两害相权取其轻,这个缺陷就一直没被修复,我们在第3章3.6节会再做讨论。但目前,这个程序缺陷也算是比特币的一个特性。

    读书笔记:

    1,CHECKMULTISIG指令要求指定n个公钥和一个参数t(作为一个临界值)。

    2,目前比特币多方签名功能实现过程中有一个缺陷,CHECKMULTISIG指令在执行的时候会返回一个没用的值,而且系统还必须要安排一个堆栈中的变量去储存它,然后再忽略掉。

    3,程序缺陷也算是比特币的一个特性。


    一叶之秋带你一分钟速读经典书籍,每天一分钟(只需阅读读书笔记部分),天天获新知。


    一叶之秋——非著名股票分析师

    CCTV证券资讯频道特邀分析师

    币乎,币问内测作者;区分认证分析师

    陀螺财经,币快报专栏作家

    《区块链编年史》 《区块链重塑未来》系列作者

    量价时空战法体系,一分钟读书俱乐部创始人

    公众号:区块链项目评测

    007er

    相关文章

      网友评论

        本文标题:一分钟读书俱乐部(四十一):《区块链技术驱动金融》比特币脚本语言

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