找回密码
 立即注册

QQ登录

只需一步,快速开始

门户 百科 查看内容
  • QQ空间
  • 回复
  • 收藏

DApp达到App的体验,可能吗?

admin 2019-11-18

在现实商业的应用场景,所涉及的计算是巨大,甚至有数万亿的逻辑步骤计算,要处理大量的数据,这在区块链上几乎是不可能完成的。

区块链的扩展问题是行业关注的焦点之一。因为,只有解决了扩展性问题,才能为区块链走向主流铺平道路。只有解决了扩展性问题,才能让dApp的用户体验达到App的用户体验水平,才能推动普通用户进来使用。

区块链是一个去中介化的无须许可网络,任何人都可以参与,这意味着区块链要达成共识,共识带来安全,但同时也带来了极高的成本:交易吞吐量小,交易处理时间长、费用高。

为了解决这些问题,目前有一层扩展和二层扩展的方案。一层(layer1)是横向扩展,目前主要有分片、共识机制的优化(如DPoS)等。二层(layer2)是纵向扩展,包括Plasma、状态通道、侧链等方式。迄今为止,有一些进展,但还不足以让扩展性发生根本性的改变。尤其是考虑到它们还无法满足dApp的扩展性需求,如游戏、社交网络等。这些dApp都无法真正一展拳脚,尤其是涉及到大规模计算时。

那么,有没有方案能够解决这些问题?能够让dApp达成App的体验?能够让普通用户真正使用上dApp,享受到dApp带来的好处?

蓝狐笔记最近关注到Cartesi项目的解决方案,让人印象深刻。它在二层(layer2)上的扩展方案有自己非常独特的切入点,值得dApp开发者和整个区块链行业的关注。

Cartesi试图成为区块链的计算层

区块链主链上计算和存储的成本非常高,像游戏、社交、视频等领域的应用都无法在主链上直接运行。大规模的计算必须在链下进行。

那么,如果不是基于区块链运行应用,跟传统的App有什么区别?

这里的解决思路是,从实际场景的需求本质出发,而不是在技术上进行死磕,陷入死胡同。我们没有办法就所有事情都达成全局共识,而实际上,我们也没有必要就所有事情达成全局共识。

大多数情况下,我们只需达成局部共识。只有极其重要的数据才需要达成全局共识。大多数事情,往往都是小部分参与者之间才真正感兴趣的,只要这小部分参与者之间达成共识就可以了。比如,我们去超市买一瓶水,我们没有必要跟律师打电话,也没有必要让地球上的所有人都知道你买了一瓶水。只有在发生纠纷时才需要进行仲裁。

基于这种思路,产生了layer2的解决方案,而Cartesi就是其中的一种解决方案。Cartesi不是公链,它是去中心化的通用计算平台,试图成为区块链的计算层,旨在为公链和dApp开发者提供通用计算服务。

Cartesi作为区块链的计算层,它将底层链智能合约执行所需的大量计算接手过来,让底层链发挥其安全特性,专注于价值存储和转移,专注于结算结果的存储;与此同时,dApp开发者基于Cartesi,可以使用熟悉的编程语言、工具、库、软件以及服务来开发dApp。dApp的大多数复杂计算逻辑都通过链下来解决,开发者只须专注于业务逻辑的构建,但与此同时,能够开发出类似于App体验的dApp应用。

有了其他layer2,为什么还需要Cartesi

Layer2分担了layer1的扩展性压力。layer2的存在不仅是为了解决layer1中全局共识资源高昂成本的问题,更是为了顺应这样的一种事实:并非所有的事情都需要达成全局共识。

只有跟该共识相关的群体才需要达成一种共识。部分参与者的协作可以在链下进行,但为了防止出现纠纷,一般情况下,layer2的参与者需要在链下交互时存入押金,如果是以太坊链,一般会存入ETH

通过质押资产,所有参与者在链下进行互动,然后将其互动操作的重要结果提交到主链,主链完成全局状态的更新。如果这个过程中,有任何参与者产生恶意行为,其他相关方可以向主链发起申诉以寻求解决。恶意行为一旦得到确认,恶意行为者的抵押资产可能会被扣除。

Layer2的模式将layer1不仅看作为价值存储和转移的地方,也视作为具有最高安全性的共识仲裁法院。而layer2是各种局部参与者之间进行互动的地方,大家都受制于奖惩机制,受制于具有公信力的layer1的制约。

Cartesi也有类似的思路,只须参与方才需要执行大量的链下计算,计算结果提交到链上合约进行验证,确保执行结果的可信。

虽然基本上layer2都是这种思路,但Cartesi也针对layer2的一些不足进行了改进。

比如layer2方案要求主链可以解决可能出现的纠纷。有时候会出现糟糕的情况,比如需要在通道开启时,把大量计算传到主链,这些交易的关闭机制会限制最大计算量。Cartesi则允许Plasma或状态通道利用Cartesi的计算能力,也就是将计算通过Cartesi来解决,而不是转移到主链。在这些layer2的解决方案中,如双方都需要密集计算才能完成争议处理,而主链很难解决这样的大量计算问题。

此外,Cartesi跟其他layer2解决方案不同,它不一定要求dApp应用的各相关方同时在线。

这就是Cartesi相对于其他layer2方案的不同之处,从本质上来说,它不仅是layer2的解决方案,更是去中心化的通用计算平台,连接了公链和dApp的开发者,为双方提供计算服务。

Cartesi如何运作?

从整体的思路上,Cartesi跟多数layer2方案有相似之处,不过在具体的解决方案上,Cartesi有它的独特之处。

Linux的开发环境

Cartesi推动了一种dApp的开发模式,它将dApp的开发环境提到了新的高度:转向了Linux开发环境。

Cartesi虚拟机旨在为dApp的大规模运行提供支持,所以,它要考虑解决当前智能合约虚拟机的问题。现有的智能合约虚拟机运算相对简单,比如执行账户余额的运算、计算哈希值或调用合约等。

而现实的商业应用需要能响应设备、分配内容、跟其他程序复杂交互、海量的计算执行等。有了操作系统的支持,这些应用可以有序运行。指令集体系结构和操作系统相互支持,硬件可以为操作系统提供硬件功能,操作系统通过这些功能来协同所有程序的运行。

当前的智能合约虚拟机还无法实现类似功能,它们并没有操作系统的支持。

为了解决这个问题,Cartesi引入了开源的RISC-V指令集体系结构,Linux内核已经移植到RISC-V上,RISC-V有成熟的编译器。

也就是说,Cartesi准备通过这种方式,将链外的计算能力引入链上。

同时,Cartesi节点还可以让dApp开发者在本地运行代码。在本地执行代码和在Cartesi虚拟机系统内执行代码,都会在Linux操作系统下运行。Linux可以提供复杂计算所需要的完整生态系统。

Cartesi虚拟机

基于Cartesi上开发的dApp包括链上和链下模块。其中链下模块在Cartesi节点内运行。当然,也可以在本地执行代码,但本地计算不可重现。要实现重现,必须运行在Cartesi虚拟机中,在Cartesi节点中执行代码。那么重点来了,这是Cartesi项目中需要关注的重点之一,它就是Cartesi虚拟机。

Cartesi虚拟机有两点值得关注:一是完全独立。二是计算可重现。它的独立性意味着可以实现确定性,无须担心外部输入以非确定性方式来改变机器的状态(键盘、时钟中断等)。它的计算可重现意味着其具有可信的特点。Cartesi虚拟机从相同的初始状态开始运行经过相同的处理器周期,最终会达完全相同的状态。

也就是说,Cartesi中的可重现计算运行在确定性的RISC-V虚拟机上。它受Cartesi节点控制,且自包含了Linux系统,节点通过一些确定的主机接口与Cartesi虚拟机进行交互。

对于Cartesi的dApp开发者来说,他们可以指定链下计算采用可重现的方式,Cartesi的节点会根据指定执行。dApp开发者可以请求节点提交计算结果,并在链上进行验证。在这种情况下,主链处理争议结果无须占用太多资源。

同时,Cartesi虚拟机需要考虑区块链的验证要求。为了实现可信,整体架构的实施必须容易审计和开放。这也是Cartesi采用RISC-V的重要原因。

RISC-V有很多社区开发者支持。他们搭建了软件的基础底层,如Linux操作系统的端口和GNU工具链。Cartesi虚拟机以确定性方式将其整个状态映射到物理内存。

Cartesi虚拟机的链下执行除了完成计算执行之外,还支持解决有关计算结果的争议。为了提供这些服务,Cartesi虚拟机的链下执行有可编程的接口。

Cartesi虚拟机也是透明的,任何人通过任一时刻的虚拟机状态,都可以预测下一个处理器周期指令完成后的状态。Cartesi的这种设计机制保证了可信计算。获得Cartesi虚拟机初始状态的不同各方在各自的Cartesi节点中运行Cartesi虚拟机都会获得完全一致的结果。Cartesi虚拟机的状态可以通过默克尔树表达,也意味着可以通过链上实现仲裁。


其中链下Cartesi虚拟机主要由内存和各种驱动器组成。其中,Linux内核被加载到内存中,其中有的驱动器会包含Linux文件系统。驱动器被看作为Cartesi节点中的普通文件,Cartesi虚拟机将普通文件当作设备给Linux内核挂载,这些设备被挂载后,对于Linux下运行的程序来说,就相当于能读写文件和目录的文件系统。

通过默克尔树的状态哈希,Cartesi虚拟机将其状态在链上呈现。状态包括内存和驱动器、以及其他Cartesi虚拟机运行所需的内容。通过默克尔树的根哈希,可以判定局部的子状态是否正确。

争议的解决机制

当dApp的参与方相互之间产生纠纷时,怎么办?首先,挑战方会存入抵押资产发起诉讼,如果被挑战方想要进行自我辩护,也需要存入同样价值的抵押资产。

然后双方陈述过程,链上通过根哈希状态的对比,进行判决。智能合约会查出双方在运行Cartesi虚拟机第一次产生不一致结果的指令。之后,智能合约通过在链上执行此条RISC-V指令,从而获得状态的根哈希,智能合约将其与双方的根哈希进行对比,这样可以判定谁的结果是正确的。

为了惩罚作恶者,获胜一方将获得对方的抵押资产。这可以防止作恶的行为。此外,在链上运行单个RISC-V指令相对轻松,因为查出第一次不一致的指令相对容易。链上的工作主要是保持哈希的更新,不用关心dApp的逻辑,也用不存储dApp的操作。同时,由于作恶存在成本,且也能被发现,这导致作恶行为会比较少见。

Cartesi与TrueBit

之前有个项目叫TrueBit,它也有类似的思考架构,将密集计算移至链下,并在链上进行验证来解决争议。虽然基本的思考架构类似,Cartesi跟TrueBit的具体解决方案存在不同。

TrueBit基于WebAssembly做的虚拟机,而Cartesi是基于RISC-V的指令集架构。前者是应用级别,后者是操作系统级别。WebAssembly会带来外部性,也就是不确定性,因为它用于应用间的协同、应用和用户或节点的操作系统的交互。而RISC-V更加底层,具有确定性。

此外,TrueBit更专注于智能合约计算能力的扩展,对运行环境更有约束,而真实场景的应用存在交互,Cartesi选择支持Linux的运行环境,RISC-V能提供更好的服务。

此外,在链下计算的动力方面,TrubeBit跟Cartesi存在很大差异。Cartesi的链下计算是依赖于智能合约背书,所有参与者都有责任执行链下计算,一旦出现争议,需要提交到链上解决。而TrueBit需要通过激励层的设计来解决纠纷。在TrueBit上,智能合约将计算的需求提交到由不可信方构成的市场,由其中的参与者执行链下计算并返回结果。为了保持成员的参与度,带有错误结果的计算诱饵会被投放到激励市场,这是相对低效的激励。

此外,Cartesi也考虑了应用中可能出现的大存储问题,通过Cartesi虚拟机,将代码和数据状态的哈希值提交到链上,计算只需在相关参与者节点中执行即可,这也使得Cartesi能够做到链下计算的跨链。这些是Truebit没有设计的。

Cartesi对于dApp开发者意味着什么?

Cartesi将密集计算从底层区块链中解放出来,将复杂的逻辑放到链下进行可重现计算。Cartesi虚拟机是确定性的计算模型,可以托管现代操作系统。Cartesi虚拟机上的标准工具链和操作系统是可用的。这为开发者提供了很多方便。

对于dApp开发者来说,Cartesi意味着新的dApp开发范式。如果Cartesi能顺利落地,dApp的开发者们可以专注于业务本身的构建,而不用担心是否懂区块链的底层,因为dApp的开发者可以使用熟悉的编程语言和工具来开发dApp,这大大减轻了dApp开发者的研发成本。

与此同时,Cartesi节点为dApp开发者提供了大规模可信计算,开发者们可以使用可重现计算的Cartesi虚拟机。可信计算通过原语集成到公链智能合约,原语能够提供灵活性和复杂逻辑的计算能力。在Cartesi虚拟机计算中如出现有争议的结果,可以通过主链进行仲裁。

此外,由于大规模的链下计算,基于Cartesi构建的dApp可以实现在多个链上运行。

总言之,Cartesi对于dApp开发者来说很友好,这将解锁去中心化应用的潜力,开发者能在熟悉环境下利用dApp的优势,构建出跟之前完全不同的应用。

结语

要想dApp达成App的用户体验,公链需要存储层和计算层的帮忙。关于存储层的项目,蓝狐笔记之前也提到过,这里不做赘述。而计算层方面也是值得关注的部分。

Cartesi的目标旨在成为区块链的计算层,为公链和dApp开发者提供去中心化的通用计算平台。

对于公链来说,Cartesi可以帮助其专注于底层链的安全和价值存储,帮助其构建更大的开发者生态;而对于dApp开发者来说,基于Cartesi开发dApp,可以使用熟悉的编程语言和工具来进行开发,既能享受到dApp的优势,同时还能有App级别的用户体验。

随着区块链行业的深入发展,整个行业的生态拼图将会日趋完善,不仅有公链、dApp,也有为公链和dApp服务的存储层、计算层等。这些拼图相互补充和协作,最终推动区块链行业发生质变,从而将区块链的影响力提升到新的高度。
来自: 蓝狐笔记
文章点评
相关文章

热门货币

恒星币XLM
恒星币XLM

恒星币(Stellar),一个由前瑞波币(Ripple)创始人Jed McCaleb

柚子币EOS
柚子币EOS

EOS (Enterprise Operation System)是由 Block.one公司主导开发

比特币BTC
比特币BTC

比特币(BitCoin)的概念最初由中本聪在2009年提出,根据中本聪的

新经币NEM
新经币NEM

新经币(New Economy Movement,缩写 NEM),是一种点对点虚拟货币

艾达币ADA
艾达币ADA

ADA,中文称为艾达币,是Cardano项目的产物,Cardano项目发起于2

交易平台

火币网
火币网

火币网成立于2013年,是中国最大的比特币(btc)、莱特币(ltc)、以

火币pro
火币pro

火币全球专业站,是火币全球旗下服务于全球专业交易者的创新数字

OkCoin国际
OkCoin国际

okcoin国际站是全球着名的数字资产交易平台之一,主要面向全球用

币安Binance
币安Binance

币安交易平台是由赵长鹏(CZ)领导的一群数字资产爱好者创建而成

库币网
库币网

库币网就是以“区块链”为核心上线的数字资产交易平台。库币数字

币圈大佬

V神:以太坊创始人
V神:以太坊创始人

萌萌的天才少年Vitalik Buterin,圈内人一般称他为V神。这个94年

中本聪:比特币创始人
中本聪:比特币创始人

中本聪,比特币创始人,谜一样的人物。2008年中本聪在互联网上一

李笑来:中国比特币首富
李笑来:中国比特币首富

李笑来,原新东方名师,中国比特币首富,著名天使投资人,比特基

老猫:硬币资本联合创始人
老猫:硬币资本联合创始人

老猫,硬币资本联合创始人,现为Bigone交易所的CEO。巴比特专栏

沈波:分布式资本创始人
沈波:分布式资本创始人

沈波,分布式资本合伙人,分布式资本是中国最大的专业投资区块链