2024-04-26 05:12:45
区块链(英语:Blockchain或Block chain)是一种分布式数据库,大家可能都有所耳闻的比特币,核心技术用的就是它。区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次网络交易的信息,用于验证其信息的有效性和生成下一个区块。用通俗的概念讲,区块链就是一本人人可记的账。在一个公司或机构里,多数人只有看账的份儿,而只有少数受过专业训练的人,才有权提笔记账。当然,区块链并非传统意义上的账本,它在技术原理上有以下三个关键点:第一,去中心化。一个践行区块链技术的网络中,其所涵盖的每台计算机均可读取、添加记录,从账本这个角度讲,他们就是共同记账的人,而没有权威人士从中指导、修正。第二,非对称加密。别看这本账人人可记,可若非局内人,一定读不懂。因为,在记账过程中,每个人都遵从统一的加密规则,但读取时,却必须使用自己独有的解密方式。因此,虽然每个人都保存着这本不断更新的账,但能读懂的部分,却仅限于自己能解密的那一块,也就是与自己相关的那一部分。第三,时间印记。也就是时间戳(英语:Timestamp),是指字符串或编码信息用于辨识记录下来的时间日期。区块链上的每一个区块,是按照其所生成的时间按先后顺序排列的,并经过集体认证,确认成立。而且,之前的记录是无法被修改的。就像在一本账里,我们可以通过一个时间点之后的记录,索引、验证之前的内容。而这些内容一旦被确认,再行篡改就难上加难。
区块链技术是维护一个不断增长的数据记录的分布式数据库,这些数据通过密码学的技术和之前被写入的所有数据关联,使得第三方甚至是节点的拥有者难以篡改。区块(block)包含有数据库中实际需要保存的数据,这些数据通过区块组织起来被写入数据库。链(chain)通常指的是利用Merkle tree等方式来校验当前所有区块是否被修改,这一点用过Git的码农们早就熟悉了,回想一下如何修改Git的历史记录吧。
区块链技术主要分为三大类,主要是公开、协作、私有。
公开区块链(public blockchain)
例子:比特币,Ethereum Frontier。公开区块链上的数据所有人都可以访问,所有人都可以发出交易等待被写入区块链。共识过程的参与者(对应比特币中的矿工)通过密码学技术以及内建的经济激励维护数据库的安全。公开区块链是完全的分布式。
亮点和痛点:公开区块链完全分布式,具有比特币的一切特点,然而需要有足够的成本来维持系统运行,依赖于内建的激励。目前来看公开区块链中只有比特币算是足够安全的,如果和比特币的算法一样,乙烷;没有内建奖励,乙烷;容易集中算力攻击(比如只要突击扫货大批显卡之类),吃枣药丸。公开区块链上试图保存的数据越有价值,越要审视其安全性以及安全性带来的交易成本,系统扩展性问题。
协作区块链(federated blockchain)
例子:Hyperledger以及德勤等会计所尝试的审计系统。参与区块链的节点是事先选择好的,节点间很可能是有很好的网络连接。这样的区块链上可以采用非工作量证明的其他共识算法,比如有100家金融机构之间建立了某个区块链,规定必须67个以上的机构同意才算达成共识。这样的区块链上的数据可以是公开的也可以是这些节点参与者内部。部分意义上的分布式。
亮点和痛点:协作区块链可以做到很好的节点间的连接,只需要极少的成本就能维持运行,提供迅速的交易处理和低廉的交易费用,有很好的扩展性(但是扩展性随着节点增加又会下降),数据可以有一定的隐私。开发者在共识下有能力更改协议,没有比特币hard fork的问题,但是这也意味着在共识下,大家可以一起篡改数据。协作区块链也意味着这个区块链的应用范围不会太广,缺少比特币的网络传播效应。
私有区块链(private blockchain)
例子:Eris Industries。参与的节点只有用户自己,数据的访问和使用有严格的权限管理。近期部分金融机构公布的内部使用的区块链技术大都语焉不详,不过很可能都在这个范围内。
亮点和痛点:私有区块链实际上是很迷惑的名词,这样的一个系统无非是传统意义上的共享数据库用上Merkle Tree等方式试图说明其中的数据可校验。这样的数据库早有成熟的解决方案, Merkle tree也只是很多成熟方案中的一种。这些项目很容易是“然并卵”。由于全是用户说了算,里面的数据没有无法更改的特性,对于第三方也没有多大的保障。因此很多私有区块链会通过依附在比特币的方式存在,比如定期将系统快照记录到比特币中。
2024-04-26 02:22:26
2024-04-26 05:42:10
2024-04-26 02:56:43