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

时间:2024-09-24 编辑: 浏览:(617)

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 贝莱德排除了Solana ETF,坚持比特币和以太坊——现在怎么办?

    Grayscale面临大量资金外流,而贝莱德看到比特币和以太坊ETF大量流入。贝莱德计划不推出比特币和以太坊以外的新加密ETF,专注于已建立的加密货币。 现货比特币[BTC]和以太坊[ETH]ETF最近引起了投资者的极大兴趣。然而,Grayscale面临着显著的资金外流,7月29日有2.1亿美元退出其ETH ETF,5430万美元退出其比特币ETF。 相比之下,贝莱德在同一天的ETH ETF和BT

  • 2 亿万富翁Mike Novogratz公布选举后预测,称“大型机构”将涉足加密货币

    专注于加密货币的金融服务公司Galaxy Digital的创始人兼首席执行官Mike Novogratz正在概述美国大选后数字资产领域可能发生的事情。 在Bankless的一次新采访中,Novogratz表示,在11月大选之后,加密货币可能会受到更友好的监管,监管机构的敌意也会减少。 “我认为下一件大事是在这次选举之后,无论谁获胜,你都会通过某种版本的市场结构法案……我祈祷,我认为你会在货币监理署

  • 3 Bitcoin Miner Core Scientific将高级票据发行额提高到4亿美元

    总部位于德克萨斯州的比特币矿业公司Core Scientific宣布,其4亿美元3.00%可转换优先票据的增发定价将于2029年到期。此次发行的初始规模为3.5亿美元,由于有利的市场条件,规模有所扩大。 这些债券计划于2024年8月19日结算,将私下发行给合格的机构买家。最初的买家将获得额外购买6000万美元债券的选择权。 Core Scientific推出4亿美元高级债券发行 根据官方新闻稿,这

  • 4 特朗普法院加密选民-最新加密货币新闻

    随着现任副总统卡玛拉·哈里斯和前总统唐纳德·特朗普争夺最高职位,2024年美国总统大选正准备成为一场激烈的竞争。随着乔·拜登总统在表现平平后下台,哈里斯已经加入民主党候选人行列。尽管有各种法律斗争和人身威胁,特朗普仍然是一个强大的对手,并积极争取加密社区的支持。 内容隐藏1加密货币将如何影响选举?2特朗普对加密货币有什么影响?3 Harris的加密货币立场4加密货币选民的关键要点 加密货币将如何

  • 5

  • 6 比特币跌至59000美元,美国政府开始出售更多比特币

    周三,美国政府将更多与丝绸之路相关的比特币资产转移到Coinbase Prime后,比特币下跌2.5%,至59.100美元。 链上分析平台Arkham Intelligence周三标记了这一举动,并指出价值5.93亿美元的10000个BTC已被转移。Arkham在推特上写道:“钱包bc1ql两周前从一个已知的美国政府钱包收到了1万BTC。”。“这笔比特币刚刚被发送到Coinbase Prime存

  • 7 Mt.Gox再转出22.5亿刀比特币,BTC跌至6.5W,牛市梦碎?近期关注这几个币!

    跟据Arkham 即时数据,Mt.Gox 地址在今晨大约7 点半坐右,向一个未知地址(bc1q2..) 转出约33,964 枚BTC,价值接近22.5 亿美元。从7 月初开始进行赔付以来,Mt.Gox 已经转出约9.55 万枚BTC,目前钱包还剩下约4.6 万枚,还有剩下30%,带给比特币价格的影响正逐渐减弱中。编辑比特币一度跌破6.5 万美元比特币多头试图守住 66,800 美元的支撑位,但在凌

  • 8 Nansen:以太币价格下跌是由于投资者情绪,而不是4.2亿美元的ETF流出

    自美国证券交易委员会于7月批准现货以太交易所交易基金(ETF)以来,以太币的价格下跌了24%。然而,链上分析平台Nansen声称,以太坊的价格受到宏观经济因素的影响,而不是ETF经历的净流出。 自7月23日美国金融监管机构批准以太坊ETF以来,ETH的价格大幅下跌。自那以后,数字资产的价格下跌了24%,在本报告发布时的零售价为2653.52美元,低于7月23日的3541美元的高点。 自获得批准以来

  • 9 如果Shiba Inu只有1美分,你需要什么才能成为百万富翁

    如果SHIB最终实现了1美分的梦想,市场参与者可能需要更少的Shiba Inu代币才能成为美元百万富翁。 Shiba Inu的成功故事仍然是加密货币市场将便士转化为财富的能力的最佳代表之一。根据CoinGecko的一份报告,SHIB从2020年到2021年的迅猛增长在不到两年的时间里将12美元的投资变成了100万美元。 Shiba Inu投资者继续持有 这一令人印象深刻的成功在维持Shiba In

  • 10 Nvidia变得比比特币和以太币更不稳定

    NVDA的30天隐含波动率已经超过了比特币和以太坊的指标。自2022年底以来,比特币与NVDA表现出强烈的正相关关系。 纳斯达克上市的英伟达(NVDA)被高盛誉为今年全球最重要的股票,预计其价格波动将比加密货币市场领导者比特币和以太币更大。 根据数据来源Fintel的数据,NVDA的30天期权隐含波动率(衡量四周内预期价格波动的指标)最近从年化48%飙升至71%。