以开发者角度理解 Flashbots 的 SUAVE 链:除了 MEV、EVM + TEE 还有哪些可能性?

时间:2024-09-20 编辑: 浏览:(797)

SUAVE 是 Flashbots 开发的去中心化项目,它建立了一个拥有 TEE 环境的网络,解决在 MEV 流程中遇到的诸如密钥保管、多方互信的问题。同时,SUAVE 项目中 TEE 的加入,让 SUAVE 拥有除了解决 MEV 问题以外更多的可能性。

SUAVE 相关代码库

SUAVE 项目是基于以太坊扩展的,所以它天生是兼容 EVM 的。它目前在 GitHub 上的相关项目有:SUAVE-geth、SUAVE-std、SUAVE-examples 等。

其中,SUAVE-geth 就是在 geth 基础上进行扩展的执行层代码,它主要是在 geth 基础上增加了加密计算环境,以及在加密计算环境下的一些 precompile(预编译)。特别值得一提的是增加了标准 HTTPS 请求的 precompile,这使得开发者可以利用TEE环境给用户提供访问其他网络的功能。此外,它包含了一系列基于 TEE 使用功能的precompile,例如获取加密参数、存储加密信息以及获取加密信息等,这些组成了基于可信环境下的开发基础设施。

SUAVE-std 是为了开发者方便使用而建立的项目,可以理解为开发工具库。例如,它包装了如何使用 HTTP 请求,甚至在此基础上包装了一个使用 ChatGPT 的代码库,这使得开发者无需自己组装 ChatGPT 的请求报文和解析 ChatGPT 的返回报文,只需要在组装 HTTP 请求报文时替换自己的 API key 即可。而 TEE 安全环境保证了 API key 的安全,因为这一切都是在 TEE 环境下进行的。最初,这个 ChatGPT 的标准库默认使用的是 GPT-3.5-turbo 模型,temperature 默认为 0.7。现在增加了灵活的接口,也可以将模型这些作为参数传递进去。

SUAVE-examples 项目主要是为了展示如何进行应用开发的一些案例,或者说是初学者教程更为合适。对于刚接触 SUAVE 应用开发的开发者,可以通过这个项目中的案例进行学习和比对。

SUAVE 开发实践

由于 SUAVE 是基于以太坊扩展的(它的可执行环境被称为 MEVM,即 Modified Ethereum Virtual Machine),所以智能合约的开发是 EVM 兼容的,官方开发文档都是以 Solidity 进行介绍的。因此,对于开发者而言,Solidity 的开发经验是完全可以用得上的。SUAVE 应用开发中,智能合约的开发可以理解为加上 TEE 环境下加密计算功能的 Solidity 开发。

有几个关键的 SUAVE MEVM precompiles。第一个是 confidentialInputs,这个 precompile 接受来自应用请求时的加密参数,这个参数通常是一些需要加密的私密信息,比如私钥、API key 等,其安全性的保证必然要求其明文只能出现在 TEE 环境里,而在应用开发中,获得这个信息就靠这个接口获得明文。其传输过程是全加密以及安全可靠的,其原理我们后面再说。第二个是 confidentialStore,其作用是存储私密信息,当我们从参数中获取私密信息后,往往当时不需要其参与计算,所以存储起来以备后续使用。第三个是 confidentialRetrieve,这个接口就是后续需要私密信息参与计算时向 TEE 上下文环境请求数据明文时用的。

SUAVE 对私密信息的安全存储,使得开发者可以做到这样的场景:“用户将私钥上传,然后第三方进行业务计算,当满足条件时,第三方能够直接使用用户的私钥进行签名。这样第三方能够在一定规则下使用用户的私钥进行签名,但是第三方绝对无法获取到私钥明文。”

SUAVE 使用 HTTPS 请求进行跨链的操作。其工具集里有一个名为 gateway 的库直接进行跨链信息读取,其本质是用户设定某链的 RPC node,更常见的是用户将诸如 Infura、Etherscan 等的 API key 信息上传,然后在需要调用时,直接使用 HTTP 请求到相应的节点即可。而需要进行跨链写信息的时候,工具集里有 transaction 包,能够帮助开发者对诸如 EIP1559 的报文进行 encode,最后通过 eth_sendRawTransaction 接口进行交易的广播。

还有一个使用场景值得一提,就是将 Solidity 编译后的 bytecode 作为私密参数上传并进行存储,等到满足条件时进行 deploy 并进行调用,这样就形成了私有的库。这个使用场景可以扩展为:私钥 + 私有 bytecode 库。这样的话,在进行第三方委托调用的时候,可以做到完全隐私的交易。

SUAVE 特点

SUAVE 最终的状态是一条链,我们称之为 SUAVE 链。SUAVE 链我们可以视之为实现了 MEVM 的一条链。既然是 EVM 兼容的区块链,那么我们同样可以在 SUAVE 上建立诸如 ERC20、ERC721 等资产,其链上操作与 EVM 系列的链没有不同。但是它的独特之处在于加入了链下的操作,诸如向其他链的节点发送交易,链下的操作结果或者是使用条件可以在 SUAVE 链上进行存储,存储的结果是有共识保证的。这样就能做到链下计算与链上状态的一致性。举个例子,开发者可以编写一个智能合约,在链上记录一些条件(也可以修改),当访问某个链网络节点,返回的结果满足要求,就进行预先设定的某 ERC20 资产的转移。

以上都是 SUAVE 的链下可信计算带来的特性。我们知道,SUAVE 是 Flashbots 团队开发的,而且 SUAVE 被 Flashbots 团队视为「The Future of MEV」,所以 bundle 交易的处理肯定是要有的,基于可信环境的 SUAVE 链,MEV 相关原理非常简单:组装 bundle 交易,发送至 Flashbots 的 relay 节点。私钥可以私密存储,甚至代码也可以,这就组成了巨大的使用潜力。比如 builder 能够得到除了在目标链上的 gas 奖励,他还能在 SUAVE 链上获得某些数字资产。对于 MEV 市场而言,能够在私密信息有安全保证的情况下灵活定义业务,这都是目前 MEV 做不到的(目前只能链下传统的基于信任、合同、商誉等保证)。

SUAVE开发工具以及基础设施

对于开发者而言,一个 dapp 的开发,除了链上智能合约开发,前端开发中诸如 ether.js 等工具集也是重要的一环。SUAVE 应用的开发中,因为 SUAVE 链是基于 EVM 改造的,所以 ether.js,web3.js 等工具也是可以用的,这些工具在与 SUAVE 链上的智能合约交互和与其他 EVM 兼容链没有不同,但是只能调用非 confidential 环境的功能。一个 SUAVE 链的智能合约,分为链上(指 SUAVE 链)和链下(跨链的操作也算这一类)操作,链下操作实际上指的是 confidential 环境计算。对于 confidential 环境计算,Flashbots 团队提供了两种语言的 SDK(Go 和 TypeScript),使用方式在 SUAVE 的文档中有介绍。向 SUAVE 节点发送涉及隐私计算交易(Flashbots 团队称之为 Confidential Compute Request)时,能够带入 confidentialinputs,就是私密参数,这个参数在整个传输过程中,最终明文只会出现在 TEE 环境里。

最后说到智能合约的部署,SUAVE 链的测试网名字叫做 Regil,不过现在已经升级了叫做 Toliman,部署方法在 SUAVE 文档中有详细介绍。其部署的方式、部署后交互方式等等这些与以太坊智能合约部署没有什么不同。

Kettle

智能合约部署之后,其实际的运行方式与以太坊有所不同。SUAVE 最主要的一个执行单元称之为 Kettle。Kettle 就是 SUAVE 的 TEE运行环境(它包括一个 MEVM 节点和一个 confiditial data store)。当开发者编写智能合约并部署后,用户发送 confidential compute request(以下简称 CCR),智能合约需要用到 confidential compute 的时候,实际上都是 Kettle 来运行的。

Kettle的结构图如下:

我们可以看到,开发者使用 solidity 语言开发、部署应用,最终请求到了 Kettle 之后,都是 MEVM 处理的,MEVM 里面除了有 geth 的功能,还在其上面增加了一些precompile,可以存储,检索私密数据等。此外,它还处理(包括修改、检索)SUAVE链上的状态。

Kettle 主要的工作是接收、处理私密计算,还有处理私密数据存储、检索等。以存储某私密数据为例,整个流程是这样的:用户前端使用 SDK 或者 suave geth 工具向 SUAVE 链上某智能合约发起 CCR 请求,SDK 或者 suave geth 工具会使用数据密钥(对称密钥)对私密数据进行加密,这个数据密钥只会在 Kettle 的环境中才会出现,SUAVE 的 RPC node 也只会看到密文。kettle 与节点是否是一对一的关系,这个从 SUAVE 的文档中没有看到。同理 Kettle 自身、节点以及密钥交换的详细原理,在文档中没有介绍。不过基于已知的加解密流程,开发者有理由相信私密数据从用户前端到 Kettle 内部 TEE 环境之间,数据的保护能够得到保证。

私密数据 Kettle 会保存在 confiditial data store,开发者在开发智能合约时,会指定数据的访问者和修改者,Kettle 会通过其 Transport 网络进行发布,如果是指定本合约访问,那么后续的 CCR 请求也必须发送到这个 Kettle,因为 Kettle 的数据存储并非全局更新的。当开发者将智能合约部署后,用户访问相应的 Kettle(CCR 请求里有一个参数,必须指定 Kettle 地址),其私密数据是能够访问的。当用户发送 CCR,在智能合约里请求私密数据时,使用存储相应数据时建立的 ID 以及 key 进行检索的,也就是说,私密数据访问是通过其键值访问和使用的。

有关 HTTP 请求等,也都是 Kettle 处理的。很明显,这些是属于 SUAVE 链外的工作,也就是说这些工作是单节点运行的,虽然 SUAVE 是一个链,但是其区块链的属性较弱,当 Kettle 运行 CCR 请求时,是不会有很多节点运行,然后验证的。其道理很简单,访问链外的资源,肯定是无法保证一定等幂的。所以这些属于 SUAVE 链外的工作,其结果实际上是依赖节点的。所以,开发者要注意部署时候的 Kettle 地址(这一点看,Kettle可以看作一个特殊的智能合约),后续用户 CCR 请求要带相应的 Kettle 地址。

此外,还有个问题值得开发者注意。当前测试网 Toliman 上,kettle 是不保证运行在 TEE 环境的。所以,在测试网上开发智能合约的时候,要注意保护私密数据,不要把真正的私密数据泄露。

总结

SUAVE 链通过引入TEE 环境,给应用开发带来了足够强大的能力,其潜在的应用场景是非常多的。其简洁便利的跨链操作,也给 Dapp 的设计带来了足够的想象空间。

SUAVE 链的 Kettle 设计是能够处理链外资源的,这就带来了验证和共识的问题。不诚实的 Kettle,对网络是有摧毁性的。如何保证 Kettle 不做恶,或者做恶能够得到处罚,或者说保证做恶的成本足够高,这都是需要解决的问题。SUAVE 链的共识采用的 PoA模式,其是否经得住实践的考虑,开发者还在拭目以待。

最新 更多 >
  • 1 METAMUSK币的创始人是谁

    探讨METAMUSK币的创始人是谁?在加密货币领域中,METAMUSK币是一种备受关注的数字资产。METAMUSK币的创始人身份至关重要,因为这是投资者查看资产的重要标准之一。METAMUSK币的创始人是谁?下面我们来探讨一下。METAMUSK币简介METAMUSK币是一种基于以太坊区块链技术发行的数字资产。它的宗旨是为了尽可能多地简化加密货币的使用,同时提高其流动性和易用性。METAMUSK币的

  • 2 MNTO币最高的时候是多少钱?

    MNTO币最高的时候是多少钱?在币圈中,有很多种数字货币,它们的价格涨涨落落,让人眼花缭乱。MNTO币也是其中之一。那么MNTO币最高的时候是多少钱呢?要回答这个问题,首先需要了解一下MNTO币的基本信息。MNTO币是一种基于区块链技术的加密数字货币,由MetaNet Token发行。MNTO币致力于提供一个安全、快速、便捷的支付平台,支持多种交易方式,为用户带来更好的交易体验。截至2021年9月

  • 3 MGOD币历史价格走势怎么样?

    MGOD币历史价格走势怎么样?MGOD币是一个比较新的数字货币,诞生于2021年。不过,从目前的行情来看,它的前景不可小觑。2021年6月初,MGOD币开始正式上市交易。当时价格非常低,大概只有0.006美元左右。然而,从7月份开始,MGOD币的价格开始迅速攀升。7月初,MGOD币价格已经突破了1美元,显示出了其强大的上涨势头。接着,在这个月的中旬和月底,MGOD币的价格一路攀升,最高时甚至突破了

  • 4 狗狗币和以太坊哪个有潜力

    狗狗币和以太坊:哪个有潜力?随着加密货币的普及,人们对于不同币种的潜力也产生了浓厚的兴趣。而在众多币种中,狗狗币(Dogecoin)和以太坊(Ethereum)可谓备受瞩目。两者都有着独到的特点和功能,但究竟哪个币种更具潜力呢?本文将从技术、市场表现和应用领域等方面进行分析,以帮助读者对狗狗币和以太坊做出更明智的投资决策。技术方面在技术方面,以太坊比狗狗币更具有优势。以太坊是一种开放源代码的区块链

  • 5 ufy币是什么?ufy币最近行情如何?

    什么是UFY币?UFY币是一种基于区块链技术的加密货币,它是由UFY Foundation发行的。作为一种数字资产,UFY币的交易和存储都依赖于区块链技术的安全性和透明性。与传统的货币不同,UFY币的发行和管理没有中心化机构,而是通过去中心化的区块链网络完成。UFY币的特点1. 去中心化:UFY币不受任何政府或金融机构的控制和干预,用户可以完全自主管理和使用UFY币。2. 透明性:所有的UFY币交

  • 6 MRHB币的创始人是谁

    MRHB币的创始人是谁?在数字货币领域,有很多的数字货币种类,而MRHB币也是其中一种受到广泛关注的数字货币。那么,MRHB币的创始人是谁呢?下面将为您解答。谁是MRHB币的创始人?MRHB币的创始人是来自韩国的创业者李华根,他于2017年创建了MRHB币。在数字货币领域,李华根是一个非常有影响力的人物,他在这个领域里有着非常多的经验和深厚的技术实力。MRHB币的发行情况MRHB币是一种完全基于区

  • 7 MOOO币最高的时候是多少钱?

    MOOO币最高价达到的历史巅峰MOOO币是一种区块链数字货币,由美国一家公司发行。具有高速交易处理能力、安全可靠的特点,被广泛应用于众多领域。自推出以来,其价格一路上涨,最高价一度成为市场热议话题。2018年初,MOOO币的价格开始逐步攀升。到了4月份,它突破了100美元的高位,这一数字在当时被许多投资者视为红线。但没想到,MOOO币的涨势并未停歇,而是飙升至惊人高位。2018年6月14日,MOO

  • 8 MDXT币历史价格走势怎么样?

    MDXT币历史价格走势怎么样?MDXT是一个新兴的数字货币,成立于2018年,由一群拥有多年区块链技术以及人工智能行业经验的专家创建。MDXT的全称为Mandala Exchange Token,是一个基于区块链技术的加密货币,被广泛认为是未来数字货币行业的一股趋势力量。那么,从MDXT币的历史价格走势来看,它到底如何呢?MDXT币价格走势的起伏与发展2018年Q3,MDXT币首次上线交易,初始价

  • 9 MITH币历史价格走势怎么样?

    MITH币历史价格走势怎么样?MITH币是一个新兴的数字货币,于2018年1月正式发行。这个代币的主要目标是为社交应用程序提供区块链支付选项。目前,该代币已经在全球范围内取得了一定的知名度,但其历史价格走势如何呢?2018年:MITH币的初始发行价格2018年初,MITH币的初始发行价格为0.23美元。当时,数字货币市场正处于升温期,许多新项目都吸引了投资者的注意。MITH币也没有例外,在其初始发

  • 10 MGT币的创始人是谁

    从MGT币的诞生说起MGT币是一种基于区块链技术的加密货币,于2016年由美国著名企业家约翰·麦卡菲创立。麦卡菲在IT行业有着极其丰富的经验,曾经担任多个知名公司的CEO,包括McAfee公司、MGT Capital公司等。约翰·麦卡菲与加密货币缘起麦卡菲在当时开始了一项探索,想要利用区块链技术发掘一些新的商业模式。他开始加强对比特币的研究,甚至专门在他的工作室里建立了一台用于挖矿的计算机。约翰·