《区块链技术》第3章-区块链典型架构.pptVIP

《区块链技术》第3章-区块链典型架构.ppt

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.2 区块链2.0架构——以太坊区块链 3.2.4 Solidity开发工具 Atom Vim Solidity/Vim Syntastic Visual Studio Atom是github专门为程序员推出的跨平台的文本编辑器,具有直观的图形用户界面。可以通过Atom Ethereum interface编辑器插件,提供Solidity语法高亮、编译和显示实时运行环境等功能。 Visual Studio提供了一款名为Visual Studio Extension的插件,安装完该插件后,就可以提供对Solidity的支持。 Vim Solidity是Vim编辑器的插件,提供语法高亮显示的功能。 Vim Syntastic是Vim编辑器的插件,提供编译检查功能。 3.1.2 比特币后端 3.1 区块链1.0架构——比特币区块链 交易验证 每个节点在校验每笔接收到的交易时,都遵循如下标准: 对于每一个交易输入,其对应的输出必须是UTXO,即未被花费的交易输出; 不可能存在一个交易的输入值的总和小于输出值的总和; 如果交易费用太低,该交易将不会被打包; 每一个输入的解锁脚本(unlocking script)必须和相应输出的锁定脚本(locking script)共同验证交易的合规性。 3.1.2 比特币后端 3.1 区块链1.0架构——比特币区块链 共识管理 区块链技术的核心是由系统中的节点竞争进行记账,这个竞争的评判标准就称为“共识机制”,不同的区块链会采用不同的共识机制。 目前,由于共识机制的重要性,比特币开源社区开始对共识机制进行管理,未来共识模块将单独作为一个独立的模块,这样既能实现共识模块的复用,也能使共识模块不再依赖于其他模块,降低了系统的耦合性。由此可见,未来的共识管理将实现一种可插拔的共识模块,便于使用。 3.1.2 比特币后端 3.1 区块链1.0架构——比特币区块链 密码模块和数字签名 密码模块主要用来处理比特币地址,采用SHA-256、RipeMD160以及Base-58编码等来生成比特币地址。 Base-58的校验码对地址信息进行双重SHA256哈希处理,并取前4位做校验码,加在比特币地址的后面,因此比特币地址带有校验信息,可以防止人为错误。 比特币的公钥是通过私钥产生的,然后采用SHA256和RipeMD160对公钥进行处理,最后通过Base-58编码实现比特币地址。 比特币采用的签名算法是椭圆曲线数字签名算法(ECDSA),一种基于椭圆曲线离散对数问题的计算困难性的公钥密码方法。 3.1.2 比特币后端 3.1 区块链1.0架构——比特币区块链 脚本引擎 比特币专门设计了一种脚本语言,该脚本语言的底层是基于堆栈来实现的。脚本引擎是一个校验交易的运算平台,它可以对解锁脚本(unlocking script)和锁定脚本(locking script)进行自动校验;另外脚本引擎还可以用来实现合约。 基于堆栈的语言指令只按照顺序执行一次,没有循环或跳转指令,是图灵不完备的脚本语言。比特币的脚本语言非常小,只有256个指令,每个指令长度为一个字节。这256个指令中75个是保留指令,15个已经废弃,可用指令有160多个。比特币常用脚本指令如下表所示。 3.1.2 比特币后端 3.1 区块链1.0架构——比特币区块链 脚本引擎 关键字 操作码 16进制 描述 OP_DUP 118 0x76 复制栈顶元素 OP_HASH160 169 0xa9 弹出栈顶内容,先用SHA-256哈希一次,再用RipeMD160哈希第二次,结果压入堆栈 OP_EQUALVERIFY 136 0x88 弹出栈顶两个内容,如果两个内容一样,返回1,否则返回0 OP_CHECKSIG 172 0xac 用输入的公钥检查输入的签名,如果签名符合,返回1,否则返回0 OP_CHECKMULTISIG 174 0xae 用提供的多个公钥检查多重签名的正确性。所有的签名要与公钥匹配,如果所有的签名都有效,则返回1,否则返回0 OP_RETURN 106 0x6a 标记交易无效 3.1.2 比特币后端 3.1 区块链1.0架构——比特币区块链 脚本引擎 锁定脚本: scriptPubKey: OP_DUP OP_HASH160 pubKeyHash OP_EQUALVERIFY OP_CHECKSIG 解锁脚本: scriptSig: sig pubKey 之间的为要压入栈中的数,push指令缺省。实际执行时,会将scriptSig和scriptPubkey连接起来,按照从左往右顺序运行脚本。 验证过程: sig pubKey OP_DUP OP_HASH160 pubKeyHash OP_EQUALVERIFY OP_CHECKSIG 3.1.2

文档评论(0)

粱州牧 + 关注
实名认证
文档贡献者

资料收集自互联网,若有侵权请联系删除,谢谢~

版权声明书
用户编号:8036120077000004

1亿VIP精品文档

相关文档