区块链技术详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
区块链技术详解
摘要:区块链技术的核心是实现了沿时间轴记录数据与合约,并且一旦写入,就只
能读取,不能修改和删除。
自从今年1月20日,中国人民银行在数字货币研讨会上表示高度重视区块链(Blockchain)等技术带来的新机遇和挑战,并争取早日推出央行发行的数字货币[1]以来,区块链的概念在国内越发火热,吸引了金融机构空前的关注。
这份报告是爱就投与研究中心第一次关于区块链技术的研究结果,参考了来自投行、
咨询机构的多份研究报告,并结合爱就投项目经理与国内区块链创业者的交流整理而成。
技术篇介绍区块链的技术特点和运作机制,并说明相关的重要技术概念;应用篇结合
其在金融和非金融领域的应用案例,分析区块链的应用场景和市场前景。
作者认为,区块链技术的核心是沿时间轴记录数据与合约,并且只能读取和写入,不
能修改和删除。在应用层面,区块链的安全、透明、高效3大优势,使其特别有助于规范
互联网金融的发展,以及促进物联网和共享经济的普及与创新;在资本市场,采用分布式
数据库和智能合约还可以大幅减少人工核对工作,为金融机构节省成本。
一.区块链的技术特点
区块链是一种共享的分布式数据库技术[2]。尽管不同报告中对区块链的一句话介绍
措辞都不相同,但以下4个技术特点是共识性的[3]。
1. 去中心化(Decentralized):图1的左侧描述了当今金融系统的中心化特征,右
侧描述的是正在形成的去中心化金融系统,其没有中介机构,所有节点的权利和义务都相等,任一节点停止工作都会不影响系统整体的运作[4];
图1,出自花旗报告Digital Disruption: How FinTech is Forcing Banking to a Tipping Point [4]
2. 去信任(Trustless):系统中所有节点之间无需信任也可以进行交易,因为数据
库和整个系统的运作是公开透明的,在系统的规则和时间范围内,节点之间无法欺骗彼此;
3. 集体维护(Collectively Maintain):系统是由其中所有具有维护功能的节点共
同维护的,系统中所有人共同参与维护工作;
4. 可靠数据库(Reliable Database):系统中每一个节点都拥有最新的完整数据库
拷贝,修改单个节点的数据库是无效的,因为系统会自动比较,认为最多次出现的相同数
据记录为真。
图2,出自高盛报告Blockchain: Putting Theory into Practice [2]
图2为简化起见,仅展示了6处保留数据库副本的节点;在3个交易序列中,前2个
交易的数据和签名得到了所有6个节点的验证,但第三个交易的位置5没有通过验证,将
被其它节点的“一致意见”更改[2]。
二.公有链、私有链、侧链
区块链按照访问和管理权限可以分为公有链(Public Blockchain)和私有链或联盟
链(Private Blockchain)。公有链是完全开放的区块链,全世界的人都可以参与系统维
护工作,这使得公有链还具有以下2个特点[3]。
1. 开源(Open Source):由于整个系统的运作规则公开透明,这个系统是开源系统;
2. 匿名(Anonymity):由于节点之间无需信任彼此,所有节点也无需公开身份,系
统中每一个节点的匿名和隐私都受到保护。
私有链或联盟链在开放程度和去中心化程度方面有所限制[5],参与者需要被提前筛选,数据库的读取权限可能是公开的,也可能像写入权限一样只限于系统的参与者[6]。
公有链的典型代表是比特币区块链,任何人都可以通过交易或挖矿读取和写入数据[7]。私有链或联盟链的典型案例是Ripple和R3 CEV,前者目前为属于联盟成员的银行类金融机构提供跨境支付服务,希望取代环球同业银行金融电讯协会(SWIFT)的跨境转账
平台,打造全球统一的网络金融传输协议;后者旨在推动制定适合金融机构使用的区块链
技术标准[8]。
侧链(Sidechains)是用于确认来自于其它区块链的数据的区块链,通过双向挂钩(Two Way Peg)机制使比特币、Ripple币等多种资产在不同区块链上以一定的汇率实现
转移[9][10]。
图3,出自Blockstream Moves Ahead with Sidechain Elements. GiulioPrisco [10]
侧链进一步扩展了区块链技术的应用范围和创新空间,使区块链支持包括股票、债券、金融衍生品等在内的多种资产类型,以及小微支付、智能合约、安全处理机制、真实世界
财产注册等;侧链还可以增强区块链的隐私保护[10][11]。
所谓“多种资产在不同区块链上转移”其实并不会实际发生。以比特币为例,侧链的
运作机制是,将比特币暂时锁定在比特币区块链上,同时将辅助区块链上的等值数字货币
解锁;当辅助区块链上的数字货币被锁定时,原先的比特币就被解锁[12]。
三.比特币区块链如何运作?
比特币网络从2019年1月开始至今,在没有专人维护的情况下已经平稳运行7年多,期间没有出现一次宕机。图4以Bob接收来自Alice的比特币的场景,详细描述了比特币
区块链的工作方式,一并解释了涉及到的钱包和地址(Wallets and Addresses)、私钥
和公钥(Private Key and Public Key)、加密哈希(Cryptographic Hashes)、随机数(Nonces)等概念[13]。
图4,出自A Guide to Bitcoin Mining. Alec Liu [13]
钱包和地址:
1. Bob和Alice的电脑上都有比特币钱包。
2. 钱包是一种文件,可以让用户访问多
个比特币地址。3. 一个地址是一串由字母和数字组成的字符串。4. 每一个地址都有自己
的比特币余额。
新建一个地址:
5. Bob创建一个新的比特币地址,用于接收Alice的付款。
私钥和公钥:
6. 当Bob创建一个新地址时,他真正在做的是生成一个密钥对,由一个私钥和一个
公钥组成。如果你使用私钥(只有你知道)对一个消息进行签名,它可以被对应的公钥
(所有人都知道)所验证。Bob的新地址代表一个唯一的公钥,对应的私钥则保存在他的
钱包里。公钥允许所有人来验证被私钥签名的消息的有效性。
7. 可以将地址看做银行账号,但工作方式稍有不同。比特币用户可以任意创建多个
地址,并且被鼓励为每一个新的交易单独创建新地址,以增强隐私性。只要没有人知道哪
些地址是Alice的,她的匿名就受到保护。提交一个支付:
8. Alice告诉她的比特币客户端,她要向Bob的收款地址转账。9. Alice的钱包里
有她的每一个比特币地址的私钥。比特币客户端用Alice此次使用的付款地址的私钥,对
她的这一交易申请进行签名。10. 此时,网络上的任何人都可以使用公钥来验证,这个交
易申请实际来自一个合法的账户所有者。
验证交易:
11. Gary、Garth和Glenn都是比特币矿工。12. 他们的电脑将过去约10分钟内的交易打包成一个新的交易区块。13. 矿工的电脑被设置用于计算加密哈希(Cryptographic Hash)函数。14. 加密哈希函数将一个数据集转换成特定长度的包含字母和数字的字符串,称为哈希值。源数据的细微改变会彻底改变哈希值的结果。并且基本不可能预测初始的数
据集将会产生的特定哈希值。
15. 为相同的数据创建不同的哈希值,比特币使用随机数来实现。随机数是在进行哈
希计算之前,在数据中添加的随机数字。改变这个随机数会产生极不相同的哈希值。16.
每一个新的哈希值包含关于此前所有比特币交易的信息。17. 矿工的电脑基于前一个区块
的哈希值、新交易区块和随机数,来计算新的哈希值。