考研共济网,考研咨询,硕士研究生招生简章,研究生录取信息
位置:主页 > 考研笔记 >
『最新文章』
两百余名海内外专家聚哈探讨
内蒙古自治区人民政府关于暂
最大限度释放人才红利 全力做
北京师范大学2015年计算机应用
计算机应用技术国家重点(培
听懂高管情绪能获得收益?雾
访中国人民大学财政金融学院
四川中医药高等专科学校承办
『热点文章』
攀枝花学院医学院94级社区医学
中国科学院院士张景中:我想让
山东万杰医学院2014年考研、专升
意大利汉语热升温 近300家中小学
天津理工大学2015年GCT工程硕士招
刘宁在全省领导干部学习宣传贯
在职公共管理硕士(MPA)英语短语
成都理工大学一教师被指骚扰女

《精通比特币》笔记三

2018-01-13 14:21     来源:www.kaoyantj.com

一直在说区块链是一系列技术结合后的新的技术架构,那么这里分别介绍下这些相关技术,也涉及到一些扩展开去的相关内容。

虾说区块链-48-《精通比特币》笔记三

区块链-《精通比特币》笔记三:

电子书阅读《精通比特币》第二版地址:

bitcoin脚本语言基于堆栈的语言:使用堆栈数据结构。

堆栈:一种数据结构,允许push、pop,push在堆栈顶添加一个项目,pop在堆栈顶删除一个项目,堆栈操作对象为堆栈最顶端的项目,理解为后进先出(last-in-first-out)。

脚本语言执行顺序:从左至右执行每个项目。操作码(operators)从堆栈中推送或者弹出一个项目,处理后,将结果推送到堆栈上。

条件操作码:conditional operators对一个条件进行评估,产生一个boolean结果。

脚本操作:op_add一个简单的加法操作,数字相加后结果推送到堆栈,op_equal验算操作结果。在验证bitcoin资金所有权的时候,验证解锁脚本和锁定脚本之间的bool值。举例:3 op_add 5 op_equal 那么2是一个正确答案,2 3 op_add 5 op_equal.脚本验证比例中子要复杂。

解锁脚本和锁定脚本的执行:现在bitcoin版本中,堆栈先执行解锁脚本,执行正常复制主堆栈,再执行锁定脚本,解锁脚本中执行的数据复制到堆栈中执行锁定脚本,结果生产一个bool值,满足条件则执行完成。理解交易上,对一个UTXO的有效授权。

P2PKH:pay-to-public-key-hash,在bitcoin网络中交易花费是P2PKH脚本锁定的输出,输入包括一个锁定脚本、将输入锁定为一个hash值,理解为bitcoin的地址,那么P2PKH脚本锁定的输出可以提供一个公钥和其对应私钥创建的数字签名来解锁。

解锁脚本和锁定脚本匹配:在交易中,执行组合验证脚本后bool值为true,说明公钥hash值和私钥匹配。

数字签名:bitcoin中使用ECDSA算法,bitcoin中数字签名三种用法:其阿明证明私钥资金所有者,授权证明不可否认,签名证明交易(保证不能被任何人修改)。

数字签名的工作模式:数字签名本质上是一种数学方案:一部分使用私钥在交易创建时创建签名,另一部分允许任何人来验证签名算法、公钥、给定的消息。数字签名通过ECDSA算法来实现,((Sig=F{sig}(F{hash}(m),dA))).dA签名私钥、m交易、F~hash~散列函数、F-sig~签名算法、Sig结果签名。

F~sig~:Sig=(R,S)通过计算R.S值,称为序列号的字节流。

签名序列化:DER:序列化格式包含9个元素:DER序列的开始、序列的长度、一个整数值、整数长度、R值、接下来的一个整数、整数的长度、S值、后缀值。

签名验证:验证一个签名必须要有签名的R,S值、序列化交易、公钥。理解为:只有生成改公钥的私钥所有者,才允许在交易上产生该签名。

签名hash类型:SIGHASH,在bitcoin中签名意味找承诺,sighash附加到签名的单个字节,每一个签名都有一个sighash标志。三个sighash标志:all、none、single。Sighash标志在签名和验证期间是在建立交易的副本和删除其中的某些字段,然后交易序列化,sighash标志添加到序列化交易的结尾,结果再hash,得到签名消息。交易的不同部分被删除,得到的hash值取决数据的不同子集,在hash前,sighash作为最为一部分,签名对其也进行签署,故无法更改。

ECDSA:签名算法想生成一对临时私钥公钥,涉及签名私钥和交易hash变换后,临时密钥用于计算R、S值。S=k-1(Hash(m)+dA*R)mod p。k临时私钥、R临时公钥x坐标、dA签名私钥、m交易数据、p椭圆曲线顺序。验证是签名生成函数的倒数,使用R\S值和公钥来计算一个P:P=s-1*Hash(m)G+s-1*R*Qa。R/S签名值、Qa公钥、m签署的交易数据、G椭圆曲线发生器点。计算点P的坐标等于R,则签名有效。(椭圆曲线算法可参考区块链解读-椭圆曲线算法)

多重签名:n个公钥记录在脚本中、并且需要至少m个提供签名才能解锁资金,称为m-n方案,n是密钥总数,m是验证所需签名的数量。锁定脚本格式:M<Public Key 1><Public Key 2>…<Public Key N> N CHECKMULTISIG,举例:<Signature B> <Signature C> 2 <Public Key A> <Public Key B> <Public Key C> 3 CHECKMULTISIG。

P2SH:pay-to-script-hash简化复杂脚本的交易。脚本中一班包含长公钥,最终交易脚本会比最初交易脚本长达数倍。简化监本,一笔交易支付UTXO,解锁支付脚本,必须含有和hash相匹配的脚本,P2SH向该hash匹配脚本支付,但输出支付时,脚本在后续呈现。锁定脚本由hash运算后20字节的散列值取代,叫赎回脚本。

P2SH地址:基于Base58编码含有20字节的hash的脚本。

上一篇:【十九大代表风采】朱红军:80张原理图、50本学 下一篇:一个媒体人的“深漂”笔记,幽壹携新作《你是