区块链扩容方案——链上扩容(Layer1)


区块链扩容方案——链上扩容(Layer1)

扩容一直是区块链社区讨论的热点话题,围绕如何在“更短的时间完成更多的交易”提出了数十种解决方案。但你知道扩容方案都有哪些吗?

文 | 链盟君

扩容一直是区块链社区讨论的热点话题,围绕如何在“更短的时间完成更多的交易”提出了,包括隔离见证增加区块大小闪电网络(雷电网络)、分片等数十种解决方案。上篇我们讲了扩容,这篇文章链盟君地地道道讲“扩容方案”。但是只讲“链上扩容”。

区块链扩容方案

加密货币的扩容解决方案主要可以分为两种,“链上扩容”和“链下扩容”。通常情况下,链上扩容指的是直接发生在区块链上,通过改变区块大小或数据结构从而达到提高处理交易能力的解决方案,比如隔离见证和增加区块容量;而链下扩容则指的是在加密货币的主链之外,建立外围或第二层交易网络。

此部分你需要掌握:

目前市面上的区块链扩容实施方案可大致分为两类

(1)链上扩容,即第一层( Layer1)扩容;

(2)链下扩容,即第二层( Layer2)扩容。

链上扩容—Layer1

所谓第一层扩容技术,即Layer1其实是针对协议层的扩容,是底层区块链本身进行“改造”,改进区块链自身,把区块链自身变的更快、容量变的更大。

若说区块链是一个项目,它本身是由很多个部分组成的。由下往上分别是P2P的网络、共识机制、虚拟机、区块链的编程语言,每一部分都有很大的发展和改进的空间。

而区块链的扩容方案是怎么样改进?

对于第一层扩容技术来说,其实都是在共识这个部分改进的。

具体的扩容方案有:SegWit(隔离见证)、扩块(2M区块为例)、Casper和DPOS,都是使其能支持更多更快的链上交易。

SegWit(隔离见证)

针对比特币,现在比特币的区块大小限制为1M,当时中本聪设计的时候区块最大是可以到32M的,但是后面担心大区块导致普通电脑无法在有限时间内完成验证区块的工作,只有少数高性能机器或专业机器才可以完成,导致算力中心化违背去中心化的初衷,所以把区块限制在了1M。

在不修改区块大小限制的基础上,比特币社区提出了SegWit(隔离见证)方案,也就是软分叉。

比特币交易记录里均包含了两种信息:交易信息(从A转到B),非交易信息(私钥签名等)。

如果将非交易信息从原区块剥离出去,则提升了每个区块所能容纳的交易数,把脚私钥签名等数据从基本结构(比特币1M计算的是基本结构的大小)中剥离出来移动到新的结构中,这样做就可以增加单个区块内的交易数,达到提升TPS的目的,从而提升了比特币的处理效率。(这种做法也降低了闪电网络的实现难度。)

举个例子好理解:

区块链扩容方案——链上扩容(Layer1)

这就像在一列行驶的公共列车中,我们把乘客的行李都搬出来,放到公共列车的顶部,这样列车腾出来的位置就可多塞几个人。达到同一时间可运输人数量增加的目的。 隔离见证就是这个意思。

扩块

每一个区块里面都承载着某一个时间段的数据。拿比特币来说,每个区块包含着全球十分钟内的所有比特币交易。当区块大小设定为1MB时,最多只能包含2000多笔交易。

早在2010年,就有人发帖提出将区块扩容到7.1M的建议,但中本聪以“我们可以等以后需要的时候再改”进行了回绝。在之后的两年里扩容之事便再无人提及。

而中本聪自2010年退隐后,比特币的开发工作就移交给了 Bitcoin Core ,从2013年到现在,比特币社区经历了不断的争吵、撕逼、互相敌视,Core却是坚决抵制扩块的,在信仰与金钱的双重刺激下,便促使了一系列分裂币的诞生。

提及比较多的是

2MB区块,比特币社区的另外一部分人希望硬分叉直接把区块大小限制从1M改到2M,基本想法很简单,也是提升单个区块内的交易数,每秒打包的交易就会增加,从而提升TPS。

举个例子好理解:就是公交车,从一层公交车变成两层公交车,提升了容量,载客量变大。


区块链扩容方案——链上扩容(Layer1)

Casper

以太坊的Casper协议是基于POS协议的。POS协议存在Nothing at stake攻击,该攻击是由于挖矿没有成本,矿工为了大概率胜出,会同时基于多个分叉进行挖矿,导致可能出现频繁分叉,主链状态无法确定。

Casper协议通过保证金和投注解决了这个问题,每个挖矿节点需要投入一笔保证金才能挖矿,每次挖矿都是一种投注行为,矿工对最可能成为主链的区块进行投注,如果猜中可以得到挖矿奖励,猜错或随意更改投注将扣除一定的保证金。

所有的功能由Casper智能合约来实现,包括加入、投注、取款、获取共识信息等。

区块链扩容方案——链上扩容(Layer1)

DPOS

号称区块链3.0的EOS一开始就宣称能达到百万TPS,日前主网上线测得的极限TPS是3000+,虽然没有达到百万级别,但是主网能到几千TPS也是很大的进步,至于百万TPS可能要通过子母链或者其他扩容方案看能不能实现。

EOS能做到这样的结果跟它选用的共识算法DPOS有很大的关系,比特币和以太坊使用的是POW共识算法,所有节点都需要计算规定难度的哈希然后广播给其他节点,而且节点众多,广播时间也比较长。


区块链扩容方案——链上扩容(Layer1)


DPOS通过投票选出21个超级节点,每个节点轮流出块,而且不需要计算规定难度哈希直接出块,只需要这21个节点达成共识就可以了;通过经济惩罚机制保证链的正确性,每个超级节点都需要提供一笔保证金,拜占庭节点会被扣保证金。

DPOS的优势是能耗低,不需要浪费电用来计算规定难度的哈希;缺点是垄断性高,普通人无法参与节点竞选。

课外小拓展


在2018以太坊技术及应用大会上,以太坊创始人Vitalik Buterin在关于“Casper与分片技术最新进展”的演讲中,分享了Casper Pos/分片的技术,尤其是从验证者角度分析如何成为验证节点,验证节点有哪些责任等。另外,V神表示,目前来看,金融行业、游戏行业与区块链技术的结合较好。


区块链扩容方案——链上扩容(Layer1)

以下是V神的演讲全文:(不要求掌握)

Casper有一个全新的算法,算法的分片是解决方案,我会具体跟大家阐述一下这两种技术的流程。

大家如果参与到Casper和分片,从节点角度来说要做什么?

第一步是存款。Casper是个验证系统,换句话说,为了加入Casper,需要在权益当中有所存款,存款需要发送存款的交易,这是正常在以太坊上的交易。这个交易需要一个公钥,32个以太币和一个取款地址。

这里大家要注意,签名公钥和取款地址可以不完全一致,这意味着两件事情:一是可以把签名的权利分配给其他人。比如像我在全世界旅行,不可能一直带着电脑,就可以把这个key给你的朋友,让你的朋友为你签名验证,帮你参与到算法。

但你不会把所有资金托付给一个朋友,即便你的朋友能代替你做签名,但他也不能把你的钱取出来,你的钱唯一可以进入的地址是之前提供的取款地址,这就意味着第二件事,即你可以使用热钱包来签名,取款到冷钱包。我们刚才提到状态验证的机制,公钥是在一个在线的电脑上,但资金永远会留在冷钱包里,这个公钥是激活这部分资金,防止发给其他人,让你的资金留在自己的电脑上。这种情况下,作为验证者,就更加安全、有保障。

一旦你完成了取款交易之后,就进入了第二步:等待加入。这个可能需要一天的时间(这部分协议还没有完全被确定),要等待这个协议把你加入验证者的池。

第三步是参加验证机制。有了存款之后,又等待了一天时间,你加入这个机制,已经进入了活跃验证者的验证池,这时候你就是个验证者了。

作为验证者,在网络当中有两个关键功能,第一个是Casper的过程,来参与并且敲定主链,这意味着它可以确保主链上的区块,超过一定点之后,主链上的区块是不可逆转的。一旦完成之后,主链就被敲定了,你就完成了工作。第二个是验证分片上的区块,我们的系统中不会所有人都来做区块的验证,这些区块被可能分配到100个甚至更多的分片中,交易也是分开的,有不同的验证者来验证不同的区块和交易。这是验证者最主要的两个功能。

Casper这个工具的主要目的是一个敲定工具,是链上共识机制的一部分,用于区块的敲定,它可以给区块更多的安全性。

分片的提案看起来是这样子的,以太坊的分片提案包含100个子链,帐户交易信息都是储存在子链上的。

主链负责生成随机数,随机选择哪个验证者进入哪个分片、谁可以创立一个分区,并且保持验证节点的追踪。如果你是一个验证者,它会一直追踪你验证节点的相关信息,比如你分配到什么分片、你现在有没有奖励和惩罚。所有这些信息都是由主链完成的,除此之外,它还可以追踪子链上的区块。

子链的责任比较简单,主要做交易处理,并且存储帐户/合约状态。它可以存储绝大多数用户比较关注的信息,每个阶段是差不多1个小时左右,每个验证节点由系统随机分配一个分片,为了这个阶段或为了这个小时,验证节点的工作就是验证,并且帮助确认这个区块是在这个分片之上的。在任何的时间点,如果验证节点被分配到某个特殊的分片上,比如我们一共有100个分片,有些人随机选择1%的验证节点,来确认任意一个分片上的区块。

接下来是“二次分片”。假设一个节点能处理N个交易,那么主链能追踪N个分片,每个分片都能处理N个交易,所以系统一共能处理N^2个交易。这就是为什么称为二次分片的原因。如果你电脑的计算能力是翻一番,这时主链可以来追踪2倍的分片,系统能处理的交易是之前的4倍。

接下来看交联(Cross-links),交联是彼此间沟通的方式,并且是主链追踪分片的方式,主链不会追踪每个分片中的每个区块,只会追踪交联。每个交联大概是100个左右为这个分片分配节点的签名 ,并且在主链上确认这个分片节点的区块。

验证节点有以下责任:

1.作为验证节点工作,验证主链,并且验证主链上的每个区块,主链包括副链、交易以及对验证节点的奖励和罚款 。

2.验证两个节点的区块,目的是生成区块、确认区块/交联。我们也可以经常在不同的分片中来回交换,做区块的确认,还有分片和主链之间的交联。

3.在分片上生成区块。

4.在主链上生成区块。

5.确认分片上的区块已经交联。

这些都是大家作为验证节点的主要责任,也是大家在一个分片系统当中主要的工作。

如果在线正常运行的状况发出了应该发出的信息,所有都是正常的,这种情况下会发现其他的三分之二节点正常,就可以拿到利息。

如果是离线问题,不过至少有三分之二的节点都在正常运行,会有一些小的惩罚。但是,如果大部分节点离线,那么,会有大的惩罚。

第三种情况是最差的情况了,即签名是错误或者跟自己有冲突的信息。你可能是在线的,但签名的信息是不正确的。当我说到你签的这个信息不正确,我可以更深入的讲一下,但是现在我先不讲它为什么这样,但我只知道这个情况发生了。这种情况是你要攻击网络,或者你被黑了,如果有这样的情况发生,你会有一些惩罚。这个惩罚与其它犯错验证节点的数量是成比例的。

另外,如果你是无辜的,有这种情况出现是因为你被黑了,或者电脑有问题,或者数据有问题,这时你受的惩罚就会比较小。如果真的有攻击发生,需要非常多的验证节点,这时你的罚款 就会非常大。攻击系统的成本非常高,如果你作为个人的验证节点出现了问题,成本 是没有那么高的,是公正的。

这个机制希望激励大家做验证节点,也希望大家在设置时,能够更好的保护自己的机制,尽量不与其它节点的安全保护同时失败。比如你是一个高度去中心化的网络,不同的节点会在不同时间上线或离线,不同的节点会在不同的时间被黑。如果是一个去中心化网络,大家都有同样的权益池,所有人都用不一样的权益池,如果权益池被黑了的话,假设我们非常集中,所有人都会有非常高的罚款 。

这也就是说:

1.不要加入和别人一样的权益池。

2.不要跟别人用一样的VPS。

3.不要跟其他人使用同样的系统。如果你所有的节点都在这上面,就避免跟其他人撞车,一旦被黑了的话大家都赔很多钱,如果只有你一个人被黑的话也会损失 很大,所以大家不要跟其他人使用同样的系统。

4.不要跟其他人使用同样的客户端。这个机制是希望大家更好的去进行配置自己,不让网络同时有非常高的风险。

现在假设大家已经拿到自己的奖励了,你希望能够把这个以太币提出来,该怎么做?

最后一步,就是退出。

即你的私钥或提款地址都可以触发取款过程,一旦触发了取款过程,你的验证节点会在大概7天后关闭,你退出了之后,需要等待4个月,来提取以太币。

最后总结一下,你需要知道的,所谓第一层扩容技术,即Layer1其实是针对协议层的扩容,是底层区块链本身进行“改造”,

改进区块链自身,把区块链自身变的更快、容量变的更大。

欢迎留言探讨,还会不断补充......


分享到:


相關文章: