区块链技术笔记二

区块链(blockchain)技术是维护一个不断增长的数据记录的分布式数据库,这些数据通过密码学的技术和之前被写入的所有数据关联,使得第三方甚至是节点的拥有者难以篡改。区块(block)包含有数据库中实际需要保存的数据,这些数据通过区块组织起来被写入数据库。链(chain)通常指的是利用Merkle tree等方式来校验当前所有区块是否被修改,这一点用过Git的码农们早就熟悉了,回想一下如何修改Git的历史记录吧。

目前已知的一些区块链技术应用大致有这三类:

1 公开区块链(public blockchain) 例子:比特币,Ethereum Frontier。公开区块链上的数据所有人都可以访问,所有人都可以发出交易等待被写入区块链。共识过程的参与者(对应比特币中的矿工)通过密码学技术以及内建的经济激励维护数据库的安全。公开区块链是完全的分布式。

2 协作区块链(federated blockchain) 例子:Hyperledger以及德勤等会计所尝试的审计系统。参与区块链的节点是事先选择好的,节点间很可能是有很好的网络连接。这样的区块链上可以采用非工作量证明的其他共识算法,比如有100家金融机构之间建立了某个区块链,规定必须67个以上的机构同意才算达成共识。这样的区块链上的数据可以是公开的也可以是这些节点参与者内部。部分意义上的分布式。

3 私有区块链(private blockchain) 例子:Eris Industries。参与的节点只有用户自己,数据的访问和使用有严格的权限管理。近期部分金融机构公布的内部使用的区块链技术大都语焉不详,不过很可能都在这个范围内。

对于已经公布细节的区块链技术,大可先看看坐标位于这三者的哪一个。各自亮点和痛点:

1 公开区块链完全分布式,具有比特币的一切特点,然而需要有足够的成本来维持系统运行,依赖于内建的激励。目前来看公开区块链中只有比特币算是足够安全的,如果和比特币的算法一样,乙烷;没有内建奖励,乙烷;容易集中算力攻击(比如只要突击扫货大批显卡之类),吃枣药丸。公开区块链上试图保存的数据越有价值,越要审视其安全性以及安全性带来的交易成本,系统扩展性问题。

3 协作区块链可以做到很好的节点间的连接,只需要极少的成本就能维持运行,提供迅速的交易处理和低廉的交易费用,有很好的扩展性(但是扩展性随着节点增加又会下降),数据可以有一定的隐私。开发者在共识下有能力更改协议,没有比特币hard fork的问题,但是这也意味着在共识下,大家可以一起篡改数据。协作区块链也意味着这个区块链的应用范围不会太广,缺少比特币的网络传播效应。

3 私有区块链实际上是很迷惑的名词,这样的一个系统无非是传统意义上的共享数据库用上Merkle Tree等方式试图说明其中的数据可校验。这样的数据库早有成熟的解决方案, Merkle tree也只是很多成熟方案中的一种。这些项目很容易是“然并卵”。由于全是用户说了算,里面的数据没有无法更改的特性,对于第三方也没有多大的保障。因此很多私有区块链会通过依附在比特币的方式存在,比如定期将系统快照记录到比特币中。

小结:
公开区块链和协作区块链互有优势,公开区块链很难实现得完美,协作区块链需要找到实际迫切需求的应用场景,私有区块链容易“然并卵”。

你可能感兴趣的:(区块链[区块链],区块链技术)