由于不可能三角,以太坊选择了安全性和去中心化,牺牲了交易处理速度,带来了很多拓展性的问题。
这里的"不可能"没有任何理论论证,只是对现有区块链的总结。所以很多人也在探索突破不可能三角的方案,并已经有一定进展,后面会详细讨论。
效率(TPS):每秒处理交易的数量。
去中心化:参与节点门槛足够低,保证系统中有大量分布式的节点。
安全:对区块链发动攻击的难度足够大。
以太坊为例我们看看不可能三角中的每一角是如何保障的。
去中心化: 以太坊中拥有大量的节点,交易被记录在链上需要全节点验证通过,所以达到了去中心化的目的。
安全性: 以太坊目前采用的POW(工作量证明机制) 对发动攻击的要求是聚集整个系统一半以上的算力。后面采用POS(权益证明)对发动攻击的要求是需要质押51%的ETH。无论哪种方式都需要付出巨额代价,并在攻击结束后,币价会大幅下降从而巨额代价无法获得回报来保证安全性。
效率:为了保证去中心化和安全性,即系统中必须拥有大量的节点,每个节点都需要执行区块中的一遍交易过程转移状态,以太坊要求每个区块中不能包含太多的交易,出块时间也要求稳定在高于一定时间之上。
将每个区块包含的交易数增大或加快出块时间,我们知道每个节点在验证区块的时候需要将区块中的交易重新执行一次,去同步状态树。无论是增加区块中的交易数量还是加快出块时间都会使得系统中性能较差的节点,无法跟上交易状态转移的速度,从而降低中心化程度。
首先区块链中需要证明机制是一种让记账更加可信的方式。
POW(工作量证明) 是指依赖算力重复计算来获得记账权。如果经过大量计算则证明可以获得记账权,
POS(权益证明)是指依赖之前拥有的资产比例并质押一定资产来获得记账权。
以太坊POW中我们设计的挖矿难度算法是为了稳定出块时间,上面我们说到了如果出块时间过小,会导致系统中节点数量减少,降低去中心化程度。所以这里的挖矿难度是手段不是目标。从而我们知道以太坊切换到pos后为了维持系统中的大量节点也不会大幅降低出块时间。
首先需要明确1个概念,gas费用是支付给获得记账权节点运算打包所需的费用。在POW方式中也和挖矿消耗的资源没有关系。
只要系统中节点执行程序消费能源,就会有gas费用。将POW转为POS的过程只是记账权的获取方式发生了变更,节省的是挖矿需要的电能,而不会减少系统中节点执行交易(或合约代码)的消耗,gas费用当然不会降低。
如上图所示,pow转pos节省的是1所消耗的能源,而3所消耗的能源也就是并不会降低,gas费用是用来支付3消耗的能源所以不会因为由pow转换到pos而降低。
那么gas费用和什么有关呢?gas费用由2部分相乘获得 gasPrice * gasUsed gasUsed执行相同的操作是固定值(代表了资源的消耗) gasPrice由发起交易方填写,gasPrice越高矿工越容易优先处理交易(代表了市场竞争)。gas费用较高很大原因是以太坊中交易处理速度较慢,所以导致交易阻塞,市场竞争激烈。想要降低gas费用还是回到需要提升以太坊的交易处理速度。
既然暂时无法提升以太坊本身的处理速度,降低其gas费用,那么有没有其他办法呢?
L2的引入就很好地解决了这一问题。既然L1的交易处理速度不好提升,那么我们就在L1的基础上搭建L2,专门提供高速的交易处理,而安全性和去中心化交由L1去保障。
交易在L2上快速进行,L2则按照一定的时机将最终状态同步回L1,这样交易速度得到提升,由于批次写入L1以及智能合约是在L2执行gas费用也会大幅下降。
L2由于不需要处理去中心化以及安全性,原因在于将交易或合约的执行过程与最终状态的保存分离开,过程执行放到了L2,L1只需要去保存最终的状态即可。这样大大减轻了L1的压力。但L2需要保证交易或合约执行过程中是正确性,否则写入L1的状态也是错误的,为此不同的L2也采用了很多不同的方案来保障执行过程的正确性。比如Optimistic采用了欺诈证明的方式来保障。
除了使用L2这种结构性调整,以太坊本身有没有办法提升TPS呢,目前比较大的进展是分片技术。\
分片机制是指以太坊中拆分出N条分片链,不同的分片链去打包不同的交易。每个节点归属于每个分片链下,只负责验证分片链上交易。由于每个节点计算量变少,出块时间会加快。分片技术带来的问题就是安全性有一些下降,因为验证1个区块的节点数量变少。
这里只是简单描述分片链的机制,实际场景中分片机制会带来,跨分片交易以及智能合约交互的复杂问题,后面会找一篇文章单独讨论。
由于不可能三角,以太坊选择了安全性和去中心化,牺牲了交易处理速度,带来了很多拓展性的问题。由POW到POS的进步不会优化交易处理速度。使用分层的思想很好地解决了在保障安全性和去中心化的情况下大幅提升交易速度。与此同时以太坊作为L1基础设施也推出了分片技术来提升交易处理速度。后续应该很多区块链应用都会建立在L2之上,而和L1的对接则会完全交给L2。
更多web3相关文章 可关注公众号 "web3探索者"
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!