성능이 최상의 EVM이 되다, Trust EVM의 야망
저자: EOS 네트워크 재단
2022년 6월 16일, Trust EVM 공식 계정은 Twitter Space에서 "Trust가 어떻게 가장 빠른 EVM을 구현하는가"라는 주제로 라이브 방송을 진행했습니다. EVM+ 기술 책임자 Matias Romeo와 Trust EVM의 개발자 대표인 Trust Swap 책임자 Esteban Saá B가 이번 행사에 참석하여 Trust EVM의 개발 진행 상황, 테스트넷의 기존 아키텍처, Trust EVM을 기반으로 한 애플리케이션 배포의 실제 경험, 그리고 Trust가 어떻게 가장 빠른 EVM을 구현하는지에 대한 후속 작업 등 다양한 주제를 공유했습니다.
EOS 네트워크 기반의 이더리움 가상 머신인 Trust EVM은 개발자에게 턴키 솔루션을 제공합니다. 높은 호환성 덕분에 이더리움 네이티브 애플리케이션은 Trust EVM으로 원활하게 이식될 수 있으며, 사용자에게는 낮은 거래 비용을 제공합니다. 따라서 테스트넷에서 개발자 미리보기 버전을 발표한 이후 많은 개발자들이 Trust EVM의 성능과 미래 발전에 주목하고 있습니다. Trust EVM은 최근 어떤 업데이트를 가져왔을까요? 앞으로의 진행은 어떻게 될까요?
다음은 이번 행사 의 모든 내용 을 편집 정리한 것입니다.
행사의 멋진 순간들:
공식적으로 Silkworm을 사용하는 노드를 위해 JSON-RPC 요청을 EVM에 제공하는 플러그인을 생성할 예정입니다;
Mandel 3.1 RC 1 버전은 두 가지 새로운 프로토콜 기능을 통합하였으며, 공식적으로는 향후 일주일 또는 몇 주 내에 새로운 기능을 활성화할 계획입니다. 또한 새로운 EVM 런타임을 Jungle에 배포할 예정입니다;
Trust EVM은 EOS의 완벽한 인프라로, 모든 새로운 아이디어의 애플리케이션을 지원할 수 있습니다. 그래서 우리는 이미 완료된 일에 머물고 싶지 않습니다. 우리는 혁신하고 창조해야 하며, 우리가 할 수 있다고 믿습니다.
ENF Grant 신청 자금 지원 과정은 매우 간단하며, 이는 EOS 네트워크 재단의 자금 지원 프레임워크의 훌륭한 조직 덕분입니다.
EVM+ 기술 책임자 Matias Romeo의 발표
안녕하세요, 제가 공유할 내용은 Trust EVM 테스트넷의 진행 상황, 다음 단계에서 출시될 버전, 그리고 EOS 네트워크에서 가장 빠른 EVM이 되는 방법에 대한 세 가지 주제를 중심으로 진행됩니다.
Trust EVM 테스트넷 의 진행 상황
우리는 몇 가지 프로젝트를 Trust EVM과 다음 달에 출시될 새로운 프로토콜 기능에 통합하고 있습니다. 프로젝트 시작 시, 우리는 EOS에서 호환성 계층을 구현하는 방법과 Trust EVM에서 두 가지 선택 방향을 구현하는 방법에 대해 논의했습니다. 하나의 선택은 EOS에서 구현하는 것이고, 다른 선택은 스마트 계약 형태로, 즉 EOS의 일반 계약입니다. 우리는 네이티브 성능이 더 높고 실행 속도가 매우 빠르다는 것을 알고 있습니다. 그러나 다른 한편으로는 유연성이 낮고, 새로운 EVM 버전이 출시될 때 모든 노드 운영자가 소프트웨어를 업데이트해야 합니다.
그래서 우리는 스마트 계약 모델을 채택하기로 결정했습니다. 잘 알려진 바와 같이, EOS는 뛰어난 성능을 가지고 있으며, 우리에게 큰 유연성을 제공합니다. EOS 계약은 새로운 버전으로 업데이트할 수 있습니다. 따라서 여러 가지를 고려한 결과, 이것이 우리가 가야 할 길이라고 생각했습니다.
우리는 C++ 스마트 계약을 개발했으며, EVM One을 통합했다고 할 수 있습니다. EVM One은 C++에서 가장 빠른 이더리움 가상 머신을 배포하며, 코드 라이브러리는 최적화되어 더 빠르고 효율적인 EVM 스마트 계약을 제공합니다. 그러나 EVM을 지원하기 위해서는 런타임에 EVM 호환 계층이 있어야 합니다. 또한 개발자는 현재 상태에 접근할 수 있는 방법이 필요하며, 과거를 조회할 수 있어야 합니다. 그래서 이것이 Web3 JSON-RPC의 용도입니다.
Trust EVM 테스트넷의 기존 아키텍처
모든 이더리움 클라이언트는 JSON-RPC 사양을 구현했습니다. 애플리케이션은 상태 정보를 조회하고 거래를 전송하기 위해 통합된 방법 집합에 의존할 수 있으며, EVM의 상태 덕분에 스마트 계약은 EOS 상태에서 지속적으로 존재합니다. 가능한 해결책 중 하나는 각 JSON-RPC 요청을 EVM 계약의 EOS 상태 조회에 매핑하는 것입니다. 그러나 사실은 그렇게 간단하지 않습니다. JSON-RPC 사양에는 과거 상태에 접근해야 하는 특정 호출이 있습니다. 예를 들어, 특정 계약이 이 위치에 저장한 것이 무엇인지 조회할 수 있으며, 현재 상태의 블록 헤드가 아니라 과거의 것입니다.
또한 특정 계좌의 잔액 이력을 조회하거나 거래를 실행하고 추적을 확인할 수 있으며, 임의의 블록 높이에서 해당 거래를 실행할 수 있습니다. 그래서 우리는 이 버전의 테스트넷에서 JSON-RPC 요청의 추적을 제공하기 위해 일반 이더리움 클라이언트를 사용하기로 결정했습니다. 따라서 기본적으로 우리가 지금 하고 있는 것은 체인에서 EVM 런타임 계약을 소유하는 것입니다. 거래가 체인에서 실행된 후, 우리는 EOS 블록체인과 Jungle 블록체인에서 그것들을 추출할 수 있습니다.
이 경우, 일단 그것들이 적용되면, 우리는 피어 투 피어 네트워크 프로토콜을 사용하여 그것들을 이더리움 클라이언트에 제공합니다. 우리는 가스 노드를 가지고 있으며, 이는 일반 이더리움 클라이언트 중 하나로, EOS 블록체인과 Jungle 블록체인에서 EVM 계약에 적용된 모든 거래를 수신할 수 있습니다.
일부 기존의 한계
현재 이 솔루션은 잘 작동하고 있지만, 우리는 몇 가지 한계를 발견했습니다. Jungle에서 테스트 중인 Trust EVM 아키텍처를 단순화하기 위해 EVM One의 C++ 스마트 계약을 사용했습니다. 동시에 블록체인에서 거래를 추출하고 가스 노드로 전달하는 특별한 서비스를 시작했습니다.
이 가스 노드는 세계에 JSON-RPC 인터페이스를 보여주는 노드로, 당신이 Metamask와 연결할 때 사용하는 노드입니다. 당신은 이더리움 노드 중 하나를 가리키고, 그런 다음 우리는 패커를 가지고 있어 들어오는 거래를 처리하고 거래를 EOSIO TX 거래로 패킹합니다. 그런 다음 이를 런타임 계약으로 푸시합니다. 그러나 아키텍처가 잘 작동하더라도 많은 불확실성이 존재합니다.
다음 버전의 해결책
따라서, 우리는 더 간단하고 통합된 새로운 운영자를 사용하는 것을 고려하기 시작했습니다. 이것이 바로 EOSIO 이전 설계가 진정으로 유용하게 사용되는 곳입니다. EOS 노드 프로그램의 멋진 기능 중 하나는 Appbase를 사용하여 구축되었다는 것입니다. Appbase는 플러그인 집합에서 애플리케이션을 구축하기 위한 기본 프레임워크를 제공합니다. Appbase는 플러그인 생명주기를 관리하고 모든 플러그인이 초기 구성에서 전파기에서 종료되도록 보장합니다.
따라서, 당신은 플러그인 집합에서 애플리케이션을 구축할 수 있습니다. 우리는 사용자 정의 플러그인을 작성하여 EOS 노드의 기능을 확장하며, 노드 운영자는 나중에 자신의 노드를 실행할 때 활성화하거나 비활성화할 수 있습니다. 이것이 첫 번째 부분이며, 우리는 사용자 정의 C++ 플러그인을 작성하여 EOS 노드 기능을 확장합니다. 사실, 현재 많은 플러그인이 있으며, 각 플러그인은 EOS 노드에서 제안된 특정 주소를 대상으로 합니다.
Silkworm의 놀라운 소식
잘 알려진 바와 같이, Silkworm은 이더리움 프로토콜의 C++ 구현으로, Erigone 아키텍처를 기반으로 처음부터 작성된 클라이언트로, 가장 빠른 이더리움 클라이언트가 되는 것을 목표로 하며, 소스 코드의 높은 품질 가독성을 유지합니다. 지금 많은 주목을 받고 있습니다. EOS 노드를 확장할 수 있는 플러그인을 사용할 수 있기 때문에, 우리는 효율성 문제를 해결하는 이더리움 C++를 중점적으로 다루고 있습니다. 우리는 Silkworm을 사용하는 노드를 위해 JSON-RPC 요청을 EVM에 제공하는 플러그인을 생성하기로 결정했습니다.
이 플러그인이 준비되면, 당신이 자신의 Trust EVM 노드를 실행하고 싶다면, 이 새로운 플러그인을 사용하여 공식 EOS 노드를 실행하면 JSON-RPC 요청을 처리할 수 있게 됩니다. 또는 개발 목적으로 사용하여 테스트넷이나 메인넷을 표시하거나 다른 유형의 구성을 사용할 수 있습니다.
이것은 이전 아키텍처를 크게 단순화했습니다. 모든 필요한 기능이 동일한 EOS 노드에 번들로 제공될 것입니다. 만약 당신이 Trust EVM 위에 일부 토큰 거래를 나열하고 싶다면, 우리는 특정 배포에 대해 많은 이동 부품이 개발 팀에 운영 문제를 일으킬 수 있다는 점도 고려했습니다. 따라서 알려진 구성을 가진 노드 하나만 있으면, 이는 우리가 현재 가지고 있는 것보다 더 나은 아키텍처이며, 우리가 궁극적으로 가고자 하는 방향입니다.
Mandel의 새로운 프로토콜 기능
Mandel은 곧 출시될 공식 EOSIO 버전으로, EVM 런타임을 실행하는 데 도움을 줄 것입니다. 고정 주소의 EVM에 몇 가지 특별한 유형의 계약이 번들로 제공되어 계산 시간 측면에서 매우 비싼 고급 기능을 제공합니다. EOS에서는 해시 및 키 복구 알고리즘과 같은 대부분의 기능이 이미 지원됩니다. EVM 런타임 계약은 단순히 그것들을 사용하고, 연결하고, 이러한 전용 기능을 사용합니다. 그러나 다른 일부는 그렇지 않기 때문에, 우리는 웹 어셈블리 수준에서 그것들을 구현해야 하며, 사전 컴파일된 내용을 로컬로 구현해야 합니다. EOSIO 프로토콜은 새로운 프로토콜 기능을 추가하여 확장할 수 있는 매우 좋은 기능을 가지고 있어, 블록 생산자가 자유롭게 활성화할 수 있습니다.
그래서 우리는 공식 EOS에 두 가지 새로운 프로토콜 기능을 제출하여, 우리가 이 새로운 네이티브 기능을 가지고 있음을 나타냈습니다. 동시에 EOSIO 프로토콜에 새로운 기능을 추가하여 EVM에 번들된 이더리움 사전 컴파일 계약 호출을 가속화하는 데 도움이 될 것입니다. Mandel 3.1 RC 1 버전은 이러한 모든 새로운 기능을 통합하고 Jungle에서 테스트넷을 배포하기 시작했습니다. 따라서 BP가 최신 버전으로 업데이트되고 이러한 프로토콜 기능이 활성화되면, EVM 런타임은 그것들을 사용하기 시작할 것입니다. 이 새로운 버전의 경우, 우리는 6월 22일에 이러한 기능을 활성화할 계획입니다. 그래서 저는 일주일 또는 몇 주 내에 프로토콜 기능이 활성화되고 새로운 EVM 런타임이 Jungle에 배포될 것이라고 생각합니다.
우리는 EVM 업데이트를 따라잡을 수 있는 매우 좋은 유연성 조합을 가질 것이라고 생각합니다. 왜냐하면 우리는 스마트 계약 수준에서 EVM을 구현했기 때문입니다. 그러나 이러한 것들은 계산 시간 측면에서 매우 비쌉니다. 이더리움 사전 컴파일 계약은 더 쉽게 내재화되고 이러한 새로운 프로토콜 기능에서 지원될 것입니다. RPC 부분에 대해서는, 이 새로운 Silkworm 플러그인을 메인넷에 통합함으로써, EOS 노드는 Trust EVM 노드를 실행하고자 하는 노드 운영자의 삶을 더욱 쉽게 만들어 줄 것입니다.
사회자: 다음으로 TrustSwap의 책임자 Esteban 씨를 환영하겠습니다. 또한 TrustSwap 팀이 EOS Network Foundation Grant의 자금을 받게 된 것을 축하합니다.
TrustSwap 책임자 Esteban Saá B의 발표
Esteban과 Trust EVM의 인연
얼마 전, 뉴스 기사를 보던 중 Trust EVM에 대한 기사를 보게 되었고, 그것이 제 주목을 끌었습니다.
저는 매우 호기심이 생겼습니다. 왜냐하면 그 안에는 우리가 어떻게 작업하고, 어떻게 연결되는지에 대한 흥미로운 정보와 그 주위의 기술적 결정들이 있었기 때문입니다. 그래서 저는 "좋아, 이걸 테스트해봐야겠다. 이게 어떻게 돌아가는지 보자."고 생각했습니다. 그래서 설정을 하고 몇 분 후에 몇 개의 코인을 받았습니다. 잘 해냈습니다. 그런 다음 "좋아, 몇 개의 Solidity 계약을 배포해보겠다."고 말했습니다. 제가 시도한 첫 번째 스마트 계약은 매우 빠르게 실행되었고, 조작도 매우 쉬웠습니다. 그래서 저는 Trust EVM에 주목하기 시작했습니다. 왜냐하면 저는 이전에 다른 이더리움 EVM과 바이낸스 스마트 체인에서 작업한 경험이 있었기 때문입니다. 그래서 이 EVM의 속도가 얼마나 빠른지 느낄 수 있었습니다. 그때 저는 "이게 뭐지? 그들은 어떻게 이렇게 빠르게 작동하게 할 수 있을까?"라고 생각했습니다. 그래서 저는 또 다른 일을 하기로 결심했습니다. 다른 계약들을 테스트하기 시작했습니다. 예상대로 모든 것이 잘 작동했고, 호환성 측면에서도 문제가 없었습니다.
그래서 저는 EOS에 대해 더 깊이 알아보게 되었고, 커뮤니티에 가입하여 제가 하고 있는 모든 것을 공유하기 시작했습니다. "이 계약을 배포했는데, Trust EVM은 매우 흥미롭다."고 말했습니다.
커뮤니티는 매우 책임감 있게 많은 정보를 회신해 주었습니다. 저는 더 많은 계약을 테스트하고 커뮤니티로부터 피드백을 받기 시작했습니다. 그리고 우리는 이 정보 순환을 시작했습니다. 저는 이렇게 잘 조직된 커뮤니티를 본 적이 없습니다. 모든 프로젝트, 아이디어 및 진행 상황이 있었습니다.
저는 이것이 매우 훌륭한 커뮤니티라고 생각하며, 테스트를 넘어 더 도전적인 일을 시도해야 한다고 느꼈습니다. 그래서 다음 아이디어는 빠르게 사용하는 계약을 배포해보는 것이었습니다. 모든 것이 정상적으로 작동했습니다. 그런 다음 UniSwap에서 코드를 가져와 쉽게 조합했습니다. 마치 마법처럼 작동했습니다. 빠르고 안정적이며 신비로웠습니다. 우리가 Trust EVM에서 거래를 할 때, 사용자 경험이 매우 좋았습니다.
결국 저는 커뮤니티에서 무언가를 창조하고, 커뮤니티의 일원이 되었다고 생각합니다.
예상치 못한 발전: EOS 네트워크 재단의 자금 지원을 받다
저는 커뮤니티를 중심으로 회사를 세우고 싶었지만, 우리 팀은 이를 실현하기 위해 자원, 지도 및 지원이 필요했습니다. 나중에 우리는 ENF Grant에 안내받았고, 자금 지원 신청 과정은 매우 간단했습니다. 이는 EOS 네트워크 재단의 자금 지원 프레임워크의 훌륭한 조직 덕분입니다.
만약 당신도 관심이 있다면, 제가 대략 설명할 수 있습니다: 당신은 GitHub 저장소를 복제할 수 있으며, 복제한 후 코드나 텍스트 내부에 기본 정보 레이아웃이 있습니다. 그런 다음 그것을 채우고 풀 리퀘스트를 생성하면 됩니다.
대략적인 과정은 이렇습니다. 매우 간단하고 순조롭습니다. 우리는 프로젝트 개요를 제출했고, ENF에서 검토했습니다. 그런 다음 우리는 약간의 피드백을 받았고, 이후 자금을 받게 되었습니다. 우리는 이제 훌륭한 것을 창조하기 위한 자금과 기술 지원을 가지고 있습니다. 바로 우리가 하고 있는 일입니다.
TrustSwap의 특징
TrustSwap은 제가 많은 긍정적인 EOS 커뮤니티 구성원들과 함께 Trust EVM 위에 구축한 흥미로운 새로운 AMM 거래소입니다. 우리는 더 나아가 생태계 내에서 중요한 문제를 해결하고자 합니다. 그것은 Trust EVM 생태계 내부의 멋진 점을 보여주는 것입니다.
우리는 Trust EVM 위에 놀라운 사용자 경험을 제공하는 서비스를 만들기 위해 노력하고 있으며, 거래를 빠르고 저렴하게 처리하는 동시에 "무엇이 멋진가, 다음 스타 프로젝트는 무엇인가? 어떤 프로젝트가 상승세인가? 또는 어떤 프로젝트가 이미 정점을 찍었는가?"를 알려줄 수 있습니다. Trust EVM은 우리가 이러한 것들을 만들 수 있게 해줍니다. 이 호환 계층을 갖는 것은 우리에게 매우 중요합니다. 왜냐하면 여기서 더 멀리 나아갈 수 있기 때문입니다. 가치를 가져오고, 당신의 아이디어와 제품을 출력할 수 있습니다. 우리가 하는 것은 기본적인 거래 서비스뿐만 아니라, 현재의 인기 프로젝트, 어떤 프로젝트가 급락하고 있는지 등과 같은 더 중요한 서비스도 제공합니다. 이를 통해 광범위한 프로젝트 목록에서 최상의 거래를 선택할 수 있습니다.
이것이 우리가 현재 가지고 있는 것입니다. 그러나 우리는 여전히 발전하기 위해 노력하고 있습니다. 왜냐하면 우리는 진정으로 빠르고 확장 가능하며 호환 가능한 EVM의 견고한 기반을 가지고 있기 때문입니다. 우리는 그 위에 더 많은 멋진 콘텐츠를 구축할 수 있습니다. Trust EVM으로 쉽게 이식할 수 있는 계약과 아이디어가 많이 있습니다. 좋은 호환성은 당신이 문제를 제기하고 개선할 수 있게 해주며, 이는 사용자 경험을 크게 향상시킬 것입니다.
EOS 커뮤니티와 그들이 구축하고 있는 인프라의 도움에 감사드립니다. 그들이 없었다면 우리는 이러한 아이디어를 현실로 바꾸고, 이를 통해 세상의 발전을 개선하는 강력한 영향을 미칠 수 없었을 것입니다. 감사합니다.