【区块链知识】区块链的底层技术

KEY 诸神的黄昏
  • 时间:
  • 浏览:
区块链底层技术的三要素:算法、账本、网络1. 共享帐本共享账本

准确的说应该是分布式账本技术,这个技术从实质上说就是一个可以在多个站点、不同地理位置或者多个机构组成的网络里进行分享的资产数据库。在一个网络里的参与者可以获得一个唯一、真实账本的副本。账本里的任何改动都会在所有的副本中被反映出来,反应时间会在几分钟甚至是几秒内。在这个账本里存储的资产可以是金融、法律定义上的、实体的或是电子的资产。在这个账本里存储的资产的安全性和准确性是通过公私钥以及签名的使用去控制账本的访问权,从而实现密码学基础上的维护。 根据网络中达成共识的规则,账本中的记录可以由一个、一些或者是所有参与者共同进行更新。分布式账本技术使用密码哈希算法和数字签名来确保交易的完整性,同时确保共享账本是精确副本,并降低了发生交易欺诈的风险,因为篡改需要同时在许多地方同时执行。密码哈希算法(比如 SHA256 计算算法)能确保对交易输入的任何改动 — 甚至是最细微的改动 — 都会计算出一个不同的哈希值,表明交易输入可能被损坏。数字签名则确保交易源自发送方(已使用私钥签名)而不是冒名顶替者。

2. 共识算法

这里主要讲述区块链在发展过程中出现的五种典型共识算法:PoW、PoS、DPoS、PBFT和联合共识。早期,比特币Bitcoin作为区块链技术的第一个成功应用率先引入了工作量证明机制(PoW,Proof of Work),工作量证明机制利用了Hash算法在随机性上这个非常重要的特性。PoW机制俗称挖矿,这里挖的是比特币里的每一个区块。每个区块用包含的交易、时间、以及一个自定义数值来计算这个区块的Hash。 一个合格的区块的Hash必须满足前N位为零,因此需要不断的调整刚才那三个参数来寻找满足条件的Hash。由于Hash算法足够随机,零的个数越多,算出这个Hash的概率越低。此时,要得到合理的Block Hash需要经过大量尝试计算,计算时间取决于机器的哈希运算速度。当某个节点提供出一个合理的Block Hash值,说明该节点确实经过了大量的尝试计算,这就是工作量证明。当然,并不能得出计算次数的绝对值,因为寻找合格的Hash是一个概率事件。当节点拥有占全网n%的算力时,该节点即有n%的概率率先发布一个合格的区块。随后,由于PoW这种算法极其耗费计算资源,截至写本文时(2017年8月),据测算,比特币网络消耗的电力就已经高达15TW。 因此,随后的NXT等新兴密码学货币提出了一种新的思路即股权证明(PoS,Proof of Stake)。这种模式会根据你持有数字货币的量和时间,决定你可以发布下一个区块的概率。在PoS模式下,有一个名词叫币龄,每个币每天产生1币龄,比如你持有100个币,总共持有了30天,那么,此时你的币龄就为3000,然后按照所有人的币龄根据一个随机算法决定谁来发布下一个区块。这个时候,如果你被选中发布了一个POS区块,你的币龄就会被清空为0重新再来。PoS也不是没有缺点,最大的缺点就是在于效率上。因此,比特股BitShares提出了委托股权证明机制(DPoS,Delegated Proof of Stake)。它的原理是让每一个持有比特股的人进行投票,由此产生101位代表 , 我们可以将其理解为101个超级节点或者矿池,而这101个超级节点彼此的权利是完全相等的。从某种角度来看,DPoS有点像是议会制度或人民代表大会制度。如果代表不能履行他们的职责(当轮到他们时,没能生成区块),他们会被除名,网络会选出新的超级节点来取代他们。以上的这些共识机制都依赖密码学货币,因为不管是PoW还是PoS,驱动寻找区块的源动力都是发布新区块的货币奖励。 对于无代币的系统如HyperLedger Fabric,如何选择共识机制?这时,我们可以回过头看看PBFT。BFT(Byzantine Fault Tolerance,拜占庭容错算法)是很早就提出的分布式容错算法,可以查找拜占庭问题来进一步了解,这里不做详述。PBFT作为BFT的一种实现,是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制。每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。将所有的副本组成的集合使用大写字母R表示,使用0到|R|-1的整数表示每一个副本。为了描述方便,假设|R|=3f+1,这里f是有可能失效的副本的最大个数。尽管可以存在多于3f+1个副本,但是额外的副本除了降低性能之外不能提高可靠性。除此之外,还有一种基于投票的联合共识(Voting),以Ripple为代表。这种共识使网络能够基于特殊节点列表达成共识。初始特殊节点列表就像一个俱乐部,要接纳一个新成员,必须由51%的该俱乐部会员投票通过。共识遵循这核心成员的51%权力,外部人员则没有影响力。这种共识方式同样极大的提高了效率,但是却需要确保特殊节点中恶意节点不能超过51%,牺牲的是整个网络的去中心化。 这是区块链的哈希算法图 也是所谓挖矿的玩法,需要猜这个哈希值,第一个猜对的就有机会获得回报,也就是矿工报酬!

3. P2P网络

P2P为大众所熟知主要要归功于BitTorrent及BT的流行,而P2P网络的核心概念即彼此连接的多台计算机之间都处于对等的地位,各台计算机有相同的功能,无主从之分,一台计算机既可作为服务器,设定共享资源供网络中其他计算机所使用,又可以作为工作站,整个网络一般来说不依赖专用的集中服务器,也没有专用的工作站。网络中的每一台计算机既能充当网络服务的请求者,又对其它计算机的请求做出响应,提供资源、服务和内容。