4월 4일, LayerZero Labs는 a16z Crypto, Christie's Auction House, Sequoia Capital, Samsung Next, BOND, Circle Ventures 및 OpenSea Ventures의 참여로 30억 달러 평가액으로 1억 2천만 달러 규모의 시리즈 B 자금 조달을 완료했습니다. 이 자금은 아시아 태평양 지역에서 회사의 입지를 채용하고 확장하는 것을 포함한 성장 계획에 사용될 것입니다.
이 기사에서는 LayerZero의 디자인, 보안 및 신뢰 가정을 살펴보겠습니다. LayerZero는 가능한 한 적은 추가 신뢰로 블록체인 간의 연결을 활성화하는 데 중점을 둔 임의 메시지 브리징(AMB) 기술입니다.
이 문서에서는 다음 주제를 다룹니다.
LayerZero 개요
작동 방식 - 트랜잭션 수명 주기
보안 기능
신뢰 가정
개요
LayerZero는 "풀체인 솔루션"이라고 불리는 범용 데이터 메시징 프로토콜입니다. 효율적인 가스 사용과 업그레이드 불가능한 스마트 계약을 통해 블록체인 간에 가벼운 메시지를 전달하는 것을 목표로 합니다.
LayerZero의 주요 장점은 크로스체인 트랜잭션을 확인할 때 추가적인 신뢰 가정이 필요하지 않다는 것입니다. 일반적인 LayerZero 기능은 다음과 같습니다.
- 단순성 – LayerZero의 목표는 개발자를 최우선으로 생각하는 것입니다. LayerZero를 사용하여 사용자 애플리케이션을 구축하려면 전송 및 수신이라는 두 가지 기능만 구현하면 됩니다. Solidity, Rust 등으로 작성할 수 있다면 즉시 온체인 애플리케이션을 구축할 수 있습니다. 또한 시스템에 "중개자"가 없기 때문에 처리량이 높은 두 체인이 자유롭게 상호 작용할 수 있습니다.
- 경량 클라이언트 - 레이어 1에서 스마트 계약을 실행하는 데는 비용이 매우 많이 들 수 있습니다. 따라서 LayerZero는 트랜잭션 데이터의 저장 및 검색을 Oracle 및 Relayer로 내보냅니다. 이 두 오프라인 엔터티 간의 관계는 유효한 트랜잭션을 보장하여 초경량 노드 엔드포인트를 작고 비용 효율적으로 만듭니다. 또한 경량 클라이언트의 낮은 운영 비용으로 인해 새로운 체인의 신속한 통합이 가능합니다.
- 잠재력 - 이름에서 알 수 있듯이 LayerZero는 유동성 네트워크, 다중 체인 수익률 수집기, 다중 체인 대출 프로토콜 및 기타 여러 dApp에서 매우 흥미롭고 고유한 다중 체인 암호화 사용 사례를 구축하는 데 사용할 수 있는 인프라의 기본 구성 요소입니다. .
- LayerZero 스캐닝 – 이제 크로스체인 트랜잭션이 LayerZero 스캐닝을 통해 단일 데이터베이스에 번들로 포함되어 사용자와 개발자가 트랜잭션 상태 및 타이밍 정보를 쉽게 얻을 수 있습니다.
작동 방식 - 트랜잭션 수명 주기
LayerZero의 가장 기본적인 구성 요소는 지원 체인에 있는 "엔드포인트"입니다. 이러한 엔드포인트는 도메인 간 통신을 허용하는 일련의 스마트 계약으로 구현되며, 각 체인은 LayerZero 시스템 내에 자체 "라이브러리"를 갖습니다. 각 엔드포인트에는 엔드포인트 도메인에 기본으로 제공되는 메시징 라이브러리와 엔드포인트가 올바른 라이브러리 버전을 사용하도록 보장하는 프록시가 장착되어 있습니다. 일단 배포되면 엔드포인트는 닫을 수 없는 스마트 계약처럼 작동하여 불변의 메시지 흐름을 허용합니다.
거기에서 LayerZero는 두 개의 오프체인 엔터티인 oracle 과 Relayer를 사용하여 서로 다른 도메인에 있는 엔드포인트 간에 메시지를 전달합니다. 이 설정에서는 도메인 A(예: Chainlink)의 오라클이 블록 헤더를 도메인 B로 전달하고, 별도의 중계자가 도메인 A의 트랜잭션 증명을 도메인 B로 전달합니다. 두 개가 일치하고 블록 헤더에 의해 증명이 확인되면 크로스체인 메시지가 대상 주소로 전송됩니다.
오라클과 릴레이의 관계를 요약하면 다음과 같습니다.
- LayerZero의 오라클이 하는 일은 소스 도메인에서 타겟 도메인으로 공통 데이터(즉, 블록 헤더)를 전달하는 것입니다. 이는 타사 서비스이며 ChainLink를 통해 실행될 것으로 예상됩니다.
- 중계자의 임무는 지정된 거래의 증거를 얻는 것입니다. LayerZero가 설정한 매개변수 내에서는 누구나 중계자가 될 수 있으며 이는 시스템의 분산화를 보장하는 데 도움이 됩니다.
오라클과 리피터의 유일한 중요한 조건은 독립적으로 작동해야 하고 공모해서는 안 된다는 것입니다. 공모하지 않는다면 LayerZero는 안전합니다. 그러나 오라클과 릴레이가 어떤 방식으로든 공모하면 LayerZero의 보안 구조가 손상될 수 있습니다.
LayerZero에서 트랜잭션/메시지는 단일 호출로 소스 가스만 제공하면 됩니다. 사용자 애플리케이션(UA)이 트랜잭션을 시작할 때(즉, 체인에서 일부 작업을 수행할 때) 트랜잭션이 시작됩니다. 그런 다음 이 트랜잭션은 LayerZero 엔드포인트의 도움을 받아 오라클과 릴레이어를 통해 여러 부분(증명 및 블록 헤더)으로 분류됩니다. 오라클과 중계자가 소스 체인에서 각각의 메시지를 보내고 LayerZero 엔드포인트가 메시지의 정확성을 확인하면 메시지가 변환되어 대상 체인에서 실행됩니다.
LayerZero의 일반적인 트랜잭션은 다음과 같이 진행됩니다.
프로세스를 단계별로 분석해 보겠습니다.
- 1단계: Stargate와 같은 사용자 애플리케이션은 LayerZero의 참조 릴레이를 사용하고 일련의 작업을 트랜잭션으로 수행합니다. 사용자 애플리케이션은 트랜잭션 식별자, A에서 B로 전송된 데이터(페이로드) 또는 체인 B의 사용자 애플리케이션 스마트 계약을 가리키는 식별자와 같은 트랜잭션 정보를 포함하여 LayerZero의 커뮤니케이터 에 요청을 보냅니다.
- 2단계: 커뮤니케이터는 이 데이터를 LayerZero 패킷 형태로 검증자 에게 보냅니다.
- 3단계: 검증인은 거래 식별자와 체인 B의 스마트 계약 식별자를 네트워크 로 보냅니다. 결과적으로 네트워크는 소스 체인 A의 블록 헤더를 대상 체인 B로 보내야 한다는 알림을 받습니다.
1~3단계를 요약하면 사용자 애플리케이션은 데이터를 패키징하여 체인 A에 위치한 LayerZero 엔드포인트로 전송합니다.
- 4단계: 검증인은 이 정보를 중계자 에게 전달합니다. 결과적으로 중계자는 거래 증명을 미리 가져와서 체인 B로 보내라는 알림을 받습니다.
- 5단계: 네트워크는 체인 B의 스마트 계약 식별자를 트랜잭션 블록의 블록 ID와 함께 오라클에 보냅니다. 결과적으로 오라클은 체인 A에 있는 현재 블록의 블록 헤더를 가져와서 체인 B로 보내라는 알림을 받습니다.
4-5단계를 요약하면 체인 A의 LayerZero 엔드포인트는 트랜잭션 정보를 LayerZero의 참조 릴레이로 보내고 트랜잭션 블록의 블록 ID는 오라클로 전송됩니다.
- 6단계: 오라클은 체인 A에서 블록 헤더를 얻습니다.
- 7단계: 중계기는 체인 A로부터 거래 증명을 받아 오프체인에 저장합니다.
6~7단계를 요약하면 릴레이와 오라클은 각각 체인 A로부터 거래 증명과 블록 헤더를 받습니다.
- 8단계: 오라클은 일정 횟수의 블록 확인을 기다린 후 블록이 체인 A에 성공적으로 제출되었는지 확인합니다. 확인 후 오라클은 블록 헤더를 체인 B의 네트워크로 보냅니다.
- 9단계: 네트워크는 블록 해시를 검증자에게 보냅니다.
- 10단계: 검증자는 블록 해시를 중계자에게 전달합니다.
- 11단계: 릴레이는 현재 블록과 일치하는 모든 데이터 구조의 목록을 보냅니다.
- 12단계: 유효성 검사기는 네트워크에 저장된 거래 증명과 블록 헤더를 확인하여 거래가 유효하고 제출되었는지 확인합니다. 블록 헤더와 거래 증명이 일치하면 거래 정보가 Packet 형태로 커뮤니케이터에게 전송됩니다.
- 13단계: 커뮤니케이터는 체인 B의 사용자 애플리케이션에 정보(패킷)를 보냅니다.
8-13단계를 요약하면, 체인 B의 LayerZero 엔드포인트는 블록 헤더를 사용하여 체인 A의 사용자 애플리케이션이 시작한 정보를 얻고 이를 체인 B의 사용자 애플리케이션으로 보냅니다.
이러한 방식으로 사용자 애플리케이션은 LayerZero를 사용하여 체인 A에서 체인 B로 트랜잭션 정보(예: 토큰)를 보낼 수 있습니다.
안전
LayerZero는 다음과 같은 보안 기능을 제공합니다.
- 효율적인 전달 – 오라클과 릴레이어의 독립성은 LayerZero 보안의 기초입니다. 두 독립 개체가 제공하는 블록 헤더와 거래 증명이 일치하면 거래 전달이 유효합니다. 그렇지 않으면 아무런 효과가 없습니다. 다른 측면에 대한 사전 지식 없이 거래 증명과 블록 헤더 일치의 통계적 확률이 매우 낮기 때문에 이는 매우 안전한 메커니즘입니다.
- 높은 공격 비용 - LayerZero의 최악의 시나리오는 오라클과 릴레이어가 동일한 엔터티에 의해 실행되고 악의적으로 공모할 수 있다는 것입니다. 이는 오라클과 릴레이어가 제공하는 블록 헤더와 거래 증명이 유효하지 않지만 시스템을 지배하는 악의적인 공모로 인해 여전히 일치한다는 것을 의미합니다. 그러나 Oracle 1과 Relayer A가 악의적으로 공모하더라도 Oracle 1을 oracle로 사용하고 Relayer A를 메시지로 사용하는 애플리케이션만 영향을 받기 때문에 이는 격리된 위험입니다. 다른 모든 오라클과 릴레이는 계속 해서 정상적으로 작동합니다 . 결과적으로 전체 자금 시스템이 아닌 특정 자금 풀만 공격할 수 있으므로 보상은 거의 없이 공격 비용이 매우 높아집니다. 그러나 이것은 작은 위험입니다. 왜냐하면 사용자 애플리케이션에 특정 위험 예방 메커니즘이 있고 오라클이나 릴레이의 특정 구성을 신뢰하지 않는 경우 공모 가능성을 제거하기 위해 그 일부를 자체적으로 실행하도록 선택할 수 있기 때문입니다.
- 간단하고 효과적인 디자인 - LayerZero는 토큰, 잠금 및 발행 메커니즘을 통해 브리징 메커니즘에 추가 기능을 추가하지 않으므로 LayerZero의 보안은 엔드포인트가 있는 체인까지 추적 가능합니다.
- 위험 다양화 - LayerZero를 사용하면 사용자 애플리케이션이 서로 다른 오라클/릴레이 조합을 선택하여 뇌물 수수 또는 악의적인 공격을 통해 두 개의 독립적인 개체를 공모하려는 위험을 분산시킬 수 있습니다.
- 위험 차폐 - 사용자는 자체 릴레이를 실행할 수 있습니다. 즉, 사용자가 LayerZero를 신뢰하려면 자체 릴레이를 실행하고 Oracle이 이들로부터 독립되도록 신뢰하기만 하면 됩니다.
- Pre-Crime – 중계자가 해킹 사고가 발생하기 전에 차단할 수 있는 기능입니다. 메시지를 전달하기 전에 릴레이는 악의적인 작업(각 사용자 애플리케이션에서 정의한)이 발생하지 않았는지 확인하기 위해 대상 블록체인에서 로컬로 트랜잭션을 포크하고 실행할 수 있습니다. 이는 dApp 감사 및 버그 바운티를 위한 추가 보안 계층을 제공합니다.
- 감사 – LayerZero는 Quantstamp, Zokyo, Zellic 및 Trail of Bits를 포함하여 20개 이상의 공식 감사를 받았습니다. 또한 LayerZero는 현재 ImmuneFi를 통해 1,500만 달러의 버그 현상금을 호스팅하고 있으며 화이트 해커에게 보상하는 경향을 보여 왔습니다.
신뢰 가정
LayerZero는 다음과 같은 신뢰 가정을 합니다.
- 점진적 분산화 – LayerZero 네트워크의 릴레이 수가 증가할 것입니다. 이는 메시징 시스템을 점진적으로 분산화하기 위한 가장 중요한 보안 메커니즘입니다.
- 릴레이어 및 오라클에 대한 의존 – LayerZero 사용자는 릴레이 및 오라클의 보안을 사용하여 체인 전체에 메시지를 전달합니다. 자금 및 데이터 자체와 관련된 체인에 대해서는 아무것도 없습니다.
- 운영 위험 – LayerZero는 해당 기능을 제3자(오라클 및 중계자)에 의존하므로 LayerZero의 통제 범위를 넘어서는 운영 위험이 증가합니다.
- 체인 종속 보안 – LayerZero는 크로스 체인 트랜잭션을 촉진하기 위해 중개자를 추가하지 않지만 올바르게 작동하기 위해 엔드포인트가 위치한 기본 체인에 의존합니다. 체인이 51% 손상된 경우 LayerZero가 이러한 이벤트를 어떻게 처리할지는 확실하지 않습니다.