美文网首页
区块链-核心问题

区块链-核心问题

作者: 北山学者 | 来源:发表于2018-02-03 17:24 被阅读0次

    区块链是一种去中心化的分布式账本系统,它可以用于登记和发行数字化资产、产权凭证、积分等,并以点对点的方式进行转账、支付和交易。区块链系统与传统的中心化账本系统相比,具有完全公开、不可篡改、防止多重支付等优点,并且不依赖于任何的可信第三方。

    目前区块链技术有六大核心部分:

    1、拜占庭协定
    2、非对称加密技术
    3、容错问题
    4、Paxos 算法(一致性算法)
    5、共识机制
    6、分布式存储
    

    一、拜占庭协定

    拜占庭帝国拥有巨大的财富,周围10个邻邦垂诞已久,但拜占庭高墙耸立,固若金汤,没有一个单独的邻邦能够成功入侵。任何单个邻邦入侵的都会失败,同时也有可能自身被其他9个邻邦入侵。拜占庭帝国防御能力如此之强,至少要有十个邻邦中的一半以上同时进攻,才有可能攻破。

    任何单个城邦的入侵行动都会失败,而入侵者的军队也会被歼灭,使得其自身容易遭到其他九个城邦的入侵和劫掠。这十个城邦之间也互相觊觎对方的财富并持续互相对抗着。而且,拜占庭的防御如此之强,十个邻居的一半以上同时进攻才能攻破它。

    也就是说,如果六个或者更多的相邻敌军一起进攻,他们就会成功并获得拜占庭的财富。然而,如果其中有一个或者更多背叛了其他人,答应一起入侵但在其他人进攻的时候又不干了,也就导致只有五支或者更少的军队在同时进攻,那么所有的进攻军队都会被歼灭,并随后被其他的(包括背叛他们的那(几)个)邻居所劫掠。这是一个由不互相信任的各方构成的网络,但他们又必须一起努力以完成共同的使命。

    二、非对称加密技术

    在上述拜占庭协定中,如果10个将军中的几个同时发起消息,势必会造成系统的混乱,造成各说各的攻击时间方案,行动难以一致。谁都可以发起进攻的信息,但由谁来发出呢?其实这只要加入一个成本就可以了,即:一段时间内只有一个节点可以传播信息。当某个节点发出统一进攻的消息后,各个节点收到发起者的消息必须签名盖章,确认各自的身份。

    在如今看来,非对称加密技术完全可以解决这个签名问题。非对称加密算法的加密和解密使用不同的两个密钥.这两个密钥就是我们经常听到的”公钥”和”私钥”。公钥和私钥一般成对出现, 如果消息使用公钥加密,那么需要该公钥对应的私钥才能解密; 同样,如果消息使用私钥加密,那么需要该私钥对应的公钥才能解密。

    三、容错问题

    假设在此网络中,消息可能会丢失、损坏、延迟、重复发送,并且接受的顺序与发送的顺序不一致。此外,节点的行为可以是任意的:可以随时加入、退出网络,可以丢弃消息、伪造消息、停止工作等,还可能发生各种人为或非人为的故障。

    算法对由共识节点组成的共识系统,提供的容错能力,这种容错能力同时包含安全性和可用性,并适用于任何网络环境。

    四、一致性算法

    一致性算法解决的问题是一个分布式系统如何就某个值(决议)达成一致。目前主流的一致性算法是Paxos算法家族和Raft算法。

    一个典型的场景是,在一个分布式数据库系统中,如果各节点的初始状态一致,每个节点都执行相同的操作序列,那么他们最后能得到一个一致的状态。为保证每个节点执行相同的命令序列,需要在每一条指令上执行一个“一致性算法”以保证每个节点看到的指令一致。一个通用的一致性算法可以应用在许多场景中,是分布式计算中的重要问题。

    节点通信存在两种模型:共享内存和消息传递。
    Paxos算法就是一种基于消息传递模型的一致性算法。

    五、共识机制

    由于点对点网络下存在较高的网络延迟,各个节点所观察到的事务先后顺序不可能完全一致。因此区块链系统需要设计一种机制对在差不多时间内发生的事务的先后顺序进行共识。这种对一个时间窗口内的事务的先后顺序达成共识的算法被称为“共识机制”。

    共识机制则是Ripple首先提出的,数据正确性优先的网络交易同步机制,在共识网络中,无论软件代码怎么变动,无法取得共识就无法进入网络,更不要提分叉了。

    共识机制:区块链事务达成分布式共识的算法。目前主要有几大类共识机制:Pow、Pos、DPos、Pool、PBFT。
    1、Pow(Proof of Work)工作量证明

    就是大家熟悉的挖矿,通过与或运算,计算出一个满足规则的随机数,即获得本次记账权,发出本轮需要记录的数据,全网其它节点验证后一起存储;
    优点:完全去中心化,节点自由进出;
    缺点:目前bitcoin已经吸引全球大部分的算力,其它再用Pow共识机制的区块链应用很难获得相同的算力来保障自身的安全;挖矿造成大量的资源浪费;共识达成的周期较长,不适合商业应用

    2、Pos(Proof of Stake)权益证明

    Pow的一种升级共识机制;根据每个节点所占代币的比例和时间;等比例的降低挖矿难度,从而加快找随机数的速度。
    优点:在一定程度上缩短了共识达成的时间
    缺点:还是需要挖矿,本质上没有解决商业应用的痛点

    3、DPos(Delegated Proof of Stake)股份授权证明机制

    类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账。
    优点:大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证
    缺点:整个共识机制还是依赖于代币,很多商业应用是不需要代币存在的

    4、Pool验证池

    基于传统的分布式一致性技术,加上数据验证机制;是目前行业链大范围在使用的共识机制
    优点:不需要代币也可以工作,在成熟的分布式一致性算法(Pasox、Raft)基础上,实现秒级共识验证;
    缺点:去中心化程度不如bictoin;更适合多方参与的多中心商业模式

    5、PBFT(Practical Byzantine Fault Tolerance),实用拜占庭容错算法。

    解决了原始拜占庭容错算法效率不高的问题,将算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。
    PBFT是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制。每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。将所有的副本组成的集合使用大写字母R表示,使用0到|R|-1的整数表示每一个副本。为了描述方便,假设|R|=3f+1,这里f是有可能失效的副本的最大个数。尽管可以存在多于3f+1个副本,但是额外的副本除了降低性能之外不能提高可靠性。

    六、分布式存储

    分布式存储是一种数据存储技术,通过网络使用每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在网络中的各个角落。所以,分布式存储技术并不是每台电脑都存放完整的数据,而是把数据切割后存放在不同的电脑里。就像存放100个鸡蛋,不是放在同一个篮子里,而是分开放在不同的地方,加起来的总和是100个。

    参考
    1、比特币与拜占庭将军问题
    2、区块链技术六大核心算法
    3、区块链目前的几大共识算法
    4、[区块链]共识算法(POW,POS,DPOS,PBFT)介绍和心得
    5、浅谈区块链共识机制与分布式一致性算法
    6、先解决这四大问题再谈论区块链吧

    相关文章

      网友评论

          本文标题:区块链-核心问题

          本文链接:https://www.haomeiwen.com/subject/kfiuzxtx.html