[Cross-Layer Series] An Introduction to Cross Layer Transfer

CH Han
Decipher Media |디사이퍼 미디어
15 min readFeb 13, 2022

Author
엄정용, 한충현 of Decipher
Seoul Nat’l Univ. Blockchain Academy Decipher(@decipher-media)
Reviewed By 정재환

Note : 이 글은 Praveen Surendran의An Introduction to Cross Layer Transfer의 번역본입니다. 오역 발견시 피드백 주시면 반영하겠습니다.

An Introduction to Cross Layer Transfer

Fast Withdrawals In Optimistic Rollups — Part 1

Fast Withdrawals In Optimistic Rollups — Part 2

Standardising Cross-Domain Asset Transfer

이더리움 Layer 2 생태계가 빠르게 성장하고 있어서 일반 대중들이 관련 최신 정보를 세부적으로 모두 파악하는 것은 쉽지 않은 일입니다. 그럼에도 불구하고 블록체인 생태계에 관심을 가지고 있는 사용자라면 Layer 2 솔루션에 대한 전체적인 조감도가 있어야 한다고 믿습니다. 각 솔루션의 차별점을 이해하고 미래 트렌드를 파악할 수 있어야 할 것입니다. 본 아티클의 목표는 독자들이 다양한 Layer 2 프로젝트의 컨셉과 차별점에 대해 이해하도록 하는 것입니다.

  • Layer 1이 모든 것을 해결할 수 없습니다.

Layer 2 프로젝트는 Layer 1 네트워크가 가진 문제점을 해결하고자 등장했습니다. Layer 1의 대표인 이더리움은 Defi가 급속도로 성장함에 따라 확장성 이슈가 대두되었습니다. Defi 서비스들이 많은 트랜잭션을 발생시켜 이더리움 네트워크가 과부화되는 문제를 해결하기 위해 이더리움 가스비가 급등하기도 했습니다. Defi의 부상이 이더리움과 여타 Layer 1 프로젝트의 성장을 가져왔지만, Defi가 아닌 DApp들은 높아진 사용료를 감당하기 어렵게 되었습니다. Layer 1의 대표 블록체인들로는 비트코인, 라이트코인, 이더리움 등이 있습니다.

이더리움은 새로운 비즈니스 모델이 등장하는 기회를 열었습니다. 사용자들은 이제 DApp의 이점을 활용하여 디지털 데이터와 자산에 대한 소유권을 갖고 관리할 수 있습니다. DApp과 Defi 프로젝트들이 빠르게 성장하며 이더리움 생태계로 많은 자산과 사용자가 유입되었지만, 가장 먼저 극복해야 할 장애물은 사용자 경험에 영향을 미치지 않고 엄청난 양의 트랜잭션을 처리할 수 있는지 여부입니다. ‘블록체인 트릴레마’로 불리는 이슈로, 확장성과 보안성 그리고 탈중앙성을 동시에 충족시키는 것은 매우 어렵습니다.

블록 생성과 합의에 참여하는 사람들이 많아지면 네트워크의 보안성과 탈중앙성 정도는 향상됩니다. 그러나 두 요소가 고도화되면 처리 속도는 느려지면서 확장성이 줄어들게 됩니다. 반대로 속도를 높이기 위해 참여 인원수를 줄인다면 보안성과 탈중앙성이 약화되게 되어, 블록체인 네트워크는 트릴레마 요소의 trade-off를 감안하여 네트워크 구조를 구축해야 합니다.

블록체인 커뮤니티가 이러한 문제를 처음 인지한 것은 2017년 경에 주목받았던 크립토키티 프로젝트 때문이었습니다. 플레이어들은 이더리움의 블록체인 네트워크에서 “Crypto-Pet”을 사고 번식시킬 수 있었습니다. Etherscan에 따르면 크립토키티 출시 이후 트랜잭션이 몰리면서 이더리움에서 pending 중인 트랜잭션의 수가 6배 가량 증가했습니다. 이더리움 기반의 프로젝트가 주목받으면서 확장성 부족 이슈가 대두된 계기였습니다. 아래 그림은 크리토키티가 주목받았던 시기인 2017년 7월 30일부터 12월 4일까지의 pending 트랜잭션 큐의 숫자를 기록한 것입니다.

(출처 : https://medium.com/onther-tech/an-introduction-to-cross-layer-transfer-af7e7183c0b9, 그림 1)

최근의 또 다른 예시는 2020년부터 시작된 Defi 열풍입니다. 이더리움 네트워크에서 작동하는 Defi 프로젝트들이 주목받으면서 이더리움 트랜잭션 수가 급증했고, 이에 따라 네트워크 속도는 줄어들고 수수료는 증가하는 문제가 발생한 것입니다. 아래 그림은 Defi이 열풍을 이끌었던 시기 가스비의 변화 추이를 나타내고 있습니다.

(출처 : https://medium.com/onther-tech/an-introduction-to-cross-layer-transfer-af7e7183c0b9, 그림 2)

이에 따라 블록체인 커뮤니티는 이더리움의 다양한 확장성 솔루션에 대한 연구와 테스트를 진행해왔습니다. 가장 기본적인 확장성 솔루션은 기본 Layer의 프로토콜을 변경하여 확장성을 향상시키는 것입니다. 대표적으로 블록 크기를 늘려 블록당 처리되는 트랜잭션 수를 늘리는 방법이 있지만, 이는 채굴 비용을 증가시켜 중앙 집중화로 이어질 수 있다는 단점이 있습니다. 다시 한번 블록체인 트릴레마가 문제가 되는 지점입니다.

뿐만 아니라 다른 방식으로 기본 업데이트를 진행하여 확장성을 개선하는 방법도 제안되기도 했습니다. 이더리움 2.0은 이더리움 블록체인의 확장성과 보안성을 향상시켜 지속가능한 네트워크를 만들기 위한 주요 업데이트를 포함하고 있었습니다.

  1. 합의 프로토콜로 PoS를 채택
  2. 샤딩(플라즈마, 라이덴 네트워크 등의 Off-Chain 솔루션과 달리 메인 체인 자체의 프로토콜을 변경시키는 On-Chain 솔루션입니다.)
  • Layer 2는 급속도로 활성화되고 있습니다.

Layer 2 프로젝트들은 이더리움의 높은 가스비 문제를 해결할 수 있는 방법으로 주목받고 있습니다. Layer 2 확장성과 효율성을 향상시키기 위해 메인 블록체인 프로토콜에서 작동하는 네트워크와 기술을 나타냅니다. 이러한 확장성 솔루션을 통해 블록체인 프로토콜의 트랜잭션 부담을 다른 시스템 아키텍처로 이동시킵니다. 이동된 시스템에서 트랜잭션을 처리하고 결과를 메인 블록체인에 다시 보고합니다.

대표적인 Layer 2 솔루션은 다음과 같습니다.

  1. Rollup
  2. Plasma
  3. Validium
  4. State Channels
  5. Sidechains (사이드 체인을 Layer 2 솔루션으로 분류하는 것은 여전히 논쟁 중입니다. 다만 이더리움 공식 문서에 사이드 체인이 Layer 2에 포함되어 있기 때문에 본 아티클에서는 사이드 체인을 분류했습니다.)

가장 먼저, Rollup에는 다음 두 가지 유형의 Rollup이 있습니다. Rollup이란 블록체인 외부에 데이터를 처리하는 별도의 Layer를 두고 연산을 분담하는 기술입니다.

첫째, Optimistic Rollup은 기본적으로 트랜잭션이 유효하다고 가정하고 이슈가 발생하면 ‘사기 증명’을 통해 계산만 수행합니다. 둘째, ZK(Zero-Knowledge) Rollup은 계산을 오프체인으로 수행하고 ZK-SNARK를 통한 유효성 증명을 체인에 제출합니다. 이때 누구나 증명여부를 확인할 수 있습니다.

아래 그림은 주요 Layer 2 프로젝트 분류입니다.

(출처 : https://twitter.com/deversifi/status/1376537192621862912)

L2beat(https://l2beat.com/)는 Layer 2 솔루션에 예치된 자산의 총 가치인 TVL 관련 정보를 제공하는 사이트입니다. TVL 수치를 파악하는 것만으로도 Layer 2 생태계에서 주목받는 프로젝트를 확인할 수 있습니다. 아래 그림은 L2beat에서 제공하는 Layer 2 프로젝트의 TVL입니다.

(출처 : https://l2beat.com/, 2022년 2월 12일 기준)
  • (비유) Seoul is Expensive, So is Ethereum

ETH2가 시작되더라도 이더리움 2.0 Layer 1 네트워크만으로 트랜잭션 처리량과 속도를 수용할 수 없습니다. 따라서, Defi와 Dapp 산업의 증가하는 수요를 총족하기 위한 솔루션인 Layer 2는 계속 주목받을 것으로 기대됩니다.

Layer 2라는 주제를 향한 전망은 긍정적이지만, 모든 문제를 한 번에 해결하는 단일 Layer 2 솔루션이 있는지, 사용자와 Dapp 및 서비스들이 하나의 솔루션에만 의존하는지 등에 대한 질문은 이어집니다. 또한, A 플랫폼에서 실행되는 앱이 B 플랫폼과 소통할 수 있는지 등도 Layer 2 프로젝트의 성장에 필요한 핵심 질문입니다.

다음은 Layer 2 프로젝트를 이해하기 위한 비유입니다.

서울은 세계에서 가장 바쁘고 인구밀도가 높은 도시 중 하나입니다. 따라서 새로운 사람들이 서울로 모이는 것은 쉬운 일이 아니며, 서울에 비해 기회가 더 많은 신도시로 이동할 가능성이 높다고 가정하는 것이 합리적입니다. 이때 이더리움 플랫폼은 현재 수많은 Dapp과 사용자가 있는 ‘서울’이라고 생각할 수 있습니다. Layer 1에서 점점 더 많은 트랜잭션이 발생할수록 네트워크의 속도가 느려지고 가스 가격이 상승합니다. 그러면 사용자와 DApp은 더 저렴한 요금과 트랜잭션의 빠른 처리를 위해 다른 옵션을 찾을 것입니다. 그리고 그 옵션들은 Rollup, 사이드체인 등의 다양한 Layer 2 솔루션입니다.

Layer 2 생태계는 빠르게 성장하고 있으며, 그 중 확실한 솔루션을 하나로 선택하는 것은 쉽지 않습니다. 실제 각 Layer 2 솔루션은 더 많은 체인과 자산을 채택하려고 시도하고 있으며, 플랫폼에 새로운 프로젝트를 유치하기 위해 노력합니다. 그러나 서로 다른 Layer 2 솔루션을 사용하는 사용자와 Dapp이 어떻게 상호 소통할 것인지, 소통을 할 때 정의된 표준이 있는지 등에 대한 합의는 아직 부족한 상황입니다.

만약 위의 비유에서, 서울과 다른 도시들 사이에 적절한 커뮤니케이션 채널이 없다면 경제가 번성할 수 없습니다. 이처럼 이더리움을 더 많이 채택되고 성장하기 위해서는 Layer 2 솔루션 간의 자산 전송이 원활해져야 합니다. 그러나 서로 다른 Layer 2 솔루션들은 서로 다른 규칙과 프로토콜을 사용하고 있기 때문에, 상호 소통이 활발하도록 규칙을 결정하는 브리지 및 기술을 구현하는 과정은 Layer 2 솔루션이 진화하는 환경이 될 것입니다.

Tokamak 네트워크에서는 현재 사용자가 다음과 같은 기능을 수행할 수 있는 프로토콜을 개발하고 있습니다.

  1. Optimistic Rollup 솔루션에서 L2로부터 L1으로 빠른 인출
  2. L2 솔루션 간의 빠른 Cross-Layer 전송
  • L1 <-> L2 통신 개요

L1과 L2 사이의 통신을 이해하는 것은 이더리움 내에서 컨트랙트 간 통신을 이해하는 것만큼 간단합니다.

가장 먼저 스마트 컨트랙트 사이 상호작용을 이해하기 위해 이더리움 내에 있는 두 컨트랙트가 상호작용하는 방법에 대한 코드 예제를 살펴보겠습니다.

여기서 MyOtherContract.doTheThingMyContract.doSomething에 대한 call을 호출합니다. 호출은 정송 대상 주소, 일부 호출 데이터 등을 포함하는 주요 입력 매개변수로 정의됩니다.

다음은 L1과 L2 사이의 계약을 호출하는 것입니다. 이는 L2 Rollup과 이더리움 사이에 통신이 이루어지는 과정입니다. L1과 L2 사이에 통신을 가능하게 하는 것은 “messenger Contract”로 알려진 스마트 컨트랙트입니다. L1과 L2 모두 Low-level 통신 세부사항을 축약하는 메신저 컨트랙트를 가지고 있는데, 토큰 브리지는 이러한 메신저 컨트랙트를 통해 Layer 간 토큰 전송을 하고 있습니다. 예를 들어, OVM_L1CrossDomainMessengerOVM_L2CrossDomainMessenger 계약이 네트워크에 사전 배포됩니다. 또한 메신저 컨트랙트의 sendMessage 함수는 다른 네트워크에서 계약을 호출하는 데 사용됩니다

이제 L1의 컨트랙트가 sendMessage 함수를 사용하여 L2의 컨트랙트와 통신하는 코드 샘플을 살펴보겠습니다.

// Pretend this is on L2
contract MyOptimisticContract {
doSomething() public {
// ... some sort of code goes here
}
}
// And pretend this is on L1
contract MyOtherContract {
function doTheThing(address myOptimisticContractAddress, uint256 myFunctionParam) public {ovmL1CrossDomainMessenger.sendMessage(
myOptimisticContractAddress,
abi.encodeWithSignature(
"doSomething(uint256)",myFunctionParam
),
1000000 // use whatever gas limit you want
)
}

Layer 간의 계약 호출은 비동기식(asynchronous)입니다. 즉, 호출의 결과를 알고 싶다면 다른 컨트랙트가 메시지를 다시 보낼 때까지 기다려야 한다는 것입니다. 또한, Optimistic Rollup에서는 Layer 2에서 Layer 1으로 보낸 메시지를 최소 1주일동안 relay할 수 없는 챌린지 기간이 있습니다. 이 기간은 Optimistic Rollup에서 인출 기간이 긴 이유이기도 하지만, Rollup의 무결성을 유지하는 데에 필수적입니다.

  • 토큰 브리지

브리지 서비스들은 Layer 1 블록체인에서 자산을 보유하는 동시에 그와 동일한 가치를 가진 자산을 제공해야 하는 책임이 있습니다. 브리지 서비스들은 누가 자금에 대한 커스터디를 가지고 있는지와 자산을 해제하기 위해 어떤 조건을 충족해야 하는지를 정의합니다.

(출처 : https://medium.com/onther-tech/an-introduction-to-cross-layer-transfer-af7e7183c0b9, 그림 5)

Optimism에는 사용자가 ERC-20 토큰을 입금(L1에서 L2로) 및 출금(L2에서 L1으로)할 수 있는 L1 Standard Bridge와 L2 Standard Bridge가 있습니다.

토큰 브리지는 L1과 L2 사이 통신을 위해 매신저 컨트랙트를 사용합니다. Optimism에서 자체 맞춤형 브리지를 개발한 프로젝트인 optimism-dai-bridge도 있습니다. 또한, 최근에는 L2 커뮤니티들이 도메인 간 ERC-20 토큰 전송을 위해 표준 인터페이스를 만들기 위해 노력하고 있습니다.

Hop Protocol은 Layer 간 전송과 관련된 또 다른 이니셔티브입니다. Hop을 사용하면 Layer 2, Side chain 및 Layer 1 이더리움 간에 직접 토큰을 빠르고 쉽게 전송할 수 있습니다.

Tokamak 네트워크에서는 곧 Layer 2 솔루션으로 Optimistic Rollup 솔루션을 출시할 예정입니다. Optimistic Rollup에 대한 비판의 대다수는 인출 지연입니다. 시리즈의 다음 글에서는 Optimistic Rollup의 인출 지연을 해결하는 방법에 대해서 다룰 예정입니다.

References

  1. https://www.gemini.com/cryptopedia/blockchain-layer-2-network-layer-1-network#section-layer-2-scaling-solutions
  2. https://community.optimism.io/docs/developers/bridge/messaging.html
  3. http://www.cryptonyc.org/Living-On-Maker-Island/
  4. https://forum.makerdao.com/t/a-multichain-strategy-and-roadmap-for-maker/8380
  5. Layer 2 Won’t Save Ethereum. What no one’s talking about: the… | by Jimmy Chang | Coinmonks | Apr, 2021 | Medium
  6. https://www.reddit.com/r/ethereum/comments/lzqhm9/how_does_crossproject_composability_work_for_the/

7. https://medium.com/onther-tech/an-introduction-to-cross-layer-transfer-af7e7183c0b9

--

--