AI AI
속보
심층
이벤트
Pro
더보기
자금 조달 정보
특집
온체인 생태계
용어
팟캐스트
데이터
OPRR
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
BTC
$96,000
5.73%
ETH
$3,521.91
3.97%
HTX
$0.{5}2273
5.23%
SOL
$198.17
3.05%
BNB
$710
3.05%
XRP
$2.25
2.07%
DOGE
$0.325
2.23%
USDC
$0.999
3.05%

개발자 관점에서 본 Flashbots의 SUAVE 체인 이해: MEV 외에도 EVM+TEE에는 어떤 다른 가능성이 있습니까?

이 글을 읽으려면 21 분
SUAVE는 Flashbots가 개발한 분산형 프로젝트입니다. MEV 프로세스에서 발생하는 키 보관 및 다수 당사자 간의 상호 신뢰 등의 문제를 해결하기 위해 TEE 환경과의 네트워크를 구축합니다.
원래 제목: "개발자 관점에서 Flashbots의 SUAVE 체인 이해하기: MEV 외에도 EVM + TEE에 대한 다른 가능성은 무엇인가?"
원래 저자: ZHIXIONG PAN, DUGUBUYAN, ChainFeeds Research


SUAVE 체인은 TEE 환경을 도입하여 애플리케이션 개발에 충분히 강력한 기능을 제공하며, 잠재적인 애플리케이션 시나리오는 매우 많습니다. 또한 간단하고 편리한 크로스 체인 운영은 Dapp 설계에 충분한 상상력을 제공합니다.


SUAVE는 Flashbots에서 개발한 분산형 프로젝트입니다. TEE 환경이 있는 네트워크를 구축하여 키 보관 및 여러 당사자 간의 상호 신뢰와 같은 MEV 프로세스에서 발생하는 문제를 해결합니다. 동시에 SUAVE 프로젝트에 TEE를 추가하면 SUAVE는 MEV 문제를 해결하는 것 외에도 더 많은 가능성을 갖게 됩니다.


SUAVE 관련 코드 라이브러리


SUAVE 프로젝트는 Ethereum 확장을 기반으로 하므로 EVM과 본질적으로 호환됩니다. 현재 GitHub에서 진행 중인 관련 프로젝트로는 SUAVE-geth, SUAVE-std, SUAVE-examples 등이 있습니다. 이 중 SUAVE-geth는 geth에 기반하여 확장된 실행 계층 코드입니다. 주로 Geth 기반의 암호화된 컴퓨팅 환경을 추가하고, 암호화된 컴퓨팅 환경에 일부 사전 컴파일을 추가합니다. 특히 표준 HTTPS 요청의 사전 컴파일 기능이 추가되어 개발자가 TEE 환경을 사용하여 사용자에게 다른 네트워크에 액세스할 수 있는 기능을 제공할 수 있다는 점은 언급할 가치가 있습니다. 또한, 암호화 매개변수 획득, 암호화 정보 저장, 암호화 정보 획득 등 TEE 사용 기능에 기반한 일련의 사전 컴파일을 포함하여 신뢰할 수 있는 환경에 기반한 개발 인프라를 구성합니다.


SUAVE-std는 개발자의 편의를 위해 만들어진 프로젝트로, 개발 도구 라이브러리라고 이해될 수 있습니다. 예를 들어, HTTP 요청을 사용하는 방법을 패키징하고, 이를 기반으로 ChatGPT를 사용하는 코드 라이브러리도 패키징합니다. 이를 통해 개발자는 ChatGPT 요청 메시지를 조립하고 ChatGPT 반환 메시지를 직접 구문 분석할 필요가 없습니다. HTTP 요청 메시지를 조립할 때 자체 API 키만 교체하면 됩니다. TEE 보안 환경은 모든 것이 TEE 환경에서 이루어지기 때문에 API 키의 보안을 보장합니다. 초기에 ChatGPT 표준 라이브러리는 기본적으로 GPT-3.5-turbo 모델을 사용했으며 온도는 기본적으로 0.7로 설정되었습니다. 이제 유연한 인터페이스가 추가되었으며 모델을 매개변수로 전달할 수도 있습니다.


SUAVE-examples 프로젝트는 주로 애플리케이션을 개발하는 방법에 대한 몇 가지 사례를 보여주기 위한 것이므로, 초보자를 위한 튜토리얼이라고 하는 것이 더 적절할 것입니다. SUAVE 애플리케이션 개발을 처음 접하는 개발자는 이 프로젝트의 사례를 통해 학습하고 비교할 수 있습니다.


SUAVE 개발 관행


SUAVE는 Ethereum 확장(실행 환경은 MEVM, Modified Ethereum Virtual Machine이라고 함)에 기반하므로 스마트 계약 개발은 EVM과 호환되며 공식 개발 문서는 모두 Solidity로 도입되었습니다. 따라서 개발자에게는 Solidity 개발 경험이 매우 유용합니다. SUAVE 애플리케이션 개발에서 스마트 계약 개발은 TEE 환경에서 암호화된 컴퓨팅 기능을 갖춘 Solidity 개발로 이해할 수 있습니다.


몇 가지 주요 SUAVE MEVM 사전 컴파일이 있습니다. 첫 번째는 confidentialInputs입니다. 이 사전 컴파일은 애플리케이션 요청으로부터 암호화 매개변수를 허용합니다. 이 매개변수는 일반적으로 개인 키, API 키 등과 같이 암호화해야 하는 개인 정보입니다. 일반 텍스트가 TEE 환경에서만 나타날 수 있도록 요구하여 보안을 보장해야 합니다. 애플리케이션 개발에서 이 정보는 이 인터페이스를 통해 얻어집니다. 전송 과정은 완전히 암호화되어 안전하고 신뢰할 수 있습니다. 그 원리에 대해서는 나중에 이야기하겠습니다. 두 번째는 개인 정보를 저장하는 데 사용되는 confidentialStore입니다. 매개변수에서 개인 정보를 얻는 경우 당시에는 계산에 참여할 필요가 없으므로 나중에 사용하기 위해 저장합니다. 세 번째는 confidentialRetrieve입니다. 이 인터페이스는 후속 계산에 비공개 정보가 필요할 때 TEE 컨텍스트 환경에서 일반 텍스트 데이터를 요청하는 데 사용됩니다.


SUAVE의 개인 정보 보안 저장을 통해 개발자는 다음과 같은 시나리오를 구현할 수 있습니다. "사용자가 개인 키를 업로드한 다음 제3자가 비즈니스 계산을 수행합니다. 조건이 충족되면 제3자가 사용자의 개인 키를 직접 사용하여 서명할 수 있습니다. 이런 방식으로 제3자는 특정 규칙에 따라 사용자의 개인 키를 사용하여 서명할 수 있지만 제3자는 개인 키의 일반 텍스트를 얻을 수 없습니다."


SUAVE는 크로스 체인 작업에 HTTPS 요청을 사용합니다. 해당 도구 세트에는 크로스체인 정보를 직접 읽기 위한 게이트웨이라는 라이브러리가 있습니다. 본질적으로 사용자는 특정 체인의 RPC 노드를 설정합니다. 일반적으로 사용자는 Infura, Etherscan 등의 API 키 정보를 업로드한 다음, 호출이 필요할 때 해당 노드에 HTTP 요청을 직접 사용합니다. 크로스체인 정보를 작성해야 할 때 툴셋에는 개발자가 EIP1559와 같은 메시지를 인코딩하고, 최종적으로 eth_sendRawTransaction 인터페이스를 통해 트랜잭션을 브로드캐스트하는 데 도움이 되는 트랜잭션 패키지가 포함되어 있습니다.


언급할 가치가 있는 또 다른 사용 시나리오는 Solidity가 컴파일한 바이트코드를 개인 매개변수로 업로드하고 저장한 다음, 조건이 충족되면 이를 배포하고 호출하여 개인 라이브러리를 형성하는 것입니다. 이 사용 시나리오는 개인 키 + 개인 바이트코드 라이브러리로 확장될 수 있습니다. 이런 방식으로 제3자 위임 통화를 할 때 완전히 개인적인 거래가 이루어질 수 있습니다.


SUAVE 기능


SUAVE의 최종 상태는 체인이며, 이를 SUAVE 체인이라고 부릅니다. SUAVE 체인은 MEVM을 구현한 체인으로 볼 수 있습니다. EVM과 호환되는 블록체인이므로 SUAVE에서도 ERC20, ERC721 등의 자산을 구축할 수 있으며, 체인 상 운영은 EVM 시리즈 체인과 다르지 않습니다. 그러나 이 시스템의 독특한 점은 다른 체인의 노드로 거래를 보내는 등 오프체인 작업이 추가된다는 점입니다. 오프체인 작업이나 사용 조건의 결과는 SUAVE 체인에 저장될 수 있으며, 저장된 결과는 합의를 통해 보장됩니다. 이를 통해 오프체인 계산과 온체인 상태 간의 일관성이 보장됩니다. 예를 들어, 개발자는 스마트 계약을 작성하고 체인에 일부 조건을 기록할 수 있습니다(이는 수정 가능). 특정 체인 네트워크 노드에 접근하여 반환된 결과가 요구 사항을 충족하는 경우, 사전 설정된 ERC20 자산이 전송됩니다.


위에 나열된 기능은 모두 SUAVE의 오프체인 신뢰 컴퓨팅이 제공하는 기능입니다. SUAVE는 Flashbots 팀에서 개발되었으며, Flashbots 팀은 SUAVE를 "MEV의 미래"로 간주하므로 번들 거래 처리가 확실히 필요합니다. 신뢰할 수 있는 환경에서 SUAVE 체인을 기반으로 하는 MEV 관련 원칙은 매우 간단합니다. 번들 거래를 조립하여 Flashbots 릴레이 노드로 보냅니다. 개인 키는 비공개로 저장될 수 있으며 코드도 비공개로 저장될 수 있어 엄청난 활용 가능성이 있습니다. 예를 들어, 타겟 체인의 가스 보상 외에도 빌더는 SUAVE 체인에서 특정 디지털 자산을 획득할 수도 있습니다. MEV 시장에서는 개인 정보의 보안을 보장하는 동시에 사업을 유연하게 정의하는 것이 현재 MEV에서는 할 수 없는 일입니다(현재는 신뢰, 계약, 영업권 등에 기반한 전통적인 오프체인 보장만 제공할 수 있음).


SUAVE 개발 도구 및 인프라


개발자의 경우 온체인 스마트 계약 개발 외에도 프런트엔드 개발의 ether.js와 같은 도구 세트도 dapp 개발의 중요한 부분입니다. SUAVE 애플리케이션을 개발할 때, SUAVE 체인은 EVM 기반이기 때문에 ether.js 및 web3.js와 같은 도구도 사용할 수 있습니다. 이러한 도구는 SUAVE 체인 및 기타 EVM 호환 체인의 스마트 계약과 동일한 방식으로 상호 작용하지만 비밀이 아닌 환경에서만 함수를 호출할 수 있습니다. SUAVE 체인 스마트 계약은 온체인(SUAVE 체인을 말함) 작업과 오프체인(크로스 체인 작업도 이 범주에 포함됨) 작업으로 구분됩니다. 오프체인 운영은 실제로 기밀 환경 계산을 의미합니다. 기밀 컴퓨팅 환경을 위해 Flashbots 팀은 두 가지 언어(Go와 TypeScript)로 SDK를 제공하며, 이에 대한 설명은 SUAVE 설명서에 나와 있습니다. 프라이버시 컴퓨팅 트랜잭션(Flashbots 팀에서 Confidential Compute Request라고 함)을 SUAVE 노드로 보낼 때, 개인 매개변수인 confidentialinputs를 전달할 수 있습니다. 전체 전송 프로세스 동안 이 매개변수의 최종 평문은 TEE 환경에만 나타납니다.


마지막으로 스마트 계약 배포에 관해 말씀드리자면, SUAVE 체인의 테스트 네트워크는 Regil이라고 불리지만, 지금은 Toliman으로 업그레이드되었습니다. 배포 방법은 SUAVE 문서에 자세히 설명되어 있습니다. 배포 방식, 배포 후 상호작용 방식 등은 이더리움 스마트 계약의 배포와 다르지 않습니다.


케틀


스마트 계약이 배포된 후 실제 작동은 이더리움과 다릅니다. SUAVE의 주요 실행 단위는 Kettle입니다. Kettle은 SUAVE의 TEE 런타임 환경입니다(여기에는 MEVM 노드와 기밀 데이터 저장소가 포함됩니다). 개발자가 스마트 계약을 작성하고 배포하고 나면 사용자는 기밀 컴퓨팅 요청(이하 CCR)을 보냅니다. 스마트 계약에서 기밀 컴퓨팅이 필요한 경우, 실제로는 Kettle이 이를 실행합니다.


Kettle의 구조 다이어그램은 다음과 같습니다.



개발자는 Solidity 언어를 사용하여 애플리케이션을 개발하고 배포하고 최종 요청이 Kettle에 도달한 후 MEVM에서 처리되는 것을 볼 수 있습니다. MEVM은 geth의 기능 외에도 개인 데이터 등을 저장하고 검색할 수 있는 몇 가지 사전 컴파일을 추가합니다. 또한 SUAVE 체인의 상태를 처리(수정 및 검색 포함)합니다.


Kettle의 주요 업무는 개인 계산을 수신하고 처리하고, 개인 데이터의 저장 및 검색을 처리하는 것입니다. 개인 데이터의 저장을 예로 들면, 전체 프로세스는 다음과 같습니다. 사용자 프런트 엔드는 SDK 또는 suave geth 도구를 사용하여 SUAVE 체인의 스마트 계약에 대한 CCR 요청을 시작합니다. SDK 또는 suave geth 도구는 데이터 키(대칭 키)를 사용하여 개인 데이터를 암호화합니다. 이 데이터 키는 Kettle 환경에만 나타나고, SUAVE의 RPC 노드는 암호문만 볼 수 있습니다. 케틀과 노드가 일대일 관계를 가지고 있는지 여부는 SUAVE 문서에 나와 있지 않습니다. 마찬가지로, 케틀 자체와 노드, 키 교환의 세부적인 원리는 이 문서에서 소개되지 않았습니다. 그러나 개발자는 알려진 암호화 및 복호화 프로세스를 기반으로 Kettle 내부의 TEE 환경부터 사용자 프런트 엔드까지 개인 데이터의 보호를 보장할 수 있다고 믿을 만한 이유가 있습니다.


개인 데이터 Kettle은 기밀 데이터 저장소에 저장됩니다. 스마트 계약을 개발할 때 개발자는 데이터 접근자와 수정자를 지정합니다. 케틀은 자사의 운송 네트워크를 통해 이를 게시할 예정입니다. 이 계약에 대한 액세스가 지정된 경우 후속 CCR 요청도 이 Kettle로 보내야 합니다. Kettle의 데이터 저장소는 전 세계적으로 업데이트되지 않기 때문입니다. 개발자가 스마트 계약을 배포한 후, 사용자는 해당 Kettle에 액세스합니다(CCR 요청에 매개변수가 있으며 Kettle 주소를 지정해야 함). 그러면 개인 데이터에 액세스할 수 있습니다. 사용자가 CCR을 보내고 스마트 계약에서 개인 데이터를 요청하는 경우, 해당 데이터를 저장할 때 생성된 ID와 키를 사용하여 검색됩니다. 즉, 개인 데이터는 키 값을 통해 접근되고 사용됩니다.


HTTP 요청 등도 Kettle에서 처리됩니다. 분명히 이러한 작업은 SUAVE 체인 외부의 작업이므로 이러한 작업은 단일 노드에 의해 실행됩니다. SUAVE는 체인이지만 블록체인 특성이 약하다. Kettle이 CCR 요청을 실행할 때, 실행 후 이를 검증하는 노드는 많지 않습니다. 그 이유는 간단해요. 체인 외부의 리소스에 접근할 경우 멱등성이 보장되지 않습니다. 따라서 이러한 작업은 SUAVE 체인 외부에 속하며, 그 결과는 실제로 노드에 따라 달라집니다. 따라서 개발자는 배포 중에 Kettle 주소에 주의를 기울여야 합니다(이 관점에서 Kettle은 특별한 스마트 계약으로 간주될 수 있음). 그리고 후속 사용자 CCR 요청은 해당 Kettle 주소를 포함해야 합니다.


또한 개발자가 주의해야 할 또 다른 문제가 있습니다. 현재 테스트넷인 Toliman에서는 Kettle이 TEE 환경에서 실행될 것이라는 보장이 없습니다. 따라서 테스트 네트워크에서 스마트 계약을 개발할 때는 개인 데이터를 보호하는 데 주의를 기울여야 하며, 실제로 개인 데이터가 유출되지 않도록 해야 합니다.


요약


TEE 환경을 도입함으로써 SUAVE 체인은 애플리케이션 개발에 충분히 강력한 기능을 제공하며 잠재적인 애플리케이션 시나리오는 매우 다양합니다. 간편하고 편리한 크로스체인 운영은 Dapp 설계에 있어서 충분한 상상력을 발휘할 수 있는 여지를 제공합니다.


SUAVE 체인의 케틀 디자인은 오프체인 리소스를 처리할 수 있으므로 검증 및 합의 문제가 발생합니다. 부정직한 주전자는 네트워크에 파괴적인 영향을 미칠 수 있습니다. 케틀이 악을 행하지 않도록 하는 방법, 악을 행하면 처벌을 받게 하는 방법, 악을 행하는 데 드는 비용이 충분히 높게 하는 방법, 이러한 모든 문제는 해결되어야 합니다. 개발자들은 여전히 SUAVE 체인의 합의에 의해 채택된 PoA 모델이 실질적인 고려 사항을 견딜 수 있는지 지켜보고 있습니다.


원본 링크



BlockBeats 공식 커뮤니티에 참여하세요:

Telegram 구독 그룹:https://t.me/theblockbeats

Telegram 토론 그룹:https://t.me/BlockBeats_App

Twitter 공식 계정:https://twitter.com/BlockBeatsAsia

举报 오류 신고/제보
문고 선택
새 문고 추가
취소
완료
새 문고 추가
자신만 보기
공개
저장
오류 신고/제보
제출