京东秒杀
国美-超级5
索尼Xperia旗舰
限时优惠页 - 京东
自营热卖

区块链几种核心算法

懒懒的幸福 1年前   阅读数 79 0

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

网络上广为流传的一段关于区块链的形象解释是:一对恋爱中的男女,男生某天对女生说“我爱你”,然后女生将这句话广泛告知父母、朋友、微信群等,并打赏小费感谢大家帮忙记住和作证,这个小费就是“代币”;男生说的“我爱你”这句话、说话的时间地点等各种信息打包形成的结构化信息包,就叫“区块”;而父母、朋友、微信群等节点就是“链”;男生如果不承认说过这句话,女生翻出账本对质,这就是区块链应用。

拜占庭协定
拜占庭的故事大概是这么说的:拜占庭帝国拥有巨大的财富,周围10个邻邦垂诞已久,但拜占庭高墙耸立,固若金汤,没有一个单独的邻邦能够成功入侵。任何单个邻邦入侵的都会失败,同时也有可能自身被其他9个邻邦入侵。拜占庭帝国防御能力如此之强,至少要有十个邻邦中的一半以上同时进攻,才有可能攻破。然而,如果其中的一个或者几个邻邦本身答应好一起进攻,但实际过程出现背叛,那么入侵者可能都会被歼灭。于是每一方都小心行事,不敢轻易相信邻国。这就是拜占庭将军问题。

在这个分布式网络里:每个将军都有一份实时与其他将军同步的消息账本。账本里有每个将军的签名都是可以验证身份的。如果有哪些消息不一致,可以知道消息不一致的是哪些将军。尽管有消息不一致的,只要超过半数同意进攻,少数服从多数,共识达成。

由此,在一个分布式的系统中,尽管有坏人,坏人可以做任意事情(不受protocol限制),比如不响应、发送错误信息、对不同节点发送不同决定、不同错误节点联合起来干坏事等等。但是,只要大多数人是好人,就完全有可能去中心化地实现共识

Paxos 算法(一致性算法)

Paxos算法解决的问题是一个分布式系统如何就某个值(决议)达成一致。一个典型的场景是,在一个分布式数据库系统中,如果各节点的初始状态一致,每个节点都执行相同的操作序列,那么他们最后能得到一个一致的状态。MT5交易软件http://www.gendan5.com/mt5.html为保证每个节点执行相同的命令序列,需要在每一条指令上执行一个“一致性算法”以保证每个节点看到的指令一致。一个通用的一致性算法可以应用在许多场景中,是分布式计算中的重要问题。 节点通信存在两种模型:共享内存和消息传递。Paxos算法就是一种基于消息传递模型的一致性算法。

区块链共识机制

区块链是一种分布式去中心化的架构。需要解决的问题就是在去中心化的条件下能够达到统一的认知,对于某些账单是否有效,账单是否可以写入。确定网络中的记账节点,保证数据的一致性与正确性。通俗一点来讲,某些区块链操作比如增加交易,生成新的区块均需要进行全网的所有节点确认。如果大部分的节点认为这个有效,那么则进行操作。


延迟工作量证明(dPoW,Delayed Proof-of-Work)、
优点:节能、安全性增加、可以通过非直接提供 Bitcoin(或是其它任何安全链),添加价值到其它区块链,无需付出 Bitcoin(或是其它任何安全链)交易的代价。
不足:只有使用 PoW 或 PoS 的区块链,才能采用这种共识算法。
在“公证员激活”(Notaries AcTIve)模式下,必须校准不同节点(公证员或正常节点)的哈希率,否则哈希率间的差异会爆炸

总结


共识机制目前已经成为了区块链系统性能的关键瓶颈。单一的共识算法均存在各种问题,例如PoW算法存在消耗大量计算资源及性能低下的问题;PoS或DPoS存在“富豪统治”问题。融合多种共识算法优势的想法正受到越来越广泛的关注。此外,包括在少部分可信节点中选取主节点的共识算法、保证高概率正确性的的异步共识算法、基于特定安全性前提并减少网络广播的共识算法、基于可信硬件的共识算法等,也是未来区块链共识算法的研究热点。

随着区块链中账本数据的增加和业务量的提升,可扩展性也是区块链系统迫切需要解决的问题,同时对共识算法也提出了新的挑战。以太坊项目正


注意:本文归作者所有,未经作者允许,不得转载

全部评论: 0

    我有话说: