레이어 1 & 레이어 2: 알아야 할 모든 것 - 페르난도 산체스, 2022년 8월 5일

블록체인 아키텍처를 논의할 때 '레이어 1’과 '레이어 2’라는 용어가 자주 언급된다. 이는 두 가지 목적을 제공하는 중요한 개념이다. 즉, 블록체인 네트워크가 구축되는 방식을 설명하고, 그리고 블록체인 네트워크의 모습을 이해하기 쉽게 시각적으로 표현한다.

이 개념들을 자세히 설명해본다.

레이어 1: 정의

레이어가 다른 웨딩 케이크와 그 위에 한 쌍의 조각상이 있다고 상상해보자. 그 아름다운 케이크는 단단한 스탠드, 베이스 위에 놓여 있다. 모든 의도와 목적을 위해 견고하고 단단한 케이크 스탠드는 케이크 인프라를 지원하는 첫 번째 계층(레이어 1)이다. 이것이 어떤 역할을 할지 알 수 있다. 블록체인에서 레이어 1은 레이어 2 솔루션의 기반이 되는 기본 네트워크이다.

레이어 1: 기능

이 시각적 도식을 염두에 두고 Cardano는 자체적으로 3개의 독립적인 계층을 포함하는 레이어 1(기본 네트워크)이다.

  • 네트워크 계층
  • 합의 계층
  • 원장 계층

네트워크 계층

이 계층은 Cardano 네트워크의 모든 분산 노드 간의 연결을 유지하고, 블록 생성 노드에서 생성된 새 블록을 네트워크에서 가져오고, 새로 생성된 트랜잭션을 블록으로 만들고, 노드 간에 블록을 전송한다.

합의 계층

이 계층은 두 가지 기본 기능을 수행한다.

  • Ouroboros 합의 프로토콜 실행. 이 계층은 블록 채택, 경쟁 체인(있는 경우) 중에서 선택, 자체 블록 생성 시기 결정과 같은 결정을 내린다. 그리고
  • 합의 계층에서 결정을 내리는 데 필요한 모든 상태를 유지한다.

원장 계층

이 계층은 다음을 명시한다.

  • 원장의 상태는 어떻게 생겼는지, 그리고
  • 각 새 블록에 대해 원장을 업데이트하는 방법.

원장 계층은 EUTxO(Extended UTxO) 회계 모델을 사용하여 공식 원장 규칙에서 파생된 대로 연속적인 원장 상태 간의 전환을 지정하는 순수 함수로만 구성된다. 상태 전환은 Cardano 블록 내에 포함된 일련의 트랜잭션과 에포크 경계 전환과 같은 주요 이벤트에 의해 구동된다.

합의 계층은 합의 프로토콜을 실행하는 데 필요한 일부 헤더 필드를 제외하고는 원장 상태의 정확한 특성이나 블록의 내용을 알 필요가 없다.

전체적으로 이 세 개의 계층들이 레이어 1 솔루션인 Cardano를 형성한다.

레이어 1: 확장성

웨딩 케이크를 다시 보자. 모든 계층이 서로의 위에 쌓여 있어서 크죠? 하지만 베이스인 케이크 스탠드를 보자. 첫 번째 레이어는 특정 면적을 가지며 더 클 수 없다. 마찬가지로 그 위에 있는 계층을 지탱할 수 있을 만큼 충분히 커야 한다. 그 위에 놓인 물건은 특정 크기만 될 수 있으며 이것이 바로 웨딩 케이크가 여러 층으로 되어 있는 이유이다. 모든 층(계층) 은 베이스 위에 무언가를 추가한다. 새로운 채우기, 프로스팅, 장식 등. 즉, 모든 계층은 기본 계층을 확장한다.

분산형 공용 네트워크도 비슷한 문제에 직면해 있다. 케이크 스탠드가 제한된 양의 조각만 들어갈 수 있는 것처럼 베이스(레이어 1)는 일정량의 트랜잭션만 처리할 수 있다. 스탠드 케이크보다 더 많은 조각을 추가하려고 하면 가장자리에서 떨어지기 시작하고, 이런 혼란이 누군가의 중요한 날을 망칠 것이다. 마찬가지로 레이어 1 네트워크의 노드는 적체가 발생하기 전까지의 트랜잭션만 처리할 수 있다. 사용자 기반이 성장함에 따라 트랜잭션을 처리하기 위해 더 많은 노드가 필요하다. 이 문제를 해결하려면 네트워크를 확장해야 한다. 그렇지 않으면 트랜잭션이 가장자리에서 떨어지기 시작한다.

레이어 1 네트워크를 확장하는 방법이 있다. 예를 들어, 블록이 더 많은 트랜잭션 데이터를 전달하도록 블록 크기를 늘린다. 블록 크기는 최근 8KB에서 72KB로 증가했다(12.5% ​​증가). 이는 Cardano가 2022년에 확장할 방법 중 하나이다.

웨딩 케이크 예시로 돌아가서 계층을 추가하면 케이크가 더 커질 뿐만 아니라 매우 유용한 기능도 도입된다. 모든 계층을 베이스와 다르게 만드는 기능이다. 첫 번째 레이어와 독립적으로, 다양한 '손님’과 다양한 선호도를 충족시키기 위해 다양한 맛, 속, 디자인 등을 추가할 수 있다. 블록체인에서 새 레이어(레이어 2)를 추가하면 레이어 1이 확장될 수 있을 뿐만 아니라 트랜잭션 및 프로세스가 메인 체인(레이어 1)과 독립적으로 발생할 수 있다.

Cardano의 레이어 1 확장 솔루션

Cardano는 이제 확장 및 최적화에 관한 바쇼(Basho) 개발 단계에 들어섰다. 현재 네트워크가 수요를 매우 효과적으로 관리하고 있는 반면, 탈중앙화 애플리케이션(DApp) 생태계는 빠르게 성장하고 있으며 시스템에 대한 수요는 계속해서 증가할 것이다. 이를 해결하기 위해 처음에는 수십만, 그 다음에는 수백만 명의 신규 사용자를 수용할 수 있는 여러 확장 방법들(레이어 1 및 레이어 2 솔루션 포함)이 Cardano에 배치되고 있다.

블록 크기 증가

블록이 클수록 더 많은 거래를 처리할 수 있다. Cardano에서 발행된 첫 번째 블록의 크기는 665바이트(0.665KB)였다. 오늘날 블록의 크기는 72KB이다. 10,000% 이상 증가한 것이다! 지속적인 시스템 모니터링 및 전반적인 네트워크 상태를 기반으로 시간이 지남에 따라 추가 증가가 적용될 것이다.

파이프라이닝

유효성 검사 및 전파를 통합해 블록 전파 시간을 개선한다. 목표는 블록 간의 ‘데드 타임’(블록 전파 오버헤드)을 줄임으로써 5초 이내에 최소 95%의 피어 노드에 블록이 전파되는 것이다. 이는 블록 크기 증가/Plutus 매개변수 한계를 늘리는 것과 같은 보다 공격적인 확장 변경을 수행할 수 있는 헤드룸(headroom)을 제공한다.

입력 보증자(Input Endorsers)

더 나아가 입력 보증자는 트랜잭션을 사전 구성된 블록으로 분리할 수 있도록 하여 블록 전파 시간과 처리량을 향상시킨다. 이를 통해 블록 전파 시간의 일관성이 향상되고 트랜잭션 속도가 향상된다.

Plutus용 메모리/CPU 매개변수

체인 전체에서 메모리 사용이 더 효율적이다. 특히 UTXO(Unspent Transaction Output) 처리, 지분 분배, 실시간 지분 분배 및 풀, 해시 표현의 메모리가 개선된다.

Plutus 스크립트 개선 사항

다음을 포함하여 스마트 계약 최적화를 통해 강력한 EUTxO 모델을 더욱 효과적으로 사용한다.

  • 참조 입력(CIP-0031) – Plutus 스크립트는 트랜잭션 입력을 사용하지 않고도 검사할 수 있다. 이는 단순히 입력이 보유한 정보를 검사하기 위해 UTXO를 생성할 필요가 없음을 의미한다.
  • Plutus Datums(CIP-0032) – 데이텀은 데이텀 해시 대신 출력에 직접 첨부할 수 있다. 이는 사용자가 주어진 해시와 일치하는 데이텀을 제공하지 않고 실제 데이텀을 볼 수 있으므로 데이텀 사용 방법을 단순화한다.
  • 스크립트 공유(CIP-0033) – Plutus 스크립트 참조는 트랜잭션 출력과 연결될 수 있다. 즉, 후속 재사용을 위해 온체인에 기록될 수 있다. 트랜잭션마다 스크립트 사본을 제공할 필요가 없으므로 개발자의 마찰이 크게 줄어든다. 여러 트랜잭션에서 스크립트를 재사용하면 트랜잭션 크기가 크게 줄어들어 처리량이 향상되고 스크립트 실행 비용이 줄어든다.

노드 향상

노드에 대한 개선은 에포크 전체에 걸쳐 지분 및 보상 계산을 균등하게 분배하는 데 도움이 되므로 블록 크기 증가를 위한 더 큰 헤드룸을 제공한다. 또한 메모리 사용이 이제 더 효율적이다. 메모리 압축은 RSS 공간을 줄이고 메모리 공유는 인스턴스화할 데이터가 덜 필요함을 의미한다. 2022년 3월부터 노드 버전 1.34.1은 에포크 경계를 포함하여 중요한 지점에서 최대 로드를 줄인다.

온디스크 스토리지

프로토콜 상태의 일부를 디스크에 저장함으로써 노드는 메모리를 덜 사용하게 한다. 즉, RAM이 제한된 시스템이 충분한 저장 공간이 있는 경우 노드를 실행할 수 있으며, 메모리는 확장성에 병목 현상을 일으키지 않는다. 이를 통해 블록체인 상태(blockchain state)에 상당한 성장이 가능해질 것이다.

참고: 블록체인 트릴레마

블록체인과 같은 분산 시스템의 확장성은 복잡한 문제이다.

‘적절한’ 블록체인 시스템에는 확장성과 보안과 탈중앙화라는 세 가지 속성이 있어야 한다는 일반적인 합의가 있다. 그러나 마찬가지로 널리 퍼진 믿음은 탈중앙화 시스템이 이러한 속성 중 두 가지만 제공할 수 있고 세 번째는 희생해야 한다는 것이 소위 트릴레마이다. 이더리움 창시자 비탈릭 부테린(Vitalik Buterin)이 처음 제안한 트릴레마는 개발자가 블록체인 네트워크를 설계할 때 항상 타협 또는 절충안을 받아들여야 한다고 제안한다. 이 절충은 다른 두 속성이 가능하려면 하나의 속성이 '악화’되어야 함을 의미한다.

예를 들어 네트워크에 노드가 많을수록 분산화되지만 보안을 유지하려면 더 많은 노드를 신뢰할 수 있어야 한다. 보안을 유지하려면 잠재적인 공격 비용을 엄청나게 높게 만드는 수수료를 도입해야 한다. 그러나 네트워크는 참여를 장려해야 하므로 노드당 비용이 상대적으로 낮아야 한다. 또한 불변성의 특성은 블록체인이 존재하는 한 블록체인 데이터가 추가되지만 삭제되지 않는다는 것을 의미한다. 즉, 블록체인은 계속 성장할 것이다. 네트워크가 클수록 성능을 유지하는 데 더 많은 계산 리소스가 필요하다. 더 나은 성능에는 더 나은 하드웨어가 필요하다. 즉, 투자를 가치 있게 만들기 위해서는 보상이 충분해야 한다. 등등.

수직 및 수평 확장

이 트릴레마를 해결하려면 세 가지 요소가 모두 균형을 이루도록 신중하고 균형 잡힌 접근 방식이 필요하다.

이론적으로 블록체인 시스템은 계속해서 무한정 성장할 것이다. 더 많은 노드가 시스템의 일부가 될수록 더 많은 데이터와 자산이 흐르고 더 많은 트랜잭션을 처리해야 한다. 이 모든 작업에는 컴퓨팅 성능과 스토리지가 필요한다. 시간이 지남에 따라 수요는 계속 증가할 것이므로 기본 시스템은 성능의 급격한 저하를 방지하기 위해 그에 따라 확장해야 한다.

수직 및 수평의 두 가지 확장 옵션이 있다.

수직 확장

이 기술에는 더 많은 메모리와 더 나은 구성 요소를 추가하여 개별 노드의 계산 기능을 확장하는 것을 포함한다. 즉, 네트워크의 하드웨어를 업그레이드하여 전반적으로 더 나은 성능을 달성해야 한다.

예를 들어 고성능 노드를 포함하는 네트워크는 더 큰 블록 크기와 더 빠른 블록 전파를 지원한다. 그러나 단점은 운영 비용이 높기 때문에 새로운 노드 운영자가 참여를 다시 생각하게 만들어 네트워크 확장을 저해하고 탈중앙화가 제한된다는 것이다. 또한 이러한 네트워크는 유효성 검증자 노드에 더 높은 비용을 초래한다.

수평 확장

수직 확장과 달리 수평 확장은 두 가지 방법으로 달성할 수 있다. 하나는 단순히 기존 네트워크에 더 많은 컴퓨터(노드)를 추가하는 것이다. 여기서 이론적 근거는 추가 노드를 추가함으로써 네트워크가 더 많은 트랜잭션을 처리할 수 있게 된다는 것이다.

두 번째는 사이드체인을 사용하여 메인체인에서 계산 부하의 일부를 제거하고 추가 이점으로 특정 프로젝트나 산업에 맞게 다양한 합의 프로토콜 또는 거버넌스 모델의 형태로 맞춤형 체인을 가능하게 한다. 보안 관점에서 사이드체인은 메인체인에 대한 잠재적인 위협을 격리하여 보다 안전한 생태계를 만들 수 있다. 어떤 식으로든 사이드체인이 손상되면 위험이 해당 사이드체인에 포함되어 나머지 네트워크를 보호한다.

레이어 2: 확장성 딜레마 해결

대체로 레이어 2 솔루션은 레이어 1 체인에 내재된 확장성 문제를 해결한다. 기존 블록체인 위에 구축된(웨딩 케이크에 새 계층을 추가하는 것처럼) 레이어 2 프로토콜은 그렇지 않으면 메인 체인에서 발생하는 많은 처리 작업을 수행한다. 이는 메인 체인의 처리량을 증가시킨다. 추가 보너스는 레이어 2 솔루션이 어려운 작업을 수행하는 동안 레이어 1 솔루션이 보안을 유지한다는 것이다.

레이어 2: 정의

레이어 1 블록체인 위에서 작동하는 추가 오프체인 프로토콜이다. 당사자는 블록체인에서 오프체인 프로토콜로 자금을 안전하게 이체하고, 기본 체인과 독립적으로 이 프로토콜에서 거래를 정산하고, 필요에 따라 자금을 기본 체인으로 안전하게 다시 이체할 수 있다. 레이어 2 프로토콜은 네트워크 적체를 줄이기 때문에 전반적인 처리량과 확장성을 향상시킨다.

Cardano의 레이어 2 확장 솔루션

사이드체인

여러 블록체인이 서로 통신하고 하나가 다른 블록체인의 이벤트에 반응하도록 하는 방법으로 정의된 사이드체인은 다음을 통해 메인 블록체인(‘메인’ 체인, 부모 체인이라고도 함)에 연결된 별도의 블록체인이다. 한 체인의 토큰 및 기타 디지털 자산을 다른 체인에서 사용하고 결과를 원래 체인으로 반환할 수 있는 양방향 메커니즘(‘브리지’). 자산은 필요에 따라 체인 간에 이동할 수 있다. 하나의 단일 상위 체인에는 여러 개의 상호 운용 가능한 사이드체인이 연결되어 있으며 완전히 다른 방식으로 작동할 수 있다. Cardano의 EVM 사이드체인에는 dcSpark의 MilkomedaIOG의 EVM 사이드체인 프로젝트가 포함된다.

히드라(Hydra)

Hydra는 낮은 대기 시간과 높은 처리량을 통해 트랜잭션 속도를 높이고 트랜잭션 비용을 최소화하는 것을 목표로 하는 Cardano용 레이어 2 확장성 솔루션이다.

Hydra Head는 Hydra 제품군의 첫 번째 프로토콜이며 동형 사상(isomorphic), 다자간 상태채널(state-channels)에 의존하는 고급 배포 시나리오의 기반을 구현한다. Hydra Head는 메인 체인 원장을 안전한 결제 계층으로 사용하면서 일련의 사용자를 위해 오프체인 트랜잭션을 처리하는 보다 효율적인 수단을 제공함으로써 메인 체인에 느슨하게 연결된 상태를 유지하면서 보안을 보장한다. 글로벌 합의가 필요하지 않아 광범위한 애플리케이션에 적용할 수 있다. 또한 Hydra Head를 사용하면, 사용 사례에 따라 필요한 만큼 낮거나 높게 Tx 수수료, 스크립트 실행 예산 및 기타 프로토콜 매개변수를 구성할 수 있다. 예를 들어, 이는 소액 결제를 가능하게 하는 데 중요하다.

또한 Hydra Head는 동형 사상 상태 채널(isomorphic state channels)의 개념을 도입한다 . 즉, 동일한 원장 표현을 재사용하여 똑같은 오프체인 원장 사본(off-chain ledger siblings)를 생성하는 것이다. 이를 Heads(따라서 Hydra 이름)라고 한다. 특히 Cardano의 경우 이는 기본 자산(native assets), NFT(대체 불가 토큰) 및 Plutus 스크립팅을 Hydra 헤드 내에서 사용할 수 있음을 의미한다. 동형 사상(Isomorphism)은 시스템의 자연스러운 확장을 허용한다.

Hydra Heads는 Head 내에서 거의 즉각적인 최종성을 달성하는 데 탁월하다. 헤드를 설정하고 닫는 프로세스는 몇 블록이 걸릴 수 있지만 일단 설정되면 트랜잭션이 협업 참가자 간에 빠르게 흐를 수 있다. Hydra 헤드는 동형 사상이고 EUTXO 모델도 사용하기 때문에 충돌하지 않는 트랜잭션을 동시에 처리할 수 있으며, 우수한 네트워킹과 함께 사용 가능한 리소스를 최적으로 사용할 수 있다.

기타 확장 솔루션

오프체인 컴퓨팅

예를 들어 ACE(Asynchronous Contract Execution, 비동기 계약 실행)를 사용하여 계산의 일부를 오프로드하면 코어 네트워크 효율성을 높일 수 있다. 트랜잭션은 블록체인 외부에서 발생하지만 신뢰 모델을 통해 빠르고 저렴한 트랜잭션을 제공할 수 있다.

미스릴(Mithril)

더 큰 확장성을 달성하려면 참가자 수에 따라 대수적으로 결정되는 중요 작업의 복잡성을 해결해야 한다. Mithril은 IOG에서 개발한 프로토콜로 투명하고 안전하며, 경량의 지분 레버리지(lightweight stake leveraging)를 허용하는 지분 기반 임계 서명 체계로 작동 한다. Mithril은 신뢰를 유지하면서 체인 동기화를 개선한다. 그 결과 보안 기능을 손상시키지 않으면서 빠르고 효율적인 다중 서명 집계가 가능하다.

결론

블록체인 네트워크는 신비한 방식으로 작동하며 분산 원장 생태계를 둘러싼 일부 개념은 이해하기 어려울 수 있다.

하지만, 레이어를 여기서 표현된 케이크로 시각화할 경우, 레이어 1과 레이어 2는 그렇게 복잡하지 않다.

  • 레이어 1(케이크 스탠드) = 레이어 2 솔루션이 기반이 되는 강력하고 안전한 기본 네트워크
  • 레이어 2(케이크 계층) = 내재된 확장성 문제를 해결하기 위해 기본 위에 구축된 솔루션

이것은 레이어 1과 레이어 2가 무엇인지 시각화하고 이해하는 가장 간단한 방법이다.

핵심 요약

  • Cardano는 레이어 1(기본 네트워크)이다.
  • 레이어 2 솔루션은 레이어 1 체인의 확장성 및 트랜잭션 속도 문제를 해결하기 위해 레이어 1 체인 위에 구축된 구조이다. Bitcoin의 Lightning Network는 Cardano용 Hydra와 마찬가지로 레이어 2 솔루션의 예이다.
  • 수직 및 수평의 두 가지 확장 옵션이 있다.
  • 수직 확장에는 더 많은 메모리와 더 나은 구성 요소를 추가하여 개별 노드의 계산 기능을 확장하는 것이 포함된다.
  • 수평 확장은 두 가지 방법으로 달성할 수 있다. 하나는 단순히 기존 네트워크에 더 많은 컴퓨터(노드)를 추가하는 것이고, 다른 하나는 사이드체인을 사용하여 메인체인에서 계산 부하의 일부를 제거하는 것이다.

Cardano는 2022/2023년을 통해 다양한 확장 방법을 구현 할 것이다.