区块链

词条名称 区块链

英文 Blockchain

词条释义

区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约集体维护可靠数据库的技术方案。

其实区块链并不是新发明的一种技术,而是一系列学科和技术综合的结果,包括IT技术、通信技术、经济学、密码学、数学、博弈论等。这些学科和技术经过人类不断地总结和验证,最终碰撞并孕育出区块链技术。

区块链数据结构、密码学加密、共识机制和分布式数据存储是区块链的核心技术构成。只要理解这4个核心技术的意义,就可以基本理解区块链的本质。

从功能上讲,区块链是一套数值交换系统,一份可以完全信任的超级账本。其他的一切技术,都是实现这个系统的条件。所以,计算哈希值挖矿不是区块链的目的,发行代币也不是区块链的目的。

词条扩展

1.非对称加密及哈希算法

(1)对称加密

对称加密算法,是指加密使用的密钥和解密使用的密钥是相同的。也就是说,加密和解密都使用同一个密钥。因此如果对称加密算法要保证安全性,密钥要做好保密。

这是对称加密的一大缺点,交易双方都使用同样的钥匙,让安全性得不到保证。此外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一钥匙,这会使得发、收信双方所拥有的钥匙数量成几何级数增长,密钥管理成为用户的负担。比如,如果你为QQ、微信、支付宝、微博、网银、摩拜单车都设置不同的登录密码和支付密码,那么记忆这些密码将成为生活中的灾难。

(2)非对称加密

与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(Publickey)和私有密钥(Private key)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个相同的密钥,所以这种算法叫非对称加密算法。

(3)哈希算法

为了便于识别和验证信息的完整性,比特币系统通过调用操作系统底层的随机数生成器来生成256位随机数作为私钥。比特币私钥的总量大,极难通过遍历全部私钥来获得存有比特币的私钥,因而在密码学上是安全的。

256位二进制形式的比特币私钥,通过SHA256哈希算法和 Base58转换,形成50个字符长度易识别和书写的私钥供用户保存。

而以数字开头的33字符长度的比特币地址,以256位二进制私钥的比特币私钥开始,首先经过椭圆曲线算法(Secp256k1)生成65字符长度的随机数公钥,然后将65字符的公钥进行SHA256和RIPEMD160双哈希运算生成20字节长度的摘要结果(即 Hash160的结果),再经过SHA256哈希算法和 Base58转换形成33字符长度的比特币地址,如图2-1所示。

2.区块链数据结构及时间戳

区块链(Blockchain),原本是分为区块(Block)和链(Chain)。区块(Block)是记录一段时间内发生的交易和状态结果,主要记载了区块头、交易详情、交易计数器和区块大小等数据,是对当前账本状态的一次共识。

每个区块相当于账本中的一页,这些数据通过区块(Block)的文件永久记录在数字货币网络上。

·区块头。包含上一区块头的哈希值(让区块按顺序链接在一起)、时间戳(该区块生产时间)、随机数(全网算力计算出的该区块的最终答案),以及难度系数。

·交易详情。是每个区块链中的主要内容,包括每笔交易的转出方、转出方数字签名、收入方和金额。

.交易计数器。显示每个区块中包含交易的数值。

·区块大小。区块的体积。比特币目前的体积不超过1MB。

链(Chain)是由一个一个区块按照发生的时间顺序串联而成,是整个状态变化的日志记录,通过时间戳机制,保证区块按时间顺序链接成链。

“邮截”是邮政系统标明邮件寄出或者收到的时间地点的盖章印记,时间戳类似邮戳,服务器给数据块加上时间标记,用于标识数据和时间的关系。时间戳服务器把当前数据块的哈希值打上时间戳后,发布到网络中。这就证明了在标记的时间刻度下,这个数据是存在的。每一个时间戳对应的数据块中,包括了前一个数据块的时间戳哈希值,于是这样可以形成数据链。

3.分布式存储

区块链采用的分布式存储数据,所有信息都是在区块链系统中点对点( Peer to Peer)进行传播的,信息的传递没有中心处理器,实现了“没有中间商赚差价”的去中心化网络。而点对点(Peer to Peer即 P2P)技术起源于1997年,在2000年时技术基本成熟。在 P2P网络环境中,互相连接的计算机都处于对等的地位,无主从之分,一台计算机(节点)既可作为服务器,也可以作为工作站,信息实现了分布式存储。例如BT下载就是一种P2P传输,用户越多,下载速度越快。eMule 电驴、酷狗等软件都采用P2P形式进行数据下载。所以说区块链是一个去中心化的系统。

51%攻击

在区块链系统中,区块链的数据库由散布在全球的各个节点进行更新和维护。所有节点都会参与新数据的录入过程。对于加入区块链的新数据,大多数节点必须达成一致才能成功写入。这种机制保证了数据的安全,让篡改内容变得非常困难,除非篡改者掌握了大多数节点和算力,才有可能篡改数据,这就是比特币的51%攻击原理。算力是维系全网运转的力量。51%攻击就是当某一方掌握全网51%的算力时,可以篡改更新的数据结果。而绝大多数矿工,只会通过维护数据(挖矿)来获得收益,这是从人性角度出发的利益最大化的选择。目前,全网算力已经越来越高,单一的个人和组织越来越难以组织巨大的算力来对抗全世界的矿工。

4共识机制

(1)工作量证明机制(Proof of Work)。

工作量证明机制 POW,意思就是谁的工作量越多,收益就越大。这里的工作就是猜数字,谁能最快地猜出这个随机且唯一的数字,谁就能做信息公示人。这种机制的优点是算法简单,容易实现,而且节点间无需交换额外的信息即可达成共识。同时,在 POW机制下,想破坏系统需要投入极大的算力成本,需要联合全网超过51%的算力才能篡改系统。比特币是这种共识机制的代表。

在这种共识机制下,谁的工作量在全网占比越多,获得收益的几率就越多。相当于谁拥有的算力越多,猜到的数字就会越多。在比特币发布初期,全网算力很少,所以个人电脑的算力就可以挖矿。2009年1月3日,中本聪在位于芬兰赫尔辛基的一个小型服务器上挖出了第一批50个比特币。

POW是久经考验的共识机制,是目前所有共识机制中运行最久的,是相对公平的共识机制。

(2)DPOS共识机制

DPOS是将记账人的角色专业化,先通过权益来选出记账人,类似选出群众代表,然后记账人之间再轮流记账。通过大幅缩小参与验证和记账节点的数量可以达到秒级共识验证,商业化前景远大。

2018年上半年暴涨的明星币种 EOS,就是采用DPOS记账机制。全球多家机构积极参与了“BP”,即“区块生产者节点”的登记与竞选,竞选21个主节点席位。EOS总量10亿个,每年增发的5%将被21个主节点平分,平均每个主节点每年能分配到238万个 EOS。一个EOS按 30~1000元价格区间计算,每个节点每年收益约8000万至23亿元人民币。

DPOS的不足之处是中心化太明显,毕竟全球仅有二十多个超级代表。所以,DPOS共识机制也在不断地进化,不断地寻找兼顾效率和安全的方式。

(3)·拜占庭共识算法( Practical Byzantine FaultTolerance- PBFT)。

它与之前两种都不相同,PBFT以计算为基础,没有代币奖励。由链上所有人参与投票,少于(N-1)/3个节点反对时就获得公示信息的权利。这个机制的优点是共识效率高、容错性高,缺点是去中心化程度不高。当有1/3及以上的记账人停止工作后,系统将无法提供服务;当有1/3及以上的记账人联合作恶时,且其他所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使系统出现分叉。

(4)dBFT ( delegated BFT)授权拜占庭容错算法。

这是由权益来选出记账人,然后记账人之间通过拜占庭容错算法来达成共识。此算法在 PBFT基础上进行了改进:将C/S 架构的请求响应模式,改进为适合P2P网络的对等节点模式;将静态的共识参与节点改进为可动态进入、退出的动态共识参与节点;为共识参与节点的产生设计了一套基于持有权益比例的投票机制,通过投票决定共识参与节点(记账节点);以及在区块链中引入数字证书,解决了投票中对记账节点真实身份的认证问题。

这个机制的优点是:采用专业化的记账人;可以容忍任何类型的错误;记账由多人协同完成,每一个区块都有最终性,不会分叉;算法的可靠性有严格的数学证明。缺点是当有1/3及以上的记账人停止工作后,系统将无法提供服务。还有当有1/3及以上的记账人联合作恶,且其他所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使系统出现分叉。

(5)POOL验证池

这种机制基于传统的分布式一致性技术,加上数据验证的机制。优点是不需要代币也可以工作,在成熟的分布式一致性算法的基础上,实现秒级共识验证。缺点是去中心化程度不高。更适合多方参与的多中心商业模式。除了上述5种共识机制以外,还有DSC协议(动态权益共识协议〉等,不同的算法有不同的优势和不足,现有的共识机制都不算完美,很难实现性能、安全和去中心化同时兼得。不过,在不同的应用场景,运用不同的共识机制,可以尽最大可能降低现有机制的缺憾。共识算法的进化脚步也从未停下。

 

5.区块链特征

(1)去中心化

去中心化是区块链技术的核心特征。基于分布式存储及 P2P技术,区块链上每一个节点的信息传递都是点到点、都是平等的,都可以根据共识机制做到对数据的存储、记录和更新。

(2)去信任化

区块数据结构存储记录了所有的历史数据,因此区块链上的每一条数据都是可以追溯的,且不可篡改。用户通过区块链处理信息时,不需要通过信任任何第三方来确保信息传递成功,节约了传统交易的信任成本。

货币是信任的凝结。而社会学的信任成本,甚至比经济学的信任成本还要大。公证处、法庭、律师事务所、审计师事务所等诸多社会机构的存在,都是为了促进社会信任的完善而存在的。不过信任机构存在的本身就意味着成本,无论这些成本是国家还是个人所付出。而区块链技术,正努力把道德问题和法律问题变成技术问题。显而易见,如果能够节约巨大的社会信任成本,那将会带来非凡的社会整体进步。

(3)去中介化

现实社会中,中介组织作为可信任的第三方,成为交易中不可或缺的信任担保环节。由于区块链技术的共识机制等核心技术设计,使整个信息传递实现点对点完成,同时全网确认该交易真实有效。达到“没有中间商赚差价”的去中介效果,交易成本也会大幅降低。

(4)集体共识维护

共识机制让所有具有维护功能的节点维护整个区块链网络,各节点之间关系平等,任何节点都可以拥有全网的总账本,所有节点都可以在区块上自由添加信息,在所有节点认可后进行交易。

(5)可信数据库   

在共识机制下,数据被添加到区块链后,该数据就被所有节点共同更新并记录,通过时间戳确保顺序关系,通过密码学确保数据安全,并随着全网算力的不断提高,全网节点不断增多,篡改的难度与成本也会越来越高。实现数据库信息的完全可信,同时所有传输信息不可复制,是成为资产的重要特性。

(6)匿名性

基于非对称加密及哈希算法,区块链网络上各个节点之间的数据交换都是按固定规则进行的,可以实现基于公钥生成的地址而非个人实际身份进行数据交换。每个人也可以拥有无限多的交易地址,因为大家只能通过地址进行交易,所以都不知道对方是谁。

不同的数字货币拥有不同的匿名性。具有最基本匿名性的是比特币,能够查询到地址的拥有者,从而查询该地址所有的转账记录及资产,而Zcash 的匿名性最强,只有拥有钱包地址私钥的人,才能看到该地址的转账信息。

6.区块链类型

(1)公有链( Public Blockchain )

公有链,是指全世界任何节点的任何人,在任何地理位置,都可以进入系统读取数据、发送交易、竞争记账等参与共识的区块链。没有任何机构或个人可以篡改其中的数据,因此公有链是完全去中心化的。比特币和以太坊都是公有链的代表。公有链一般通过发行代币(Token)来鼓励参与者竞争记账(即挖掘),以确保数据的安全性和共识更新。

比特币平均每10分钟产生1个区块,且其POW机制很难缩短区块时间,POS机制相对而言可缩短区块时间,但更易产生分叉。所以交易需要等待更多确认才被认为安全。一般认为,比特币中的区块经过6个确认后才是足够安全的,这大概需要1个小时。这样的确认速度难以满足商业级的应用。因此,ETH及 EOS等支持更多写入速度的公有链正在不断发展。

(2)联盟链(Consortium Blockchain )

联盟链是指有若干机构共同参与和管理的区块链,每个机构都运行N个节点。联盟链的数据只允许系统内不同的机构进行读写和交易,通过数字证书的方式实现基于PKI的身份管理体系、交易或提案的发起,以参与方共同签名验证来达成共识,因此不需要工作量证明(POW),也不存在数字货币(代币),提高了交易达成的效率,节约了大量计算成本(算力硬件投入和电力能源消耗)。通常情况下,参与联盟链的节点会被划分不同的读写权限,能支持每秒1000次以上的数据写入。

(3)私有链(Private Blockchain )

与公有链完全去中心化不同,私有链的进入权限由某个组织进行控制,各个节点参与资格由该组织授权控制。由于参与的各个节点是有限且可控的,私有链往往拥有很快的处理速度,能支持每秒1000以上的数据写入,同时降低内部各个节点的交易成本。节点可以实名参与,因此具有确认身份的金融属性。私有链的价值主要是提供安全、可追溯、不可篡改、自动执行的运算平台,可以同时防范来自内部和外部对数据的安全攻击或篡改,这在传统的系统中是很难做到的。

私有链的应用场景一般在企业内部,如分公司的库存管理,各地数据的汇总统计等,也可以用在政府的预算和执行等可以被公众监督的领域。大型金融集团目前也倾向于使用私有链技术。

(4)混合链( Combination Blockchain )

当公有链和私有链的各自优势相结合时,就会出现混合链。混合链的开发难度大,但前景广阔。

未来市场上,一定会出现巨头型的底层技术和协议开发的公司,这些巨头公司会架设出不同用途的公有链、私有链或者联盟链,基于对性能和安全性及应用场景的不同需求,然后嫁接不同行业的应用。比如一条支持高并发的通信类公有链,一条侧重安全性的支付联盟链,等等。

(5)主链与侧链

根据区块链的对接类型可以分为主链和侧链。侧链是主链外的另一个区块链,与主链中的某一个节点关联,通过主链的算力维持侧链的可靠性。侧链可以实现多个区块链间的价值转移,可以确认来自于其他区块链的数据,从而让不同的数字资产之间实现兑换。例如,让比特币与 Ripple 币在二者的区块链上按照一定的汇率相互转移。侧链的这种功能,还可以作为根据区块链的对接类型可以分为主链和侧链。侧链是主链外的另一个区块链,与主链中的某一个节点关联,通过主链的算力维持侧链的可靠性。侧链可以实现多个区块链间的价值转移,可以确认来自于其他区块链的数据,从而让不同的数字资产之间实现兑换。例如,让比特币与 Ripple 币在二者的区块链上按照一定的汇率相互转移。侧链的这种功能,还可以作为加强隐私保护的新方法。

7.区块链的层级结构

区块链可分为三个层级结构——协议层、扩展层和应用层,它们相互独立又不可分割。在扩展层中,又可以加入合约层和激励层,如图2-6所示。

(1)协议层

协议层包括数据层和网络层,是最底层的技术,它类似于手机的操作系统。涉及网络编程、分布式算法、加密签名、数据存储技术等几个方面。关键难点在网络编程这块,所以并发处理简单的语言如Node.js 及 GO语言比较受欢迎,区块链技术的人才也是以这方面为主。

①协议层中的数据层

协议层中的数据层也被称作存储层,是区块链从创世区块开始的链式结构。储存了区块数据及随机数、时间戳、公钥、私钥数据等。

②协议层中的网络层

分布式算法、加密签名等实现区块链 P2P信息传递的技术都要在网络层中实现,所以网络层是通过P2P技术实现分布式网络机制的。我们之前的P2P经验莫过于只要有“种子”,就能下载视频。区块链上的种子就是各个节点,因此区块链具备自动组网的功能。

(2)扩展层/共识层

扩展层又称为共识层,顾名思义,该层主要包括共识机制的设定。共识层类似电脑的驱动,共识是区块链的灵魂。激励层包括收益的发行和分配制度,目的是激励节点按照共识机制参与到区块链数据的验证工作中,从而确保整个系统的健康运行。

合约层包括各种脚本代码、智能合约及侧链应用等,是区块链可编程的基础。智能合约是区块链去信任的基础,不需要第三方信任背书或者监督即可执行。

(3)应用层

应用层是提供给最终封装给用户直接接触的区块链应用,就像我们手机里安装的App。它可以以搜索引擎、电商网站、新闻网站及App 等形式出现在用户面前。

词条应用

区块链、数字货币

词条来源

《区块链百科全书  人人都能看懂的比特币等数字货币入门手册》

词条应用

区块链 数字货币

Entries个相关