《区块链开发指南》一一第2章 区块链进阶 2.1 外带数据

第2章 区块链进阶 2.1 外带数据

区块链的外带数据是指那些保存在区块链上但不进行货币交易的信息,比如需要永久保存的信息,前面提到过存在于区块链上的每一笔交易都有一个输入和输出,区块链的外带数据也是采用类似的方式来存储的。
如果有在比特币上永久存储数据的需求,那么你目前有两种选择,即:“OP_RETURN”和“Multi-Signatures”。OP_RETURN是指在每个交易的公钥脚本中嵌入OP_RETURN操作码,之后放置外带数据;Multi-Signatures则是指在建立多签地址时,使用空白签名区域来放置数据。此类外带数据的方法旨在让编程者更简单地将数据编码到交易中,同时又不会影响到比特币区块链的功能,目前非常流行,在Omni、Open Assets、Blockstack和Factom等的区块链上都有应用。
2.1.1 OP_RETURN外带数据
2013年,比特币协议中引进了一项新功能,即:创建一种名为OP_RETURN的交易,可以嵌入40字节小段数据(目前已经是80字节长)。最初,这个功能旨在把情境信息加入比特币交易里,比如配送信息等。后来,发展出了更具创造性的用法,即创造最小量的交易(0.00000001 BTC加上交易费),并且可嵌入任何你想放进去的信息。
比如交易号:
495926f46e3aae80088919f363b3b6ff52116e28637b63eb2a681b1fb990d2e4
所对应的交易输出为OP_RETURN类型,那么它的输出脚本则为:
OP_RETURN 4343020549a5710049a57190
利用这个功能的第一个有趣的应用就是存在性证明(Proof Of Existence),它可以为任何文件创建一个Hash,并且可以放入区块链中,这点不同于其他所有文件的身份认证ID。之后,通过比较区块链里的Hash和你手头文件的Hash,就可以用那个交易的时间戳和存储在其中的Hash,来证明那个时点上某个文件是确实存在的。只要二者匹配,就有了证明。
值得注意的是,只能在该交易中输出很小金额的比特币,如0.00005,因为输出到OP_RETURN中的比特币是无法被再次使用的。
2.1.2 Multi-Signatures外带数据
多签名地址是另外一种外带数据的方法。例如,对于1-of-2型的多签名地址,我们在建立该地址时,提供的第一个公钥是发送者的,因而输出金额可以赎回;而第二个公钥是空白的,因而该空间可以用来存储外带数据。对数据的要求则是:前缀是数据的长度,后面是用0来充值的无数据区域。
该交易的输出脚本为:
1 <0> 2 OP_CHECKMULTISIGN
这里的<0>区域可用于存储外带数据,该输出金额一样可以被花费。如果要存储更多数据,则可采用1-of-3或1-of-5型的多签地址。

时间: 2024-10-01 20:16:03

《区块链开发指南》一一第2章 区块链进阶 2.1 外带数据的相关文章

《区块链开发指南》一一导读

前 言 Preface 比特币于2009年诞生,在很长一段时间内,人们只知比特币,不知区块链.从2015年开始,区块链像狂风一样席卷全球,倍受金融界和科技界的关注:2015年年底,区块链技术逐渐得到国内金融界和科技界的了解和认同. 区块链行业的蓬勃发展源于区块链有可能给各行业带来巨大的变革.麦肯锡在2016年年初发布报告,指出区块链技术将在未来五年内颠覆众多行业,特别是银行业和保险业:埃森哲预测到2025年,区块链技术每年可帮助全球8大投资银行节省80亿美元至120亿美元的基础设施成本. 全球金

《区块链开发指南》一一第1章 区块链基础

第1章 区块链基础 区块链究竟是什么?狭义地说,区块链就是比特币的底层技术:不过,经过7年的发展,区块链已经不再"依附于"比特币,而是独立地发展成为了一种革命性的技术,比特币则是区块链最大.最成功的应用.从技术层面来看,区块链是一个基于共识机制.去中心化的公开数据库.共识机制是指在分布式系统中保证数据一致性的算法:去中心化是指参与区块链的所有节点都是权力对等的,没有高低之分,同时也指所有人都可以平等自由地参与区块链网络,唯一的限制就是个人自己的选择:公开数据库则意味着所有人都可以看到过

《区块链开发指南》一一2.4 Sidechains

2.4 Sidechains Sidechains(侧链)实质上不是指特定的某个区块链,而是指那些遵守侧链协议的所有区块链,这个词是针对比特币主链来说的.侧链协议是指可以让比特币安全地从比特币主链转移到其他区块链,同时又可以让其他区块链上的货币安全返回到比特币主链的一种协议. 所以从某种程度上来说,现在市面上的所有区块链,例如以太坊.莱特币.狗狗币等区块链都可以成为侧链应用.侧链的实现具有重大意义,它意味着比特币可以在不同的区块链上流通,其应用范围和应用前景会更加广泛.一旦侧链的应用流行起来,有

《区块链开发指南》一一2.2 Counterparty

2.2 Counterparty 合约币Counterparty是以合约币协议运行的全套金融工具,合约币协议建立在比特币块链的基础之上,把比特币块链当成可信的时间戳服务和可信的信息发布证明. 目前合约币已经实现了众多的技术创新点,比如燃烧证明.合约.去中心化XCP与BTC交易所.赌约或期货.资产或股份发行.分红等.Counterparty是建立在比特币协议上的传输层,用于建立和使用去中心化的财务工具协议.简单来说,可以将XCP理解为很多"小的BTC"即XCP="小的BTC&q

《区块链开发指南》一一2.5 最新比特币技术

2.5 最新比特币技术 随着区块链的不断发展,区块链技术也在飞速发展,不仅已经有了相对成熟的应用,还有一些原型应用也被提出,下面将介绍几个现在比较流行的在区块链中的应用.2.5.1 IBLT 比特币系统(Bitcoin)需要矿工(或者说矿池)及全节点的分散化,以实现某些人认为的比特币核心属性:抗审查性(censorship resistance).因此,区块大小的争议也意味着是一种权衡.更大的区块,允许比特币网络可以承载更多的交易,但也会带来更多的问题,它需要更多的时间来传播交易,虽然这有利于大

《区块链开发指南》一一1.2 区块和区块链

1.2 区块和区块链 比特币网络中,数据会以文件的形式被永久记录,我们称这些文件为区块.一个区块是一些或所有最新比特币交易的记录集,且未被其他先前的区块记录.可以将区块想象为一个城市记录者其记录本上单独的一页纸(对房地产产权的变更记录),或者是股票交易所的总账本.在绝大多数情况下,新区块会被加入到记录的最后(在比特币中的名称为区块链),一旦写上,就再也不能改变或删除.每个区块记录了它被创建之前发生的所有事件.1.2.1 区块结构一个区块的结构如表1-2所示. 每个区块都包括了一个被称为"魔法数&

《Node.js区块链开发》一第2章

第2章 区块链,承载人类信用的基石 第1章的内容在网上一经发布就吸引了很多关注,说明很多小伙伴因为对加密货币不了解,或者有误解,所以才会敬而远之,错失良机. 继续第1章的内容,本章仍将通过直白的语言来讲解技术原理.所涉及的内容包括现实世界的内在驱动力.未来趋势.应用场景和风险提示等.

《iOS 9 开发指南》——第1章,第1.1节IOS开发入门

第1章 IOS开发入门 iOS 9 开发指南 iOS是一个强大的系统,被广泛地应用于苹果公司的系列产品iPhone.iPad和iTouch设备中.iOS通过这些移动设备展示了一个多点触摸界面及众多内置传感器的界面.本章将带领大家认识iOS系统,为读者步入本书后面知识的学习打下基础. 1.1 iOS系统介绍 iOS 9 开发指南 图片 1 知识点讲解:光盘:视频\知识点\第1章\ iOS系统介绍.mp4 iOS是由苹果公司开发的手持设备操作系统.苹果公司最早于2007年1月9日的Mac World

《iOS 8开发指南》——第6章,第6.1节MVC模式基础

第6章 使用Xcode编写MVC程序 iOS 8开发指南 在本书前面的内容中,已经学习了面向对象编程语言Objective-C的基本知识,并且探索了Cocoa Touch.Xcode和Interface Builder编辑器的基本用法.虽然我们已经使用了多个创建好的项目,但是还没有从头开始创建一个项目.在本章的内容中,将向读者详细讲解"模型-视图-控制器"应用程序的设计模式,并从头到尾创建一个iOS应用程序的过程,为读者步入本书后面知识的学习打下基础. 6.1 MVC模式基础 iOS