区块链科普篇是什么 (区块链科普知识大全)

私链/公链/联盟链

什么是私链?

私链是指“私有链”,属于非公开的区块链网络,并且其目标群体是针对某一实体或企业内部,其运维方式由企业自己决定。

什么是公链?

公链是相对与私链来说的, 是指“公有链”,公链开放于整个互联网网络,任何人都可以参与公链交易的见证。

什么是联盟链?

联盟链指那些只针对特定群体或某一行业的区块链网络,其在内部指定多个预选节点为记账人,每个块的生成均由所选的记账人节点共同决定。预选的节点记账人加入需要经过已经存在的节点来共同授权才可以,这样的目的是限制节点数量,提高交易效率。

三种链的优缺点:

交易效率方面:私链 > 联盟链 > 公链

运营对象方面:私链(组织内部)、公链(全世界节点)、联盟链(预选节点)

网络稳定性方面:公链 > 联盟链 > 私链

运维成本方面:公链 > 联盟链 > 私链

因此针对不同的群体,各种链均有其擅长领域。

跨链技术

同一条区块链网络内部信息实现了交互,但是随着区块链网络越来越多,多个区块链间交互就成了区块链发展的限制条件,无*公论**链还是私链来看,跨链技术的实现成为了区块链发展的关键因素之一,它能够在各个孤岛式的区块链间建立起桥梁。

区块链的科普知识,区块链科普篇解释

跨链技术是一条独立公链,只是这条公链的建设是为了解决其他几个链的资产转移为目标,目前集中比较流程的跨链技术有:

1)公证人机制(Notary shemes)

这种模式是让一个两方都受信任的团体向一条链上声明另一条链上发生的事情,然后在另一条链上做出响应,相当于在两条链上找个公证人。

2)侧链/中继链(Sidechains/relays)

建设一条侧链,将A链上发生的资产转移到侧链上的跨链合约中,跨链进行资产抵押,然后再由侧链转移给另外一条链,类似于代购的概念。

区块链的科普知识,区块链科普篇解释

3)哈希锁定技术(Hash-locking)

在两条公链中锁定指定的区块,然后再约定一个时间来解锁信息,然后再执行资产变化。

4)分布式私钥控制(Distributed private key control)

利用一个基于协议的内置资产模板,一个公共链上建立一个智能合约来创建新的资产,当一个链上要进行跨链,先将资产转移到跨链上,然后在跨链的智能合约里建立对应的代币数量,再将代币转化为另外一个链上资产。

扩容

扩容简而言之就是扩充容量,如果不好理解的话可以举个例子:我们在上网时都需要用到IP地址,比较常见的地址时IPv4地址,是一串32位的数字(每组数字转换成01代码为8位,4组共计32位),这样组成的IP地址约可以达到43亿左右,对于以前互联网还未普及时,这个数量是足够用的,但是时代在发展,IP地址的需求量越来越大,可以想象如果5G网络普及,每台设备都使用一个IP地址时,43亿IP地址可能光手机就可以使用完,那其他设备怎么办?因此产生了IPv6,将IP地址扩容,IPv6采用了128位的地址,可提供2.4×10e38个IP地址,扩容的量是IPv4的2的96次方倍,这样就可以满足目前以及未来一段时间(应该能满足很长一段时间)的IP需求,这就是互联网思维的扩容。

那区块链网络扩容都需要扩充哪些容量呢?在区块链火爆时期,各个企业都在做区块链,但是都宣称自己的区块链的效率有多高,TPS能达到多少,所以可以看出,区块链交易速度成了区块链最先解决的问题,那如何解决处理效率问题呢?常见的有两个方案:一、减少节点数(从全民节点减少成指定节点,减少见证时间);二、分级/分层/分片处理(都是划分开来让特定的人群处理特定的事情),这样做的目的都是让区块链网络的吞吐量增加,达到扩容的效果。

当然,在区块链的发展过程中,可能还存在其他需要扩容的问题,因此扩容的概念并不神秘,而是跟时代密切相关的。

分叉

在区块链中,链的发展到达一定高度时,有可能因为某种因素产生一个分支,这个分支是因为接收到了不同的规则导致区块链长期分叉,在未来的发展中,会形成了两条主线链,而这两条主线链均被不同的网络认可为有效链,这就是区块链中的分叉。

区块链的科普知识,区块链科普篇解释

分叉分为硬分叉和软分叉。

硬分叉不向前兼容,形成的分支线路因为两条不同的规则导致两条链永远不会被重合。*币特比**现金(BCH)就是BTC硬分叉出来发展比较好的币种。

区块链的科普知识,区块链科普篇解释

软分叉是向前兼容,因一段时间链上出现分叉后,经过一定时期,分叉的链有可能与旧链重合,分叉链上的交易记录被旧链认定为合法的,这样的分叉被称为软分叉。

区块链的科普知识,区块链科普篇解释

分级设计

分级设计是将网络中的交易信息分为等级,不同等级的处理按照不同的规则去执行,如交易额较大的交易实时上链记账,交易额小于一定额度后延迟一天上链记账,小额交易每周上链一次进行记账,这样就能使上链记账更有价值(但是这样真的好么?)。

分片设计(Sharding)

分片可以理解为分块,假设共识节点有100个,如果没有分片,所有共识节点同时智能做一个智能合约,相当于100个人干一个活,有可能造成资源浪费;而分片的概念就是将100个共识节点可以分成不同过的片,假如每10个共识节点为一个片,那100个共识节点就可以划分为10个片,相当于100个人同时干10个活,这样智能合约的处理速度就会加快10倍了。

以太坊分片为什么那么困难?

首先,以太坊的第一个架构设计自身造成了分片的困难,以太坊要实现分片,估计需要7个硬分叉来作为过渡;其次,以太坊希望使用Casper算法的POS共识协议,来替换目前的Ghost-POW共识协议,因此在社区中形成了不少阻碍,因此要落实分片技术的复杂度和难度非常困难。

墨客网络从架构设计初始就已考虑到这一点,因此在分层设计中就已考虑到分片的因素,因此软件更新时无需硬分叉就可以落实分片技术。

分层设计(Layer)

分层设计是在区块链网络底层设计时就划分出层(Layer)的概念,每个层只做某一种具体的事务,就像互联网七层模型(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层)一样,每一层只需负责自己的事情即可,但是就目前位置,分层设计依然处于探索阶段。

曾有一个链的设计是将第一个层(Layer1)作为负责整个网络全球共识层,负责共识的建立与代币燃料的发行,在第二个层(Layer2)中建立多种应用去处理负载性能及其他事务。这更像是一种将ETH的父子链模型和墨客的内外链模型融合改良之后的模型,总之,目前分层设计仍在尝试,区块链网络最终定型成什么样子的设计模式,我们拭目以待吧。

闪电网络/雷电网络(Plasma)/#Flash网络

闪电网络是Poon给*币特比**网络设计的一个提速解决方案,解决方法是把频率高、金额小的交易先放到链外,然后在固定时间段将交易信息再更新到链上,这个方法主要针对处理本地用户的交易,其哲学思想是“林子里面有棵数倒了,可是村子里面的人不在乎”,村子里的人可能只需关注到,在这一个月里,有一棵树活着,有一棵树死了,有两棵树产生了变化。这样做的好处就是极大的减少了交易上链次数,从而加快了大额交易处理速度。

雷电网络是Poon和Vitalik Buterin合作设计的针对以太坊的提速解决方案,Plasma提出利用子链的方式,将子链与链上应用结合起来,子链不采取链式结构,而是采用树形结构,这样有利于快速而高效的扩展以太坊的功能计算。

#Flash网络是墨客网络设计的提速解决方案,与闪电网络的区别仅仅是将小额交易从链外放到链内的智能合约里实现,相当于在墨客的链内再造一条子链,这就是墨客讲的速度从5000TPS提升到10000TPS的关键。

51%攻击

51%攻击就是理论上有人掌握了全网51%以上的算力之后,就可以像赛跑一样,它可以抢先完成一个更长的、伪造的交易的链,由于*币特比**只认最长的链,所以伪造的交易也会得到所有节点的认可,这样就为造假提供了可能性。造成这一问题的原因正是由于*币特比**的共识机制POW(工作量证明)决定的。

区块链的科普知识,区块链科普篇解释

但是51%攻击明显需要极高的算力,可以说区块链网络的总算力越高,完成51%攻击的成本就越大,按照目前全网算力74.51EH/s(约78129397TH/s),按照目前市面上先进的矿机,其算力越为53TH/s,要实现51%攻击则需要751811台该类矿机同时运行才能实现,这几乎没人愿意投入如此大的成本去做这些事。然而实际上如果算力能达到30%,并且连续出5-6个块,那也可以实现51%攻击,这不仅取决于算力的因素,还有网络节点的接受度因素(*币特比**的PoW模式算法是抢先出块后的“最长链法则”生效)。

双花验证问题

双花问题指在区块链网络中交易时,由于上链及登记记账均需要时间处理,而在这个过程中容易产生还未登记的账单被重复使用的问题。如:小明有10个BTC,在交易时用掉了1个BTC(假设这个BTC的编号是1001),而由于交易登记需要一定时间(有可能需要一周时间),所以在此过程中小明的钱包看似只有9BTC,实际上在链上他还是有10BTC,然后小明又用买了其他东西需要花1个BTC,此时他付款时有可能仍然在使用那个已经花掉的BTC(编号是1001)来支付,这就是双花问题。

拜占庭将军问题

拜占庭将军问题的提出最初不是在区块链上产生的,最早是由莱斯利·兰伯特针对点对点通信提出的问题假设,其含义是在一个不可靠的信道(有可能存在消息丢失)上传递消息来保持一致性(共识)是不可能的,所以如果信道是可靠的,那该问题自然而然就不存在。

但现实世界中是否存在拜占庭将军问题呢?答案是是的,而且比较常见,比如A公司的财务要向B公司付款,但是前提是拿到B公司的货物才行,A公司的财务与B公司货车司机沟通后,货车司机说“货物已经在路上了,你可以打款了”,此时A公司的财务应该不应该打款给B公司就是一个“不可靠的共识”问题。

拜占庭将军问题内容是:古罗马帝国时期,拜占庭是东罗马帝国的首都,那时罗马帝国土地非常辽阔,为了防御外敌,每个*队军**都分隔比较远,将军与将军之间智能靠信使传递消息,而在打仗时,各将军之间的调遣必须要达成一致共识时才能出军,但是此时如果*队军**里有叛徒或奸细来让其中一个或几个将军获得错误的情报,那势必影响整个拜占庭的决策执行。在区块链网络中,最重要的根本就是共识,若共识出现问题,那势必也会影响整个网络的运行,因此拜占庭将军问题也成了区块链网络研究的一个重要问题。