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

本文涉及的产品
密钥管理服务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类应用进行分析,并展望区块链的市场前景。

相关文章
|
14天前
|
存储 供应链 物联网
探索未来:区块链、物联网与虚拟现实技术的融合与创新
【10月更文挑战第15天】本文深入探讨了新兴技术如区块链、物联网(IoT)和虚拟现实(VR)的发展趋势及其在现代社会的应用。通过分析这些技术的独特属性和它们如何相互补充,我们揭示了一个由高度互联、智能化和沉浸式体验定义的未来图景。文章不仅讨论了这些技术当前的挑战,还展望了它们在未来可能带来的转变,旨在为读者提供对这些令人兴奋的技术趋势的全面理解。
|
7天前
|
存储 安全 分布式数据库
探索区块链技术在数据安全中的应用
【10月更文挑战第21天】 本文深入探讨了区块链技术在增强数据安全性方面的应用。通过对区块链基本原理的解释,结合其在数据存储、传输和访问控制中的具体实现方式,本文揭示了区块链技术如何有效防止数据篡改和未授权访问。此外,文章还讨论了区块链技术面临的挑战及其未来发展趋势,为读者提供了一个全面了解区块链技术在数据安全领域应用的视角。
28 4
|
14天前
|
安全 物联网 区块链
未来已来:探索区块链技术、物联网与虚拟现实的融合趋势
【10月更文挑战第15天】 在数字化浪潮中,区块链、物联网(IoT)和虚拟现实(VR)技术正引领着一场革命。本文将深入探讨这三种技术的发展趋势和相互融合的潜力,以及它们如何共同塑造我们的未来。我们将从基本概念入手,逐步揭示这些技术如何影响经济、社会和日常生活,同时提供具体应用场景以展示其变革力量。
|
1天前
|
供应链 物联网 区块链
未来已来:区块链技术、物联网与虚拟现实的融合与创新
【10月更文挑战第28天】在数字化浪潮的推动下,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正逐步渗透至我们的日常生活中。本文将探讨这些技术的发展趋势,以及它们如何相互融合,创造出前所未有的应用场景。我们将通过实际案例,展示这些技术如何改变工业、医疗、教育和娱乐等多个领域。最后,我们将展望这些技术未来的发展方向,以及它们可能带来的社会变革。
21 12
|
1天前
|
供应链 区块链
探索区块链技术在供应链管理中的应用
【10月更文挑战第28天】 本文深入探讨了区块链技术如何革新传统的供应链管理系统,通过提供一个去中心化、透明且不可篡改的数据记录平台,来增强整个供应链的透明度和效率。文章首先介绍了区块链技术的基本原理及其核心特性,随后分析了当前供应链管理面临的主要挑战,并详细讨论了区块链技术在解决这些问题中的潜在作用。通过具体案例分析,本文展示了区块链技术在实际供应链管理中的应用效果,包括提高数据透明度、降低运营成本、增强供应链各环节之间的信任等方面。最后,文章还探讨了实施区块链解决方案时可能遇到的技术与非技术障碍,并对未来区块链技术在供应链领域的发展趋势进行了展望。
9 2
|
6天前
|
人工智能 供应链 安全
探索区块链技术的奥秘与应用
在数字化浪潮中,区块链技术以其独特的去中心化、不可篡改和透明性特点,正逐渐改变着我们的世界。本文旨在深入浅出地解析区块链技术的基本原理,探讨其在金融、供应链管理、版权保护等领域的创新应用,并展望未来发展趋势,为读者揭开这一神秘面纱背后的真实面貌。
|
9天前
|
安全 物联网 区块链
探索未来:区块链技术在物联网和虚拟现实中的融合应用
【10月更文挑战第21天】本文深入探讨了区块链、物联网(IoT)和虚拟现实(VR)这三项前沿技术的发展趋势,并分析了它们如何相互作用以推动创新。我们将通过具体案例来揭示这些技术如何改变我们的工作和生活方式,同时提供对未来发展的一些预测。
|
9天前
|
供应链 物联网 区块链
未来技术浪潮之巅:区块链、物联网与虚拟现实的应用探索
【10月更文挑战第20天】随着技术的飞速发展,新兴技术如区块链、物联网和虚拟现实正在重塑我们的工作和生活方式。本文将深入探讨这些技术的发展趋势和应用场景,并展示如何通过代码示例实现它们在现实世界中的应用。让我们一起揭开这些技术神秘面纱,探索它们在未来的无限可能!
|
16天前
|
机器学习/深度学习 人工智能 供应链
探索未来技术前沿:人工智能与区块链的融合创新
【10月更文挑战第14天】 探索未来技术前沿:人工智能与区块链的融合创新
|
19天前
|
供应链 物联网 区块链
未来技术浪潮:区块链、物联网与虚拟现实的融合与创新
【10月更文挑战第11天】 本文深入探讨了区块链技术、物联网(IoT)和虚拟现实(VR)这三种前沿技术的发展趋势及其在各领域的应用前景。通过分析每种技术的核心特点和潜在应用场景,揭示了它们如何相互融合、促进创新,并共同塑造未来社会的面貌。
41 3