区块链的应用也正从利益驱动阶段向技术驱动阶段迈进,未来有可能变成需求驱动,实现大规模商业应用落地和社会效益,这既是全行业的期待,也是当前区块链行业发展的瓶颈。
近日,以“跨链&联盟链及商业级应用”为主题的CSDN区块链技术沙龙上,姜恩池针对当前区块链最令人头痛的扩容问题,详细分析了主流的“第一层”(layer-1)与“第二层”(layer-2)的扩容解决方案。
姜恩池(Derek Chiang)
美国科技公司Binary Mint的创始人,目前致力于开发商业级第二层扩容方案Tenfold Protocol(十倍协议)。曾就读于康奈尔大学,并先后在DFINTY,ThunderCore等重量级的区块链扩容技术公司担任要职。
以下内容为姜恩池现场分享实录,由区块链大本营整理发布。
大家好,我今天讲的内容主要是关于区块链第一层与第二层技术。而我个人主要研究区块链扩容技术,目前是一家高性能供应链公司的创始人。那么,区块链第一层与第二层技术和扩容有什么关系呢?下面请听我一一道来。
01
第一层与第二层扩容技术
首先,我们都知道扩容是区块链目前最紧迫的问题。如果比特币、以太坊想达到十倍交易,肯定需要增加TPS。而扩容本身有其发展的方向和设计的方案,目前比较通用的一种分类方法,就是第一层和第二层扩容技术。
所谓第一层扩容技术,即改进区块链自身,把区块链自身变的更快、容量变的更大。其实,区块链是一个项目,它本身是由很多个部分组成的。由下往上分别是P2P的网络、共识机制、虚拟机、区块链的编程语言,每一部分都有很大的发展和改进的空间。而区块链的扩容方案是怎么样改进?对于第一层扩容技术来说,其实都是在共识这个部分改进的。
而第二层扩容技术,目的是把计算移到链下。怎么来理解第二层扩容技术呢?举一个例子,最近有一个比较火的云斗龙区块链游戏,游戏玩家通过让龙去战斗,让龙升级,然后得奖金。龙的整个战斗过程,如果放到链上,玩家在玩游戏的时候就需要很多的燃料费,并且还要花时间等交易的确定,游戏体验非常不好。因此使用第二层扩容技术,把战斗过程放到链下,最后只把结果给存到链上,这样就会大大改善游戏的体验。这就是第二层技术的一个基本思路。
02
侧链
下面我们先来讲一下传统的第二层扩容技术,就是侧链。这里举一个简单的应用场景,帮助大家理解侧链。假设你们公司有一百个员工,因为需要协同工作等原因,员工之间可以通过发一点比特币作为回报,但是你不想每一笔交易都发到链上,而是希望员工之间可以自由的进行交易,同时速度也非常的快。基于这种场景,一种非常直接的交易方式就是所谓的侧链。
首先,你们公司得有自己的一个区块链,然后决定矿工以及服务器的数量。假设我是公司里的一名员工,需要先把比特币存进多重签名钱包里面,这个多重签名钱包需要矿工的签名同意,才能使用里面的资金。所以,员工第一步就是把钱存到这个钱包里面,由矿工签名,签完名之后员工自己在这个公司里面就有了一个钱包。通过这种方式,员工就把主链上的币转到侧链上。而侧链上支撑的功能和主链是一样的,可以交易,所以交易速度就可以更快。而侧链是公司自己跑的,也不会收取你的手续费。
显然,对于用户来说,侧链的优势很明显。不过,因为侧链只是在公司内部跑,服务器比较少,会不会很容易受到黑客攻击呢?其实,这也是传统侧链的问题,很可能矿工把你的资产给偷走了,这就需要你信任矿工。对于这个问题,新型第二层扩容技术可以解决。
03
Plasma
在新型的第二层扩容技术中,包含多种技术,首先给大家介绍Plasma。Plasma现在普及率还不是很高,我个人认为它是区块链最潜力的技术之一。Plasma也有很多不同的发展方向,今天因为时间原因,我们只讲一个方向,就是Plasma Cash。
Plasma Cash怎么理解呢?我们也来举一个例子,首先你在链上锁定资产,接下来在链下转移资产。转移资产是发给一个中心化的服务器,你把钱转给某个人,你在告诉他,转移了这个交易签个名,这个服务器内部有一个小小的区块链,每个区块在链上都有个Mekle(是一个数据结构)。比如你在链下有100万个交易,你不能把他存在链上,但是你可以通过证明的方法,证明你的交易是在这100万个区块里面。因为链下的服务器会产生区块,每个区块有一个哈希值,最后你在链上可以通过哈希值验证这个交易是否在哈希值里面。
Plasma解决的就是容量的问题,因为你在链上存的就是哈希值,在链下可以进行无限笔交易,虽然每笔交易等的时间和链上交易的时间是一样的,但是我在链下交易的量就比链上大的多。所以别人是没有办法把你的资产拿走的,虽然是中心化的服务器来解决,但是它本质是解决信任问题,不需要任何人去保护你的资产,你的资产由自己的签名和密钥控制。
但是Plasma也存在一些问题,第一个是你只能用来做资产交易;第二个问题是需要等待在链上确认交易;第三个想要确保你的资产安全,你需要一直监视主链,你如果没有监视,你的资产还是可能会被偷走。
04
状态通道
相对于Plasma只能用来做资产交易这个痛点,状态通道可以通过写一个智能合约,可以让你在链下执行任意程序。不过,发起一笔交易时,状态通道首先要在链上创造一个多重签订合约;接下来,是在链下接受这笔交易或者状态的更新,每一笔交易多重合约里面所有人都要签名;而合约发布最终的更新,会检查所有人是否都签名了。
但是,状态通道还是有些问题,一个最明显的问题就是用户的数量需要固定,假如用户不固定的,毫无安全性可言。第二个问题是每一笔交易都需要所有人签名,比如玩一个游戏,每一笔交易都需要几千人签名,这笔交易就行不通了。第三个问题你还是需要监视主链,比如想让一些老的交易退出来,你自己需要用更新的交易去挑战之前的老交易,所以这样三个问题。
05
十倍协议
以上不管是Plsama还是状态通道都有很大的问题,像Plsama不能支持几万人的扩容,我们怎样去支持大型的扩容?在消费者应用中绝大多数交易的经济价值是有限的,比如云斗龙在链下的战斗,我的龙砍了你的龙一刀,像这些交易相对是较低的。在这些大型的消费者应用中,绝大多数交易的经济价值都是有限,我们如何用一个经济模型来扩容?其实,我们只要打造这样一个系统,确保系统本身交易的价值大于攻击本身的价值。
对于上边这个问题,第二层扩容技术的十倍协议是一种解决方案。首先你在链上锁定资产,在链下将交易通过P2P网络广播给验证者,这些验证者可以通过一个去中心化的文件系统,去下载应用的本身。比如,每个验证者都会在本地跑一套云斗龙这款游戏,链下的交易是通过P2P广播的,每一个验证者都可以知道云斗龙的情况。
假如你的龙变成二十级了,有人质疑你的龙实质上是十五级。这时,你可以发起一个挑战,挑战的过程中可以放进一部分抵押金,如果有一些质疑者想要挑战,也是可以放进一部分抵押金,双方都把抵押金放进去之后,经济体里有厉害关系的人就可以投票了,每一个验证者都知道这个龙的情况,最终得票少的一方就会损失掉押金。
如果有恶意攻击者想要作恶,必须要占有超过50%的经济。假设攻击者买了云斗龙这款游戏超过50%的经济,他是否会攻击成功?结果是是的。但是你会发现,假如你攻击成功,这个经济体会缩水的,为什么?因为我们有一个链下的广播系统,每个人都可以成为验证者,最后通过攻击得到的这样一个系统,你虽然可以在链上保证不正确的状态,但是实际上所有人在链下都可以看到这是假的,就会导致对整个应用失去信心,从而从这个经济体退出,这个经济体本身就会缩水。而攻击者本身拥有50%的经济,所以攻击者本身是最大的受害群体。因此,这个系统,只要我们保证交易习惯的价值小于攻击者所需要失掉的价值就是可运行的了。
和所有的系统一样,十倍协议也有问题。假如你买超过50%的经济体,确实可以攻击这个系统;另外需要解决怎么样激励验证者。
最后总结一下,今天我主要讲了第二层的几个解决方案。包括传统的第二层扩容技术侧链,有一个信任问题;而新型的扩容技术,讲到Plasma、状态通道和十倍协议,十倍协议是可以移到链下,扩容的量比状态通道大很多。如果你想要攻击十倍协议,可以通过购买超过50%的经济体来攻击十倍协议,就是这几个主要的扩容方案。
来自:区块链大本营(微信号:blockchain_camp),作者:科科