DCompute链下计算外包:只EVM就足够了么?

news2025/1/8 5:15:39

1. 引言

在这里插入图片描述
当前的以太坊L2扩容方案主要有:

  • Optimistic Rollup
  • zkRollup:如Polygon zkEVM、Scroll等

这些L2方案仍是基于EVM的。

但游戏、链上订单簿、Web3社交、机器学习、基因组建模等高性能应用是compute-heavy的,对于L2 EVM来说仍是昂贵的——EVM计算不够快,性能也不如Sealevel Virtual Machine。

若L3采用EVM,计算经济性可能更高,但是由于EVM自身结构其无法做并行计算,并不是做重计算的最佳之选。在构建新的Layer之前,为了保持权力下放的精神,都需要建立新的基础设施(一个新的节点网络),这仍然需要同一组提供商来扩展,或者需要一组全新的节点提供商(个人/企业)来提供资源,或者两者兼而有之。

因此,每次构建更先进的解决方案时,都应该升级现有的基础设施,或者必须在其上构建新的层。为了解决这个问题,我们需要一个后量子安全、去中心化、无信任、高性能的计算基础设施,它可以使用量子算法在实体经济中执行复杂的计算,为去中心化应用程序进行计算。

Solana、Sui和Aptos等alt-L1可以实现并行执行,但市场情绪、流动性紧缩以及市场上缺乏开发者,由于缺乏跨越以太坊建立的巨大信任护城河,可能不会称为EVM杀手。至今,ETH/EVM杀手可能还不存在。

关键问题在于:为什么所有的计算都要在链上?是否存在一个非区块链的无信任、去中心化的执行系统?答案就在于——DCompute系统可。

DCompute基础设施要去中心化、后量子安全且不可信,不需要也不应该是区块链/DLT技术,但验证计算并生成正确的状态转换和最终结果非常重要。EVM链将完全按照它的方式运行,保持网络安全性和不变性,而去中心化、无信任、安全的计算可以脱离链。

本文没有重点关注数据可用性的问题。因为像Celestia和EigenDA这样的解决方案已经在朝着这个方向发展。

链下计算外包主要有2种思路:

  • 1)仅外包计算:如当前的zkRollups,就是采用该方案,数据可用性仍保存在链上。缺陷在于:

    • 要么受限于EVM
    • 要么需教育开发者学习全新的语言或指令集

    理想解决方案应是高性能、成本和资源高效、去中心化、隐私、且可验证的。通常是在云服务商AWS服务器上运行计算并构建ZK proofs,但AWS服务器是非去中心化的。为此,需构建去中心化可验证云计算网络,如:Nexus、Nillion。但若无ZK proofs则无法验证。
    在这里插入图片描述

  • 2)外包计算的同时,还外包数据可用性:将链下计算和数据可用性层分离,但计算仍需在链上进行验证。
    在这里插入图片描述

当前以太坊生态的外包计算方案有:
在这里插入图片描述
除L2扩容方案之外,还有:

  • 1)Secure Enclave Computations/ Trusted Execution Environments (TEE):TEE就像计算机或手机内的某特殊box,仅可供特定trusted applications访问。其它程序甚至操作系统本身,都无法修改运行在TEE内的可信应用程序。
  • 2)Secure Multi-Party Computation (SMPC):当前的MPC供应商Sharemind可提供供计算的MPC基础设施,但该供应商仍是中心化的。
    SMPC基本流程为:
    • 2.1)将计算输入转换为shares,分发给SMPC节点。
    • 2.2)实际计算为:SMPC节点间交互消息。最终,每个节点都有计算result output的一个share。
    • 2.3)这些result output share会发送给一个或多个Result节点——运行LSS来重构出最终的结果值。
  • 3)Nil Message Compute (NMC):为由Nillion团队开发的新的分布式计算方法。为MPC的升级版,NMC中节点间无需交互各自的output。NMC中采用名为One-Time Masking (OTM)的密码学原语来blind factors to mask a secret,类似one-time padding。
  • 4)ZK Verifiable Computation:为以太坊zkRollup扩容方案的关键。
    在这里插入图片描述

不同计算外包方案的对比情况为:
在这里插入图片描述

ZK Verifiable Computation的关键在于:

  • 1)选择某种特殊的proof原语:生成便宜,无需大量内存,验证不复杂。
    在这里插入图片描述

  • 2)基于所选择的proof原语来设计特定的zk circuit。

  • 3)计算系统/网络:给定输入,运行特定函数,生成特定输出。

现有的Circom、Cairo等circuit编写语言,对于Web2开发者来说仍有入门门槛。使用Web2开发者现有的语言栈来写zk circuits的可选项有:

  • 1)Lurk Labs:采用Nova证明系统,可兼容Javascript开发者。【Nova proof size会随computation size线性增加,但最后的proof可通过SNARK进一步压缩。】
  • 2)RiscZero:采用STARK证明系统,提供了Bonsai网络,proof可在链上验证:【STARK proof size不随computation size增加。】
    在这里插入图片描述
  • 3)Nil Foundation:创建去中心化可验证外包计算基础设施。

参考资料

[1] Siddharth Rao 2023年6月博客 Is the EVM Alone Enough?
[2] Jacob Eberhardt等人2018年论文 Off-chaining Models and Approaches to Off-chain Computations

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/704548.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入理解 Golang: Goroutine 协程

进程用来分配内存空间,是操作系统分配资源的最小单位;线程用来分配 CPU 时间,多个线程共享内存空间,是操作系统或 CPU 调度的最小单位;协程用来精细利用线程。协程就是将一段程序的运行状态打包,可以在线程…

idea连接MYSQL报错汇总

idea连接MYSQL报错汇总 【The last packet sent successfully to the server was 0 milliseconds ago.The driver has not received any packets from the server.】 原因:mysql57 运行在非默认端口号 解决: 1.测试本地连接mysqsl57 打开C:\ProgramDa…

管理类联考——数学——技巧篇——公式——函数、方程与不等式

集合 A 有 n 个元素,则集合 A 的子集个数为 2 n 2^n 2n个,真子集个数为 2 n − 1 2^n-1 2n−1个,非空子集个数为 2 n − 1 2^n-1 2n−1个,非空真子集个数为 2 n − 2 2^n-2 2n−2个。抛物线 y a x 2 b x c yax^2bxc yax2bxc与轴…

ST STM32H723ZGTx - NUCLEO-H723ZG DMAMUX_RequestGen例程重现/消化/改进

文章目录 ST STM32H723ZGTx - NUCLEO-H723ZG DMAMUX_RequestGen例程重现/消化/改进概述笔记问题的难点为了确定程序流程, 加入ITM将CubeMX升级到最新将CubeMX说明书翻一下CubeMX配置芯片功能实验工程主要代码.sct文件main.c中断实现文件 stm32h7xx_it.c.ioc补充END ST STM32H72…

探索网络通信核心技术,手写TCPIP用户态协议栈,让性能飙升起来!

一、DPDK简介 DPDK(Data Plane Development Kit)是一个开源的数据平面开发工具包,它提供了一组C语言库和驱动程序,用于快速开发高性能的数据平面应用程序。DPDK使用用户空间的方式来实现网络数据包处理,从而避免了传统…

海气相互作用 - 全球水循环过程及其量级

全球水循环过程及其量级 单位:Sv106m3/s,大气/陆地/海洋(103 km3)径流1.3 Sv≈台湾暖流1.1 Sv≈白令海峡0.9-1.1 Sv 从涡度平衡的角度说明为什么大洋强化发生在西边界而非东边界 有且只有在大洋西边界强化,才可以使得摩擦力产生一个正的涡…

【线程池】Java线程池的内部类Worker详解

目录 一、简介 二、Worker类对象的类图 三、Worker类对象的解释 4.2 Worker继承自AQS有何意义? 四、Worker的主要代码 4.1 运行worker 4.2 worker和ThreadPool的关系 五、Worker源码分析 5.1 Worker实现接口Runnable,执行run方法 5.2 核心方法…

Mysql主从原理

1.为什么要主从? 什么东西都有丢失或损坏的可能,所以备份是一个重要的手段。 2.备份机制? 对于主从库的分工: "主写从读" 中继日志文件我的理解是一个大的临时区,主库推送过来的数据不用同步进行到从库,这…

零基础学会Python编程——数据也分类:常见数据类型

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 ​编辑 前言 学习目标 一.常见数据类型 1.数字类型 (1&#xff09…

Can’t connect to MySQL server on ‘localhost’ (10061)

标题:Can’t connect to MySQL server on ‘localhost’ (10061) 一种情况是,mysql服务没有开启, 解决方式:以管理员身份进入cmd,然后输入net start mysql,注意这里的mysql,指的是你的mysql服务的名称&am…

万字长文,SpringSecurity实现权限系统设计

RBAC权限分析 RBAC 全称为基于角色的权限控制,本段将会从什么是RBAC,模型分类,什么是权限,用户组的使用,实例分析等几个方面阐述RBAC 思维导图 绘制思维导图如下 什么是RBAC RBAC 全称为用户角色权限控制&#xff…

MySQL笔记之一致性视图与MVCC实现

一致性读视图是InnoDB在实现MVCC用到的虚拟结构,用于读提交(RC)和可重复度(RR)隔离级别的实现。 一致性视图没有物理结构,主要是在事务执行期间用来定义该事物可以看到什么数据。 一、Read View 事务在正…

怎样高标准地个性化您的电商业务?教你一招搞定

怎样高标准地个性化您的电商业务?教你一招搞定! 想要增加销售额和打造一个客户喜爱的品牌,电子商务个性化是您成功的关键。但是,个性化您的在线购物体验的各个方面这个过程简直令人生畏。但是别怕,我将在这里告诉大家利…

计算机 - - - windows电脑搭建FTP局域网文件传输服务器

控制面板,打开程序和功能,启用或关闭Windows功能。 勾选这几个 然后点确定,应用更改成功后重启电脑生效。 打开IIS管理器。 添加ftp站点。 输入ftp站点名称,选择文件存放的物理路径。 ip地址设置为当前电脑的ip地址&#x…

重识Flutter — 探索Slivers的奇妙世界(综合实例)

前言 在前三篇文章中,从为什么要使用Sliver,再根据使用频率逐个解析Slivers系列的组件。相信您已经入门了Sliver的世界。为了更好的将Slivers相关的组件结合起来使用,本文将通过一个综合的案例来帮助你理解。 源代码:https://ww…

【动态规划】LeetCode 583. 两个字符串的删除操作 Java

583. 两个字符串的删除操作 我的代码,错误代码,只考虑到了字母出现的次数,没有考虑到两个字符串中字母出现的顺序 class Solution {public int minDistance(String word1, String word2) {int[] arr1 new int[26];int[] arr2 new int[26];…

Fiddler抓包工具笔记

一、简介 Fiddler代理相当于中介的角色 快捷键ShiftF5去缓存刷新 二、抓包 1. 设置过滤器 没有设置过滤器的话,会抓所有的包,非常乱会混淆 隐藏包含这些内容的URL 2. 快速定位到需要的包 点击:Webforms菜单 界面分析: …

SQlite3 编译

参考博客:https://blog.csdn.net/flowerspring/article/details/121268403 1.下载C源码以及def文件https://www.sqlite.org/download.html 2. 下载完成之后解压 sqlite-amalgamation获取C源码,解压sqlite-dll-win32-xx获取里面的def文件。 3.新建sqlite…

前端vue入门(纯代码)18

不管何时何地,永远保持热爱,永远积极向上!!! 【20.尚硅谷GitHub搜索案例_vue-resource实现】 1.vue-resource vue-resource 是 vue 中一个用于发送请求的插件。 vue 发送请求推荐使用 axios ,vue-resourc…

2023上半年软考系统分析师科目一整理-23

2023上半年软考系统分析师科目一整理-23 对于如下所示的序列图所描述的场景,最适合于采用的设计模式是(30);该模式适用的场合是(31)。 A.Visitor B.Strategy C.Observe…