【区块链之技术进阶】让这篇技术贴告诉你区块链是怎么运行的

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 本文是【区块链之技术进阶】部分的第三篇文章,本篇文章我们将会为大家分享一篇技术贴,从技术的角度为大家分享区块链的技术特点及相关的数字货币、智能合约、侧链等的运作机制,并说明了相关的时间戳、工作量证明、权益证明、加密哈希等概念。少侠,干了这碗技术干货!

相信大家阅读了上一篇的文章以后,对于区块链未来在互联网金融方面的具体应用场景有所了解,面对互联网金融技术创新的洪流,大家是不是已经心潮澎湃,准备在区块链技术创新上大展手脚了呢?少侠,莫慌,暂时压一压内心的洪荒之力吧,耐着性子,我们要学习的事情还有很多,特别是从技术层面,你知道区块链是怎么运行的不?你看,不知道吧。所以还是且看我接着为大家分享吧。

本文是【区块链之技术进阶】部分的第三篇文章,这篇文章将会从技术的角度,为大家分享区块链到底是怎么运行的。当然还有公有链、私有链、侧链这些都是啥,什么是公有链的开源和匿名的特点,智能合约又怎么运行。可以说这篇文章是篇技术干货啦,等不急了吧,精彩马上分享。


本文技术要点:

2d51cea7e90c228dfb5cf5c8b117403ab195a57f


本文转载自 钛媒体 原文链接

             e81b1bc0ef2ee5b958ef550434f80e808c3439d7

自从今年1月20日,中国人民银行在数字货币研讨会上表示高度重视区块链(Blockchain)等技术带来的新机遇和挑战,并争取早日推出央行发行的数字货币以来,区块链的概念在国内越发火热,吸引了金融机构空前的关注。

这份报告是爱就投与研究中心第一次关于区块链技术的研究结果,参考了来自投行、咨询机构的多份研究报告,并结合爱就投项目经理与国内区块链创业者的交流整理而成。

技术篇介绍区块链的技术特点和运作机制,并说明相关的重要技术概念;应用篇结合其在金融和非金融领域的应用案例,分析区块链的应用场景和市场前景。

作者认为,区块链技术的核心是沿时间轴记录数据与合约,并且只能读取和写入,不能修改和删除。在应用层面,区块链的安全、透明、高效3大优势,使其特别有助于规范互联网金融的发展,以及促进物联网和共享经济的普及与创新;在资本市场,采用分布式数据库和智能合约还可以大幅减少人工核对工作,为金融机构节省成本。

一.区块链的技术特点

区块链是一种共享的分布式数据库技术。尽管不同报告中对区块链的一句话介绍措辞都不相同,但以下4个技术特点是共识性的。

1. 去中心化(Decentralized):图1的左侧描述了当今金融系统的中心化特征,右侧描述的是正在形成的去中心化金融系统,其没有中介机构,所有节点的权利和义务都相等,任一节点停止工作都会不影响系统整体的运作;
             684be8bda3bf0f7b00f8a78afb4ba7462e685edf
图1,出自花旗报告Digital Disruption: How FinTech is Forcing Banking to a Tipping Point 
2. 去信任(Trustless):系统中所有节点之间无需信任也可以进行交易,因为数据库和整个系统的运作是公开透明的,在系统的规则和时间范围内,节点之间无法欺骗彼此;

3. 集体维护(Collectively Maintain):系统是由其中所有具有维护功能的节点共同维护的,系统中所有人共同参与维护工作;

4. 可靠数据库(Reliable Database):系统中每一个节点都拥有最新的完整数据库拷贝,修改单个节点的数据库是无效的,因为系统会自动比较,认为最多次出现的相同数据记录为真。
             f8ce53f16c5dcd546fc7d37d3f6ff51cb7ef191d
图2,出自高盛报告Blockchain: Putting Theory into Practice 

图2为简化起见,仅展示了6处保留数据库副本的节点;在3个交易序列中,前2个交易的数据和签名得到了所有6个节点的验证,但第三个交易的位置5没有通过验证,将被其它节点的“一致意见”更改。

二.公有链、私有链、侧链

区块链按照访问和管理权限可以分为公有链(Public Blockchain)和私有链或联盟链(Private Blockchain)。公有链是完全开放的区块链,全世界的人都可以参与系统维护工作,这使得公有链还具有以下2个特点。

1. 开源(Open Source):由于整个系统的运作规则公开透明,这个系统是开源系统;

2. 匿名(Anonymity):由于节点之间无需信任彼此,所有节点也无需公开身份,系统中每一个节点的匿名和隐私都受到保护。

私有链或联盟链在开放程度和去中心化程度方面有所限制,参与者需要被提前筛选,数据库的读取权限可能是公开的,也可能像写入权限一样只限于系统的参与者。

公有链的典型代表是比特币区块链,任何人都可以通过交易或挖矿读取和写入数据。私有链或联盟链的典型案例是Ripple和R3 CEV,前者目前为属于联盟成员的银行类金融机构提供跨境支付服务,希望取代环球同业银行金融电讯协会(SWIFT)的跨境转账平台,打造全球统一的网络金融传输协议;后者旨在推动制定适合金融机构使用的区块链技术标准。

侧链(Sidechains)是用于确认来自于其它区块链的数据的区块链,通过双向挂钩(Two Way Peg)机制使比特币、Ripple币等多种资产在不同区块链上以一定的汇率实现转移。
             9fc984a3af1fc2f547a12398bfdc46d3eb8cecb3
图3,出自Blockstream Moves Ahead with Sidechain Elements. Giulio Prisco 

侧链进一步扩展了区块链技术的应用范围和创新空间,使区块链支持包括股票、债券、金融衍生品等在内的多种资产类型,以及小微支付、智能合约、安全处理机制、真实世界财产注册等;侧链还可以增强区块链的隐私保护。

所谓“多种资产在不同区块链上转移”其实并不会实际发生。以比特币为例,侧链的运作机制是,将比特币暂时锁定在比特币区块链上,同时将辅助区块链上的等值数字货币解锁;当辅助区块链上的数字货币被锁定时,原先的比特币就被解锁。

三.比特币区块链如何运作?

比特币网络从2009年1月开始至今,在没有专人维护的情况下已经平稳运行7年多,期间没有出现一次宕机。图4以Bob接收来自Alice的比特币的场景,详细描述了比特币区块链的工作方式,一并解释了涉及到的钱包和地址(Wallets and Addresses)、私钥和公钥(Private Key and Public Key)、加密哈希(Cryptographic Hashes)、随机数(Nonces)等概念。
             50a4da1bd73e54ae2b8fc70a285c685a2e438f6e
图4,出自A Guide to Bitcoin Mining. Alec Liu
钱包和地址:
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. 矿工的电脑基于前一个区块的哈希值、新交易区块和随机数,来计算新的哈希值。

18. 创建哈希在计算上微不足道,但比特币系统要求新的哈希值拥有特定格式——必须以特定数量的0作为开始。

19. 矿工无法预测哪个随机数会产生以要求的数量的0作为开始的哈希值,所以他们被迫用不同的随机数创建很多哈希,直到获得有效的那一个。

20. 每一个区块都包含一个名为coinbase的初始交易,这是给胜出矿工的50比特币的支付——在这个例子中是矿工Gary。Gray的钱包里生成了一个新地址,里面的余额是新挖到的比特币数量。

  • :只有在比特币发行的阶段1,每一个区块的coinbase支付给胜出矿工的新币是50个。从2009年1月3日创世区块诞生开始,新比特币的发行大约每4年减半,2012年11月28日,阶段2开始,每一个区块包含的新币减为25个,这是历史上第一次减半;预计今年7月11日,挖矿奖励会再次减半;直到第33次减半时,每一个区块从产生0.0021个新币直接减为0个,比特币的总量固定在将近2100万个。

交易验证:
21. 随着时间流逝,Alice向Bob的转账被埋在了其它更近期的交易下面。任何人要想修改历史交易的细节,就必须重做一遍Gary的工作,然后再重做所有下一级矿工的工作,因为所有的改变都需要一个完全不同的胜出随机数。这样的操作几乎不可能成功。

四.双重支付如何解决?

以比特币为代表的数字货币,关键的创新是通过时间戳(Timestamp)和工作量证明(Proof of Work)机制解决双重支付(Double Spending)和拜占庭将军问题(Byzantine Generals’ Problem),即保证同一笔比特币不会同时出现在两个地址,并且在信道可靠的基础上,所有节点都可以让其它节点接收到自己的真实意图,并最终一致行动。

这一技术方案最早见于化名为中本聪(Satoshi Nakamoto)的个人或团体在2008年发表的论文Bitcoin: A Peer-to-Peer Electronic Cash System 。

在Bob接收来自Alice的比特币的场景中,一方面,这笔付款被广播给系统中所有节点,任何人都可以使用Bob的公钥来验证这个交易的合法性,如果Alice试图双重支付,就必须先删除这个交易记录,否则新交易无法通过验证。中本聪在论文中写道:

“时间戳服务器为一个区块的数据的哈希计算结果加上时间戳,并大范围发布这一哈希计算结果,好比在报纸或新闻网上发表。显然,时间戳证实这些数据一定在这一特定时间存在,只有这样才能得到哈希计算结果(A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash)”。

另一方面,工作量证明机制使得生成下一个区块的节点和矿工几乎无法被预测到,所以删除交易记录几乎不可能。系统中的节点将过去约10分钟内的比特币交易进行打包,而只有获得有效哈希值的矿工才能生成新区块,并得到挖矿奖励;矿工除了打包比特币交易,还要结合随机数来完成有效哈希值的创建工作,获得以要求的数量的0作为开始的哈希值。

中本聪在论文中写道:
             e7ba44378123cd21beac835f8b00779bfcc68f27
图5,出自中本聪论文Bitcoin: A Peer-to-Peer Electronic Cash System 

  • “工作量证明本质上是一CPU一票(Proof-of-work is essentially one-CPU-one-vote)”;
  • “如果两个节点同时广播不同版本的新区块,那么一些节点会先收到其中一个的广播。在这种情况下,节点在先收到的区块基础上工作,并保留另外一个分支,以防后者变成较长的链。这个僵局要等到发现下一个工作量证明才能被打破,其中一条链将成为较长的链,在另一个分支上工作的节点将切换到较长的链上继续工作(If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof-of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one)”;
  • “节点永远认为最长的链是正确的链,并将持续在它上面延长(Nodes always consider the longest chain to be the correct one and will keep working on extending it)”。

所以除非永久控制整个系统中超过一半的节点,才能阻止矿工把这个交易添加到新区块中。

最后,考虑到硬件运算速度的增长和节点参与程度的变化,中本聪用移动平均目标来确定工作量证明的难度,使得两个区块生成的时间间隔约为10分钟。

五.区块链技术目前问题

区块链技术还处于不断完善的阶段,就其第一个应用的比特币来说,有3个主要问题正在被其它系统所完善或试图完善。

区块容量和交易速度限制

中本聪设计比特币时,为区块设置了1MB的容量限制,使每一个区块只能容纳4096个交易;同时,工作量证明机制使得确认交易并将交易记录到区块链中需要约10分钟,当运算量达到极限时,运算时间就会放缓。目前,比特币网络还没有成熟到可以将规模扩展至主要信用卡网络的程度,提高这一上限的工作正在进行中。

另外,区块扩容已经成为迫切需求。曾有比特币核心开发者提出从Bitcoin Core切换到硬分叉链Bitcoin XT的方案,区块从1MB扩容至8MB,此后每2年翻倍。这一变动需要1000个连续区块中的750个包含矿工的变更批准。目前这一事件正在发展中。

挖矿浪费巨大资源

2014年6月曾有工程师系统计算,在比特币全网计算能力为110,000,000 GH/S的情况下,整个网络的挖矿成本约为每年8亿美元,包括电力成本约7,071.2万美元和矿机投资约7.33亿美元。

矿机投资方面,支持这样的算力大约需要36,670台KnCMiner海王星矿机,每台功率3,000GH,售价9,995美元,按照一年支出2次计算,结果约为7.33亿美元/年;电力成本方面,每日需要耗电80,666千瓦,按照每兆瓦100美元计算,结果约为7,071.2万美元/年。另外,这些矿机产生的二氧化碳为424,725吨/年。

图6展示了从2014年6月到2016年6月,比特币网络计算能力的增长趋势,最高点的Hash Rate已经达到1,800,000,000 GH/S 。
             40655f7ff58dd9b6e12ef3e84a0d49a4023b7a60
图6 Hash Rate,出自Blockchain.info 

由于挖矿工作只为搜索到随机数以获得有效哈希值,并不产生其它价值,比特币网络的算力资源和消耗的电力成本被诟病为资源浪费。其它系统改进这个问题的总思路是,减少其中参与维护工作的节点的数量,减轻挖矿竞争的激烈程度。具体有2种方式,一是采用私有链或联盟链,将“记账权”强制规定给某些节点;二是引入权益证明(Proof of Stake)机制,配合工作量证明来维护可靠数据库。

权益证明是一种对货币所有权的证明,证明人需要提供一定数量的货币的所有权,系统根据每一个节点所占有的货币的比例和占有时间来确定“记账权”;权益证明的核心是只让在区块链中具有经济利益的人参与系统的维护工作,这就使得挖矿的成本远低于工作量证明机制之下的挖矿成本。

缺少图灵完备性

既然区块链可以保证比特币交易记录不被删改,理论上也可以保证任何代码一旦被写入,就不能删改。然而,比特币的脚本语言并不是图灵完备的,即不支持循环语句,意味着比特币只能作为数字货币,不能直接支持智能合约及更复杂的去中心化应用。

区块链技术平台以太坊的脚本语言(Ethereum Virtual Machine code)就是图灵完备的;用EVM代码来建立应用,理论上可以实现任何可以想象的计算,包括无限循环。以太坊实现了让任何人可以上传和执行任意的应用程序,并且程序的有效执行能得到保证。

六.智能合约如何运作?

在英语里,Code这个单词既有“代码”的意思,也有“法典”的意思,这暗示了智能合约(Smart Contracts)的功能和意义。

智能合约是一种直接控制数字资产的电脑程序。图7描述了基于比特币的智能合约的工作方式,通过在区块链上写入类似if-then语句的程序,使得当预先编好的条件被触发时,程序自动触发支付及执行合约中的其它条款。
             2aa41398d5112fa2e3c67d3bff96bd715680e6a7
图7,出自德勤报告Blockchain: Enigma. Paradox. Opportunity 

  1. 多方之间的定期交付合同被以代码的形式写入区块链。其中的个体是匿名的,但合同记录在公共账本中。
  2. 当扳机事件触发时,比如到期、执行价格达到,合约按照编程的条款自动执行。
  3. 监管者可以通过这个区块链了解市场上的活动,同时维护个体成员的隐私。

Bob是接受数字货币支付的线上商家,Alice是使用数字货币进行支付的购物者,智能合约可以在去信任的情况下使Bob的商品与Alice的数字货币实现交换。Alice可以创建一个智能合约,将这样一段代码写入区块链:“如果我在24小时内收到这一商品,则我会将这笔数字货币发到寄件人的收款地址,并将这个商品寄给我的创建者,否则我将会将这笔数字货币发回给我的创建者”。

智能合约中的资产和资金没有拥有者(Owner),在这个例子中,当Alice把这笔数字货币加入智能合约,就无法通过修改这个合约把这笔数字货币拿回来,只能等待交易成功并收到Bob寄出的商品,或者24小时后交易没有成功,再收到自己的数字货币。

七.技术篇结论

以上介绍了区块链的技术特点及相关的数字货币、智能合约、侧链等的运作机制,并说明了相关的时间戳、工作量证明、权益证明、加密哈希等概念。区块链技术的核心是实现了沿时间轴记录数据与合约,并且一旦写入,就只能读取,不能修改和删除。

有一种较为主流的观点将区块链技术的演进分为1.0数字货币、2.0智能合约、3.0(Meta Technology)去中心化应用3个阶段。应用篇将对这3类应用进行分析,并展望区块链的市场前景。

相关文章
|
1天前
|
供应链 安全 分布式数据库
探索区块链技术在供应链管理中的应用
【10月更文挑战第21天】 本文深入探讨了区块链技术如何在供应链管理中发挥关键作用,通过具体案例分析,揭示了区块链提高透明度、降低成本和增强安全性的潜力。文章首先概述了区块链技术的基本原理及其对传统供应链模式的挑战,接着详细讨论了区块链如何在不同供应链环节中实施,并分析了其带来的变革。最后,文章提出了企业在采纳区块链技术时可能面临的挑战和应对策略,为供应链管理者提供了宝贵的参考。
|
11天前
|
存储 安全 物联网
未来已来:区块链技术在物联网与虚拟现实中的应用
随着科技的不断进步,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正在逐渐改变我们的生活和工作方式。本文将探讨这些技术的发展趋势和应用场景,以及它们如何相互融合,为我们带来更便捷、安全和沉浸式的体验。
|
12天前
|
存储 供应链 算法
深入探索区块链技术:原理、应用与未来展望
本文将带你深入了解区块链技术的基本原理,探讨其在金融、供应链、医疗等多个领域的应用案例,并展望其未来的发展趋势。通过本文,你将对区块链技术有一个全面的认识,理解其背后的技术逻辑和应用场景。
|
19天前
|
供应链 安全 区块链
探索区块链技术在数据安全中的应用
本文深入探讨了区块链技术如何革新数据安全领域,特别是在保护个人隐私、增强数据完整性和透明度方面的作用。通过分析区块链的去中心化特性、加密技术以及智能合约的功能,文章阐述了这一技术如何有效防止数据篡改、确保交易记录的不可逆性,并促进跨组织间的信任建立。此外,还讨论了当前区块链技术面临的挑战及未来发展趋势,为理解其在数据安全领域的潜力提供了全面视角。
|
14天前
|
存储 供应链 监控
深入探索区块链技术在供应链管理中的应用####
本文旨在探讨区块链技术如何革新供应链管理,通过分析其核心特性与实际案例,揭示该技术如何增强透明度、提升效率并降低成本。我们将从区块链的基本原理入手,逐步剖析其在供应链各环节中的具体应用,最终展望其未来发展趋势。 ####
43 3
|
17天前
|
存储 供应链 分布式数据库
深入理解区块链技术:原理、应用与挑战
本文旨在探讨区块链技术的基本原理、主要应用及其面临的挑战。通过分析区块链的分布式账本技术、加密算法和共识机制,我们揭示了其如何在无需中心化权威的情况下确保数据的不可篡改性和透明性。此外,文章还讨论了区块链在金融、供应链管理、智能合约等领域的应用案例,并指出了当前区块链技术面临的可扩展性、隐私保护和法律监管等挑战。通过对这些内容的深入分析,我们希望为读者提供一个全面而深入的区块链技术概览。
36 6
|
17天前
|
供应链 物联网 区块链
未来技术的脉动:探索区块链、物联网与虚拟现实的融合趋势
本文深入探讨了区块链技术、物联网(IoT)和虚拟现实(VR)这三个领域的最新发展趋势,以及它们在现代科技生态中的交互作用。通过分析这些技术的独特优势和面临的挑战,我们揭示了它们如何共同塑造未来的技术景观,特别是在数据安全、智能设备管理和沉浸式体验方面。文章还讨论了这些技术融合后可能带来的社会和文化影响,以及它们如何推动创新和促进经济增长。
36 3
|
20天前
|
供应链 安全 数据挖掘
深度剖析区块链技术在金融科技领域的创新应用与挑战####
本文旨在探讨区块链技术于金融科技(FinTech)领域的革新性应用,分析其如何重塑传统金融服务模式,并深入剖析面临的技术与监管挑战。通过案例研究与数据分析,揭示区块链在提升金融效率、增强安全性及促进金融包容性方面的潜力,同时强调构建健全的法律法规框架与技术创新之间的平衡对于推动行业健康发展的重要性。本文不涉及具体代码实现或技术细节,而是聚焦于区块链应用的战略意义与实践挑战。 ####
|
19天前
|
存储 供应链 安全
智能合约与区块链技术的融合:重塑数字信任###
本文深入探讨了智能合约与区块链技术融合的现状、挑战与未来趋势。不同于传统摘要,本文以高度概括的形式,聚焦于两大核心要点:一是智能合约作为区块链上的自执行协议,如何通过代码自动化地促进信任最小化的交易;二是这种融合如何推动数字经济向更加透明、高效、安全的方向发展。全文围绕智能合约的工作原理、区块链提供的底层支持、以及两者结合所面临的技术与非技术挑战展开讨论,旨在为读者提供一个关于这一前沿技术领域的全面而深入的视角。 ###
|
23天前
|
存储 供应链 安全
探索区块链技术在供应链管理中的应用
本文深入探讨了区块链技术在供应链管理中的应用,分析了其如何提高透明度、安全性和效率。通过具体案例研究,展示了区块链如何解决传统供应链中的信任问题,降低成本,并促进更高效的物流管理。文章还讨论了实施区块链技术面临的挑战和未来发展趋势。