과대광고가 가라앉으면 Hyperliquid의 브릿지 계약인 HyperEVM과 그 잠재적인 문제점을 기술적인 관점에서 설명하세요.

avatar
PANews
01-08
이 기사는 기계로 번역되었습니다
원문 표시

솔라나(SOL), 후오비 토큰(HT), 오스모시스(OSMO), 베이직어텐션토큰(BAT), 옵티미즘(OP), 컴파운드(COMP), 알위브(AR), 온톨로지(ONT), 아비트럼(Arb), MX Token(MX), DeFiChain(DFI), 론린(RON), 리퀘스트(REQ), 온톨로지가스(ONG), 코인98(C98), 트론(TRON), 코스모스(Cosmos), 아비트럼(Arbitrum), 렌(Ren), 비트(Bit)

호가 창, 솔리디티, Total Value Locked(TVL), 초당 거래 수(TPS), 탈중앙화 거래소(DEX), 이더리움 개선 제안(EIP), 이더리움 요청 사항(ERC), 이더리움 가상 머신(EVM), 효과적인 지분 증명(EPoS), 민트(Mint)

블록체인 익스플로러, 오더북, 중앙화 거래소, 리스크, 정서, 온체인, 거래소, 대량, 클레임, 이더, 동결, 공급량, 잔액, 포지션

1. 해커가 coldValidatorSet를 장악하면 어떤 장애물도 무시하고 사용자 자산을 훼손할 수 있습니다. coldValidatorSet는 emergencyUnlock 기능을 가지고 있어 lockers가 브리지 계약의 잠금을 무효화할 수 있으며 노드 목록을 즉시 업데이트할 수 있습니다. 현재 Hyperliquid에는 4개의 검증 노드만 존재하므로 비밀 키가 탈취될 가능성이 높습니다.

2. finalizers가 사용자의 출금 거래에 대한 최종 확인을 거부하고 검토 공격을 시작하는 경우, 사용자 자산은 훼손되지 않지만 브리지 계약에서 출금할 수 없습니다.

3. lockers가 악의적으로 크로스체인 브리지를 잠그면 모든 출금 거래가 실행되지 않고 coldValidatorSet가 잠금을 해제할 때까지 기다려야 합니다.

HyperEVM과 듀얼 체인 상호작용 아키텍처

주문장부 거래를 프로그래밍 가능하게 하기 위해 Hyperliquid는 HyperEVM이라는 솔루션을 출시했습니다. 기존 EVM과 비교하여 두 가지 특별한 장점이 있습니다. 첫째, HyperEVM은 HyperLiquid의 주문장부 상태를 읽을 수 있습니다. 둘째, HyperEVM 내의 스마트 계약이 Hyperliquid 주문장부 시스템과 상호작용할 수 있어 Hyperliquid의 응용 범위가 크게 확장되었습니다.

간단한 예로, 사용자가 주문 작업의 프라이버시를 보장해야 하는 경우 HyperEVM에서 Tornado Cash와 유사한 스마트 계약을 통해 프라이버시 계층을 추가한 다음 특정 인터페이스를 통해 HyperLiquid의 주문장부 시스템에서 주문을 실행할 수 있습니다.

HyperEVM을 소개하기 전에 Hyperliquid가 HyperEVM을 위해 준비한 특별한 아키텍처를 설명해야 합니다. Hyperliquid에는 맞춤형 초고성능 주문장부 시스템이 있지만 EVM 환경의 거래 처리 속도는 매우 느립니다. 주문장부 시스템의 속도가 느려지는 것을 방지하기 위해 Hyperliquid는 "듀얼 체인 솔루션"을 사용했습니다. 이는 Hyperliquid 노드 장비가 소프트웨어 레벨에서 두 개의 블록체인을 동시에 실행하는 것을 의미합니다. 각 노드는 두 체인의 데이터를 로컬에 저장하고 두 체인의 거래를 각각 처리합니다.

Hyperliquid는 주문장부 전용 체인인 Hyperliquid L1(L1)과 EVM 호환 체인인 HyperEVM(EVM)의 두 체인을 만들었습니다. 이 두 체인의 데이터는 동일한 합의 프로토콜을 통해 노드 그룹 간에 전파되어 하나의 통합된 상태로 존재합니다. 그러나 이 두 체인은 서로 다른 실행 환경에서 실행됩니다. Hyperliquid L1은 허가 체인이며 HyperEVM은 비허가 체인으로 누구나 계약을 배포할 수 있습니다. 이러한 계약은 사전 컴파일된 코드를 통해 L1의 정보에 액세스할 수 있습니다.

주목할 점은 Hyperliquid L1의 블록 생성 속도가 HyperEVM 체인보다 빠르지만 이 블록들은 순서대로 실행됩니다. EVM 체인의 계약은 과거 L1 블록의 데이터를 읽을 수 있으며 향후 L1 블록에 데이터를 쓸 수 있습니다.

HyperL1과 HyperEVM 간의 상호작용을 위해 Hyperliquid는 Precompiles와 Events라는 두 가지 기술을 사용했습니다.

Precompiles

Precompiles는 스마트 계약에서 구현하기 어렵고 복잡도가 높은 작업을 하드웨어 수준에서 직접 구현하는 것을 말합니다. 이를 통해 Solidity에 친화적이지 않고 번거로운 계산 프로세스를 일반 스마트 계약 외부에서 처리할 수 있습니다. 이러한 Precompiles 코드는 C, C++ 등 Solidity보다 하드웨어 수준에 가까운 언어로 구현할 수 있습니다.

Precompiles 방식을 통해 EVM은 더 고급이고 복잡한 기능을 지원할 수 있어 스마트 계약 개발자의 요구사항을 충족할 수 있습니다. 외관상 Precompiles는 특수 스마트 계약으로, 다른 스마트 계약에서 이러한 특수 계약을 직접 호출하여 매개변수를 전달하고 실행 결과를 받을 수 있습니다. 현재 기본 EVM에는 0x01 주소에 있는 ecRecover 명령어가 Precompiles 방식으로 구현되어 secp256k1 서명의 유효성을 EVM 내부에서 확인할 수 있습니다.

특수 기능을 추가하기 위해 Precompiles를 사용하는 것이 현재의 주류 접근 방식입니다. 예를 들어 Base는 WebAuth 인증 작업을 편리하게 수행할 수 있도록 P256 Precompiles 코드를 추가했습니다.

이러한 주류 접근 방식과 일치하게 HyperEVM도 Hyperliquid 주문장부 시스템 상태를 읽기 위해 일련의 Precompiles 코드를 추가했습니다. 현재 알려진 Hyperliquid의 Precompiles 코드 주소는 0x0000000000000000000000000000000000000800이며, 이 주소를 통해 최근 L1 블록의 사용자 영구 계약 포지션 정보를 읽을 수 있습니다.

Events

앞서 언급했듯이 HyperEVM은 HyperL1 블록에 데이터를 쓸 수 있는데, 이는 Events를 통해 구현됩니다. Events는 EVM의 기본 개념으로, 스마트 계약 실행 중에 외부(예: 프런트엔드 애플리케이션 또는 리스너)로 로그 정보를 보낼 수 있어 계약 실행 상황을 모니터링할 수 있습니다.

예를 들어 사용자가 ERC-20 계약의 토큰 전송 기능을 사용할 때 계약은 Transfer 이벤트를 발생시켜 토큰 전송 상황을 블록 탐색기 등 프런트엔드 애플리케이션이 알 수 있게 합니다. 이러한 이벤트 정보는 블록에 포함되며 이벤트 로그 검색 및 모니터링에 대한 많은 성숙한 솔루션이 있습니다.

현재 많은 크로스체인 관련 시나리오에서 이벤트를 사용하여 크로스체인 매개변수를 전달합니다. 예를 들어 이더리움 메인넷에 배포된 Arbitrum 브리지 계약에서 사용자는 관련 함수를 호출하여 이벤트를 발생시키고 이를 통해 Arbitrum에서 거래를 트리거할 수 있습니다.

알려진 정보에 따르면 HyperLiquid 노드는 0x3333333333333333333333333333333333333333(이벤트 주소)에서 발생하는 이벤트를 모니터링하고 이벤트에 포함된 정보를 기반으로 사용자 의도를 파악하여 이를 향후 Hyper L1 블록에 기록되는 거래 동작으로 변환합니다.

예를 들어 위 이벤트 주소는 사용자가 해당 함수를 호출할 때 IocOrder라는 이벤트를 발생시킵니다. Hyper L1 블록이 생성될 때 HyperLiquid 노드는 최근 HyperEVM에서 발생한 이벤트를 먼저 확인하고 새로운 IocOrder 이벤트를 발견하면 이를 Hyper L1의 주문 작업으로 변환합니다.

HyperBFT

합의 프로토콜 레벨에서 Hyperliquid는 HotStuff 기반의 HyperBFT 프로토콜을 사용합니다. HotStuff-2는 현재 가장 복잡도가 낮은 합의 프로토콜 중 하나입니다.

초기 Hyperliquid는 Tendermint 합의 알고리즘을 사용했는데, 이는 Cosmos 시스템의 기본 합의 알고리즘입니다. 그러나 Tendermint는 효율성이 낮아 각 단계마다 모든 노드 간 메시지 교환이 필요하여 통신 복잡도가 O(n²)입니다(n은 노드 수).

Tendermint를 사용하면 Hyperliquid는 초당 최대 20,000건의 주문을 처리할 수 있습니다. 중앙화 거래소 속도를 달성하기 위해 HyperLiquid 팀은 HotStuff를 기반으로 HyperBFT 알고리즘을 개발했고 Rust로 구현했습니다. 이론적으로 HyperBFT는 초당 최대 200만 건의 주문을 처리할 수 있습니다.

아래 그림은 병렬 처리가 없는 상황에서 HyperBFT 합의의 메시지 전달 방식을 보여줍니다. 모든 메시지가 리더에 의해 집계되어 일괄 브로드캐스트되므로 노드 간 메시지 교환 단계가 생략되어 복잡도가 크게 낮아집니다.

간단히 말해 HyperBFT는 현재 리더가 블록을 생성하고 모든 노드가 투표에 참여하여 투표 결과를 리더에게 전달하면 다음 리더가 교체되는 합의 프로토콜입니다. 실제로 Hotstuff와 Tendermint는 훨씬 더 복잡한 세부 사항을 다루지만 본 문서의 범위와 초점이 아니므로 자세히 설명하지 않습니다.

개발자가 주의해야 할 사항

위에서 설명한 Precompiles 기반 데이터 읽기 메커니즘은 매우 완벽합니다. Solidity 개발자는 Hyper L1 상태를 읽기 위해 별도의 코드를 작성할 필요가 없지만 msg.sender 문제에 주의해야 합니다. 대부분의 이더리움 2계층과 마찬가지로 HyperLiquid는 사용자가 Hyper L1의 시스템 계약과 직접 상호작용하여 HyperEVM 체인의 거래 동작을 간접적으로 트리거할 수 있습니다. 이 경우 스마트 계약에서 msg.sender 필드를 읽으면 최초 Hyper L1에서 거래를 시작한 사용자 주소가 아닌 Hyper L1 시스템 계약 주소가 반환됩니다.

EVM과 L1의 상호 작용과 관련하여 개발자는 일련의 문제에 주의해야 합니다. 첫 번째 문제는 상호 작용의 비원자성 문제입니다. 사용자가 HyperEVM에서 앞서 언급한 이벤트 주소를 통해 간접적으로 L1에 주문을 걸었지만 L1에 충분한 자산이 없는 경우, 해당 거래는 실패할 것이지만 사용자가 이벤트 주소의 함수를 호출할 때는 오류 반환 메시지가 없습니다. 상호 작용의 비원자성 문제로 인해 사용자의 자산이 손실될 수 있습니다. 이 경우 개발자는 EVM 스마트 계약 측에서 주문 실패 상황을 수동으로 처리해야 합니다. 또한 EVM 내 스마트 계약에는 최종적으로 자금을 회수할 수 있는 함수가 있어야 하며, 사용자의 자산이 L1에서 영원히 인출될 수 없도록 해야 합니다.

다음으로, EVM에 해당하는 계약 주소는 L1에 매핑 계정이 존재해야 합니다. 사용자가 EVM에 스마트 계약을 배포한 후에는 L1에서 매핑 주소로 소량의 USDC를 전송하여 L1이 계약 주소에 계정을 생성하도록 해야 합니다. 이 부분 작업은 HyperLiquid의 기본 합의와 관련될 수 있으며, HyperLiquid 문서에 명시적으로 요구되고 있습니다.

마지막으로, 개발자는 특수한 상황, 특히 토큰 잔액 상황에 주의해야 합니다. Hyper L1에는 자산 전송을 위한 특수 주소가 존재하지만, 사용자가 해당 특수 주소로 자산을 보내면 자산이 L1에서 HyperEVM 체인으로 이동합니다. HyperLiquid 노드가 EVM 체인과 L1 체인을 동시에 실행하기 때문에, 사용자가 자산을 전송한 후에도 HyperEVM에서 블록이 오랫동안 생성되지 않을 수 있습니다. 이 경우 사용자는 EVM 체인에서 자신의 잔액을 읽을 수 없습니다.

요약하면, 이 경우 사용자의 자산이 크로스체인 브리지에 갇혀 있어 L1이나 EVM 체인에서도 조회할 수 없습니다. 개발자가 구축한 프로토콜은 이러한 특수 상황을 처리하여 사용자의 불안감을 해소해야 합니다.

종합적으로 볼 때, HyperEVM은 Hyperliquid L1 기반의 2계층과 유사하며, HyperEVM은 L1 상태를 읽는 사전 컴파일된 코드와 이벤트에 의존하여 Hyper L1과 상호 작용합니다. L1에도 사용자가 HyperEVM에서 거래를 트리거하거나 자산을 크로스체인하는 데 도움이 되는 시스템 계약이 있습니다. 그러나 일반적인 Layer1-Layer2 아키텍처와 달리, Hyperliquid는 HyperEVM에 더 높은 상호 운용성을 제공합니다.

참고 자료

Hyperliquid: The Hyperoptimized Order Book L1

hyperliquid-dex/contracts

The Not-So-Definitive guide to Hyperliquid Precompiles.

What is the difference between PBFT, Tendermint, HotStuff, and HotStuff-2?

출처
면책조항: 상기 내용은 작자의 개인적인 의견입니다. 따라서 이는 Followin의 입장과 무관하며 Followin과 관련된 어떠한 투자 제안도 구성하지 않습니다.
라이크
즐겨찾기에 추가
코멘트