基于区块链技术运行的dApp应用跟App有什么区别

在现实商业的应用场景,所涉及的计算是巨大,甚至有数万亿的逻辑步骤计算,要处理大量的数据,这在区块链上几乎是不可能完成的。
区块链的扩展问题是行业关注的焦点之一。因为,只有解决了扩展性问题,才能为区块链走向主流铺平道路。只有解决了扩展性问题,才能让dapp的用户体验达到app的用户体验水平,才能推动普通用户进来使用。
区块链是一个去中介化的无须许可网络,任何人都可以参与,这意味着区块链要达成共识,共识带来安全,但同时也带来了极高的成本:交易吞吐量小,交易处理时间长、费用高。
为了解决这些问题,目前有一层扩展和二层扩展的方案。一层(layer1)是横向扩展,目前主要有分片、共识机制的优化(如dpos)等。二层(layer2)是纵向扩展,包括plasma、状态通道、侧链等方式。迄今为止,有一些进展,但还不足以让扩展性发生根本性的改变。尤其是考虑到它们还无法满足dapp的扩展性需求,如游戏、社交网络等。这些dapp都无法真正一展拳脚,尤其是涉及到大规模计算时。
那么,有没有方案能够解决这些问题?能够让dapp达成app的体验?能够让普通用户真正使用上dapp,享受到dapp带来的好处?
蓝狐笔记最近关注到cartesi项目的解决方案,让人印象深刻。它在二层(layer 2)上的扩展方案有自己非常独特的切入点,值得dapp开发者和整个区块链行业的关注。
cartesi试图成为区块链的计算层
区块链主链上计算和存储的成本非常高,像游戏、社交、视频等领域的应用都无法在主链上直接运行。大规模的计算必须在链下进行。
那么,如果不是基于区块链运行应用,跟传统的app有什么区别?
这里的解决思路是,从实际场景的需求本质出发,而不是在技术上进行死磕,陷入死胡同。我们没有办法就所有事情都达成全局共识,而实际上,我们也没有必要就所有事情达成全局共识。
大多数情况下,我们只需达成局部共识。只有极其重要的数据才需要达成全局共识。大多数事情,往往都是小部分参与者之间才真正感兴趣的,只要这小部分参与者之间达成共识就可以了。比如,我们去超市买一瓶水,我们没有必要跟律师打电话,也没有必要让地球上的所有人都知道你买了一瓶水。只有在发生纠纷时才需要进行仲裁。
基于这种思路,产生了layer 2的解决方案,而cartesi就是其中的一种解决方案。cartesi不是公链,它是去中心化的通用计算平台,试图成为区块链的计算层,旨在为公链和dapp开发者提供通用计算服务。
cartesi作为区块链的计算层,它将底层链智能合约执行所需的大量计算接手过来,让底层链发挥其安全特性,专注于价值存储和转移,专注于结算结果的存储;与此同时,dapp开发者基于cartesi,可以使用熟悉的编程语言、工具、库、软件以及服务来开发dapp。dapp的大多数复杂计算逻辑都通过链下来解决,开发者只须专注于业务逻辑的构建,但与此同时,能够开发出类似于app体验的dapp应用。
有了其他layer2,为什么还需要cartesi
layer2分担了layer1的扩展性压力。layer2的存在不仅是为了解决layer1中全局共识资源高昂成本的问题,更是为了顺应这样的一种事实:并非所有的事情都需要达成全局共识。
只有跟该共识相关的群体才需要达成一种共识。部分参与者的协作可以在链下进行,但为了防止出现纠纷,一般情况下,layer2的参与者需要在链下交互时存入押金,如果是以太坊链,一般会存入eth。
通过质押资产,所有参与者在链下进行互动,然后将其互动操作的重要结果提交到主链,主链完成全局状态的更新。如果这个过程中,有任何参与者产生恶意行为,其他相关方可以向主链发起申诉以寻求解决。恶意行为一旦得到确认,恶意行为者的抵押资产可能会被扣除。
layer 2的模式将layer1不仅看作为价值存储和转移的地方,也视作为具有最高安全性的共识仲裁法院。而layer 2是各种局部参与者之间进行互动的地方,大家都受制于奖惩机制,受制于具有公信力的layer1的制约。
cartesi也有类似的思路,只须参与方才需要执行大量的链下计算,计算结果提交到链上合约进行验证,确保执行结果的可信。
虽然基本上layer 2都是这种思路,但cartesi也针对layer 2的一些不足进行了改进。
比如layer 2方案要求主链可以解决可能出现的纠纷。有时候会出现糟糕的情况,比如需要在通道开启时,把大量计算传到主链,这些交易的关闭机制会限制最大计算量。cartesi则允许plasma或状态通道利用cartesi的计算能力,也就是将计算通过cartesi来解决,而不是转移到主链。在这些layer 2的解决方案中,如双方都需要密集计算才能完成争议处理,而主链很难解决这样的大量计算问题。
此外,cartesi跟其他layer2解决方案不同,它不一定要求dapp应用的各相关方同时在线。
这就是cartesi相对于其他layer2方案的不同之处,从本质上来说,它不仅是layer 2的解决方案,更是去中心化的通用计算平台,连接了公链和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服务的存储层、计算层等。这些拼图相互补充和协作,最终推动区块链行业发生质变,从而将区块链的影响力提升到新的高度。


USB PD控制推动IC配合Type-C接口需求大爆发
电机运动控制算法之S速度曲线规划算法
快讯!唯样商城与开步睿思达成战略合作
如何使用模拟发现调试数字逻辑
大算力芯片何时迎来终局战?
基于区块链技术运行的dApp应用跟App有什么区别
关于内外时钟切换及时钟超频测试
重大升级!Proxmox Virtual Environment 8.0 发布
关于看门狗时间选定问题
三坐标测量仪的操作流程及注意事项
一文读懂通信串口(物理接口)1
【比特熊充电栈】Azure OpenAI 守护大模型数据与安全!
志高电磁炉检修方法
电动机如何一键实现启动和停止电路
TM-30是否具有明确的颜色质量指标
华为推出麦芒7,拥有大运存、长续航、智慧拍摄、GPU Turbo等产品优势
云原生的目的是构建和运行可弹性扩展的应用
多媒体融合通信系统在铁路系统编组站管理中的应用
荣誉丨国辰机器人荣获恰佩克品牌奖
怎样用FU-50制作单瑞甲类功放