Ethereum Layer 2 확장 솔루션: 상태 채널, 플라즈마 및 Truebit
편집자 주: 이 기사의 출처는편집자 주: 이 기사의 출처는, 번역가 JohnJiangLA, 교정자 foxxnuaa Zheaoli; 매체의 원문, 저자Josh Stark; Odaily는 승인을 받아 재생산했습니다.

; Odaily는 승인을 받아 재생산했습니다.
펜실베니아 Tunkhannock 지역 철도 고가교(cc). 새로운 시대에 사용되는 고대 로마 건축 아이디어.
이더리움에게 2018년은 인프라에 집중하는 해입니다. 올해는 얼리 어답터가 네트워크의 한계를 테스트하고 Ethereum을 확장하는 일부 기술에 다시 초점을 맞추는 해입니다.
이더리움은 아직 초기 단계입니다. 오늘날에는 안전하거나 확장 가능하지 않습니다. 기술자들은 이것을 잘 알고 있습니다. 그러나 작년에 수많은 ICO에 의해 생성된 과대 광고가 현재 네트워크 기능을 과장하기 시작했습니다. 안전하고 사용하기 쉬운 분산형 인터넷을 구축하고 공통된 경제 규범에 의해 관리되고 수많은 사람들이 사용하는 이더리움과 web3의 아름다운 약속이 여기에 있지만 중요한 인프라가 있어야만 실현될 수 있습니다. .
이 인프라를 구축하고 Ethereum의 기능을 확장하는 프로젝트를 종종 확장 솔루션이라고 합니다. 이러한 프로그램은 다양한 형태를 취하며 서로 호환되거나 보완되는 경우가 많습니다.
이 긴 게시물에서는 하나의 스케일링 솔루션인 "오프체인" 또는 "레이어 2" 솔루션에 대해 자세히 살펴보고자 합니다.
먼저 이더리움(및 모든 퍼블릭 블록체인)의 확장성 문제를 포괄적인 방식으로 논의할 것입니다.
둘째, "계층 1" 솔루션과 "계층 2" 솔루션을 구분하여 확장 문제를 해결하는 다양한 접근 방식을 설명합니다.
마지막으로 레이어 2 솔루션에 대해 자세히 살펴보고 작동 방식을 자세히 설명하고 상태 채널, 플라즈마 및 Truebit에 대해 설명합니다.
이 기사의 초점은 독자들에게 두 번째 계층(계층 2) 솔루션의 개념과 작동 원리에 대한 포괄적이고 자세한 설명을 제공하는 것입니다. 그러나 우리는 코드나 특정 구현에 대해서는 다루지 않을 것입니다. 대신, 우리는 이러한 시스템을 구축하는 데 사용되는 경제적 메커니즘과 모든 두 번째 계층 기술에 대한 공통 사고 방식을 이해하는 데 중점을 둡니다.
1. 퍼블릭 블록체인의 스케일링 문제
우선, "스케일링"은 하나의 특정 문제가 아니라 전 세계 수많은 사용자가 이더리움을 사용할 수 있도록 하기 위해 해결해야 하는 일련의 어려운 문제를 포함한다는 점을 알아야 합니다.
가장 일반적으로 논의되는 확장 문제는 트랜잭션 처리량입니다. 현재 이더리움은 초당 약 15개의 트랜잭션을 처리할 수 있는 반면 Visa의 처리 용량은 약 45,000/tps입니다. 작년에 일부 애플리케이션(Cryptokitties 또는 간헐적인 ICO 등)은 네트워크 속도를 "느리게" 하고 채굴 수수료(가스) 가격을 인상할 정도로 인기를 얻었습니다.
퍼블릭 블록체인(이더리움 등)의 핵심 결함은 모든 트랜잭션이 네트워크의 모든 노드에서 처리되어야 한다는 것입니다. 결제, 크립토키티의 탄생, 새로운 ERC20 계약의 배포 및 이더리움 블록체인에서 발생하는 모든 작업은 네트워크의 모든 노드에서 병렬로 실행되어야 합니다. 이것은 설계 개념에 의해 결정되며, 퍼블릭 블록체인이 권위를 갖는 것은 바로 이 설계 개념 때문입니다. 노드는 블록체인의 현재 상태를 알려주기 위해 다른 노드에 의존할 필요가 없으며 스스로 알아냅니다.
이는 이더리움의 트랜잭션 처리량에 근본적인 제한을 둡니다. 단일 노드에 대한 설계 요구 사항을 초과할 수 없습니다. .
우리는 각 노드에 더 많은 작업을 하도록 요청할 수 있으며, 블록 크기(예: 블록 가스 제한)를 두 배로 늘리면 각 노드가 블록당 처리할 작업이 대략 두 배 더 많다는 것을 의미합니다. 그러나 이것은 시스템의 분산화에 대한 아이디어를 약화시킵니다. 노드에 대한 더 많은 작업은 덜 강력한 컴퓨터(예: 사용자 장치)가 네트워크에서 철회될 수 있음을 의미하며 채굴은 집중된 더 강력한 노드 운영자가 선호할 것입니다.
대신, 우리는 블록체인이 더 유용한 일을 하도록 만들면서 개별 노드의 작업량을 늘리지 않는 방법이 필요합니다.
개념적으로 이 문제에 대한 두 가지 가능한 솔루션이 있습니다.
1. 모든 노드가 모든 작업을 병렬로 처리할 필요가 없다면 어떻게 될까요?
첫 번째 접근 방식은 모든 노드가 모든 작업을 처리할 필요가 없는 블록체인을 구축할 수 있다면 어떨까요? 네트워크를 두 부분으로 나누어 원래 네트워크를 대체하고 각 부분이 독립적으로 작동할 수 있다면 어떨까요?
파트 A는 하나의 거래 배치를 처리할 수 있고 파트 B는 다른 배치를 처리할 수 있습니다. 이는 블록체인의 트랜잭션 처리량을 효과적으로 두 배로 늘립니다. 우리의 한계 때문에 이제 두 개의 노드에서 동시에 처리할 수 있습니다. 블록체인을 여러 부분으로 나눌 수 있다면 블록체인의 처리량을 몇 배로 늘릴 수 있습니다.
이것이 비탈릭의 이더리움 리서치 그룹 등이 작업 중인 스케일링 솔루션인 샤딩의 사고방식이다. 블록체인은 샤드라고 하는 여러 부분으로 나뉘며 각 부분은 트랜잭션을 독립적으로 처리할 수 있습니다. 샤딩은 이더리움의 기본 레벨 프로토콜에서 구현되기 때문에 종종 첫 번째 레이어(레이어 1) 확장 솔루션이라고 합니다 샤딩에 대해 더 알고 싶다면 광범위한 FAQ 및 이 블로그 게시물을 확인하십시오.
2. 이더리움의 기존 역량에서 더 유용한 비즈니스 운영을 짜낼 수 있다면
두 번째 옵션은 반대 방향으로 진행됩니다. 이더리움 블록체인 자체의 용량을 늘리는 대신 이미 보유한 용량으로 더 많은 작업을 수행할 수 있다면 어떨까요? 기본 수준에서 이더리움 블록체인의 생산성은 동일하지만 실제로는 트랜잭션, 게임의 상태 업데이트 또는 간단한 계산과 같이 인간과 응용 프로그램에 유용한 작업을 더 많이 수행할 수 있습니다.
이것이 상태 채널, Plasma 및 Truebit와 같은 "오프체인" 기술의 이면에 있는 생각입니다. 이러한 각 솔루션은 서로 다른 문제를 해결하고 있지만 모두 "오프체인"에서 작동하며 충분한 보안과 권한을 유지하면서 이더리움 블록체인에서 작동할 수 있습니다.
이들은 Ethereum 메인 체인의 "상단"에 구축되기 때문에 레이어 2 솔루션으로도 알려져 있습니다. 기본 수준에서 프로토콜을 변경할 필요가 없으며, 대신 단순히 오프체인 소프트웨어와 상호 작용하기 위한 이더리움의 스마트 계약 역할을 합니다.
2. Layer 2 솔루션은 암호 경제 솔루션입니다.
2계층 솔루션의 세부 사항을 살펴보기 전에 이를 실현 가능하게 만드는 기본 세부 정보를 이해하는 것이 중요합니다.
퍼블릭 블록체인의 동력원은 암호화된 경제 계약에 있습니다. 인센티브를 조정하고 소프트웨어 및 암호화로 보호함으로써 내부 상태에 동의하는 안정적인 컴퓨터 네트워크를 만들 수 있습니다. 이것은 비트코인과 이더리움을 포함한 다양한 퍼블릭 블록체인의 설계에 사용된 Satoshi Nakamoto의 백서의 핵심 요소입니다.
일부 극단적인 경우(예: 51% 공격)를 제외하고 암호화된 경제 계약은 우리에게 견고한 핵심을 제공합니다. 우리는 온체인 작업(예: 지불, 스마트 계약)이 실행하기 위해 작성된 것으로 볼 수 있음을 알고 있습니다.
레이어 2 솔루션의 핵심은 이 견고한 코어를 다른 경제 메커니즘을 연결할 수 있는 고정 지점인 앵커로 사용할 수 있다는 것입니다. 이 두 번째 계층 경제 메커니즘은 퍼블릭 블록체인의 사용성을 확장할 수 있습니다. 블록체인에서 상호 운용하고 필요한 경우 여전히 안정적으로 코어 체인으로 돌아갑시다.
이더리움의 "상단"에 구축된 이러한 레이어는 항상 온체인 작업과 동일한 보장을 갖지는 않습니다. 그러나 특히 엔드포인트가 약간 줄어들면 여전히 신뢰할 수 있고 안전하며 사용 가능하므로 작업을 더 빠르게 수행하거나 오버헤드 비용을 낮출 수 있습니다.
암호화 경제는 Satoshi Nakamoto의 백서로 시작하거나 끝나는 것이 아니라 우리가 배우고 적용하기에 가장 적합한 기술 주제입니다. 핵심 프로토콜의 설계뿐만 아니라 기본 블록체인의 기능을 확장하는 두 번째 계층 시스템의 설계에서도 마찬가지입니다.
1. 상태 채널
상태 채널은 트랜잭션 및 기타 상태 업데이트를 실행하기 위한 "오프체인" 기술입니다. 그러나 상태 채널 "에서" 발생하는 트랜잭션은 여전히 높은 수준의 보안 및 권한을 유지합니다. 문제가 발생하면 온체인 트랜잭션을 기반으로 권한이 있는 "솔리드 코어"로 되돌릴 수 있는 옵션이 여전히 있습니다.
대부분의 독자는 수년 동안 존재해 온 개념인 라이트닝 네트워크(lightning network)의 도움으로 최근 비트코인에 구현된 결제 채널(결제 채널)에 익숙할 것입니다. 상태 채널은 지불 채널의 일반화된 형태로 지불뿐만 아니라 스마트 계약의 변경과 같은 블록체인의 임의의 "상태 업데이트"에도 사용할 수 있습니다. 2015년 Jeff Coleman은 상태 채널을 처음으로 자세히 설명했습니다.
상태 채널이 작동하는 방식을 설명하는 가장 좋은 방법은 예제를 보는 것입니다. 이것은 개념적 설명이므로 구현의 기술적인 세부 사항에 대해서는 다루지 않을 것입니다.
이제 Alice와 Bob이 tic-tac-toe 게임을 하고 싶어하고 승자는 1ether를 받는다고 상상해 보십시오. 이를 수행하는 가장 쉬운 방법은 Tic Tac Toe 규칙을 구현하고 각 플레이어의 행동을 추적하는 스마트 계약을 Ethereum에서 만드는 것입니다. 플레이어가 이동을 원할 때마다 계약에 트랜잭션을 보냅니다. 규칙에 따라 플레이어가 이기면 계약은 승자에게 1 에테르를 지불합니다.
이것은 작동하지만 비효율적이고 느립니다. Alice와 Bob은 게임 플레이를 위해 전체 이더넷 네트워크를 사용하고 있는데, 이는 그들의 필요에 비해 약간 이상합니다. 그들은 매 단계마다 채굴 수수료(가스)를 지불해야 하고, 게임의 다음 단계로 진행하기 전에 채굴이 완료될 때까지 기다려야 합니다.
그러나 Alice와 Bob이 가능한 적은 온체인 작업으로 tic-tac-toe 게임을 할 수 있는 새로운 시스템을 설계할 수 있습니다. Alice와 Bob은 필요할 때 이더리움 메인체인으로 다시 가져오면서 오프체인에서 게임 상태를 업데이트할 수 있습니다. 이러한 시스템을 "상태 채널"이라고 합니다.
첫째, 우리는 Tic Tac Toe의 규칙을 이해할 수 있는 이더리움 메인 체인에 스마트 계약 "Judge"를 생성하고 Alice와 Bob을 우리 게임의 두 플레이어로 식별할 수 있습니다. 계약에는 1 에테르의 보상이 있습니다.
그런 다음 Alice와 Bob이 게임을 시작합니다. Alice는 게임의 첫 번째 단계를 설명하는 트랜잭션을 생성하고 서명하고 Bob에게 보냅니다. Bob은 서명하고 서명된 버전을 다시 보내고 복사본을 보관합니다. 그런 다음 Bob은 또한 게임에서 그의 첫 번째 이동을 설명하는 트랜잭션을 생성하고 서명하고 Alice에게 보내고 그녀는 서명하고 다시 보내고 사본을 보관하고 현재 상태가 될 때마다 서로의 게임을 업데이트합니다. 각 트랜잭션에는 "임의의 숫자"가 포함되어 있어 게임에서 이동 순서를 직접 알 수 있습니다.
지금까지 온체인 작업은 발생하지 않았습니다. Alice와 Bob은 인터넷을 통해 서로에게 트랜잭션을 보내고 있을 뿐 블록체인에는 아무 것도 건드리지 않습니다. 그러나 모든 거래는 Judge 계약으로 보낼 수 있습니다. 즉, 유효한 이더리움 거래입니다. 두 사람이 서로 간에 일련의 블록체인 인증 수표를 작성하는 것으로 생각할 수 있습니다. 실제로 은행에 돈이 입금되거나 인출되지는 않았지만 둘 다 입금할 수표 더미를 가지고 있었습니다.
Alice와 Bob이 게임을 종료하면(Alice가 이겼기 때문에) 최종 상태(예: 거래 목록)를 Judge 계약에 제출하여 채널을 닫을 수 있으므로 거래 수수료를 한 번만 지불하면 됩니다. 판사는 양 당사자가 이 "최종 상태"에 서명했는지 확인하고 아무도 결과에 합리적으로 이의를 제기할 수 없도록 일정 기간 기다린 다음 Alice에게 1 에테르의 보상을 지불합니다."대기하는 판사 계약을 설정해야 하는 이유"
질문 시간
Judge에게 실제 최종 상태의 사본을 보내는 대신 Bob이 이전에 Alice를 이겼던 상태의 사본을 보낸다고 가정합니다. 이때 Judge가 비스마트 컨트랙트라면 이 상태가 최신 상태인지 알 방법이 없습니다.
챌린지 시간은 Alice에게 Bob이 게임의 잘못된 종료 상태를 제출했음을 증명할 기회를 제공합니다. 더 최근 상태인 경우 그녀는 서명된 트랜잭션의 사본을 가지고 있으며 판사에게 제공할 수 있습니다. 판사는 nonce를 확인하여 Alice의 버전이 최신 버전인지 알 수 있으며 승리를 훔치려는 Bob의 시도는 기각될 수 있습니다.
기능 및 제한 사항
상태 채널은 많은 애플리케이션에서 유용하며 온체인에서 작업을 수행하는 것보다 깔끔하게 개선됩니다. 그러나 애플리케이션이 채널화에 적합한지 여부를 결정할 때는 다음과 같은 몇 가지 특정 절충안을 고려해야 합니다.
상태 채널은 신뢰성에 의존합니다. Alice가 챌린지 시간 동안 오프라인 상태가 되면(아마도 밥이 상을 받고 싶어 집에서 인터넷 연결을 끊을 수 있음) 챌린지 시간 동안 응답하지 못할 수 있습니다. 그러나 Alice는 시스템의 안정성을 유지하기 위해 자신의 상태 사본을 보관하고 자신의 이익을 대변하도록 다른 사람에게 비용을 지불할 수 있습니다.
상태 채널은 장기간에 걸쳐 많은 수의 상태 업데이트를 교환해야 하는 상황에서 유용합니다. 이는 Judge 계약을 배포할 때 채널을 만드는 초기 비용 때문입니다. 그러나 배포가 완료되면 채널의 각 상태 업데이트 비용이 매우 낮아집니다.
상태 채널은 잘 정의된 참가자 집합이 있는 애플리케이션에 가장 적합합니다. 이는 Judge 계약이 주어진 채널에 참여하는 모든 엔티티(예: 주소)를 항상 인식해야 하기 때문입니다. 사용자를 추가하거나 제거할 수 있지만 매번 계약을 변경해야 합니다.
상태 채널에는 강력한 개인 정보 보호 속성이 있습니다. 모든 것이 공개 방송 및 녹화된 온체인이 아니라 참여자 간의 "내" 채널에서 발생하기 때문입니다. 개설 및 마감 거래만 공개되어야 합니다.
상태 채널의 권한은 즉각적입니다. 이는 양 당사자가 상태 업데이트에 서명하는 즉시 최종 업데이트로 간주될 수 있음을 의미합니다. 양 당사자는 필요한 경우 온체인 상태를 "실행"할 수 있다는 명시적인 보장을 받습니다.
Counterfactual은 이더리움에서 상태 채널을 구현하는 프레임워크입니다. 목표는 개발자가 상태 채널 전문가가 아니어도 프로젝트에서 상태 채널을 모듈식으로 사용할 수 있도록 하는 것입니다. 2018년 1분기에 기술 세부 정보 문서를 게시합니다.
Counterfactual 및 Raiden 외에도 Ethereum에는 여러 애플리케이션별 채널 구현이 있습니다. 예를 들어, Funfair는 탈중앙화 도박 플랫폼을 위해 "운명 채널"이라고 하는 일련의 주 채널을 구축했고, SpainChain은 성인 프로젝트 행위자를 위한 일방 결제 채널 집합을 구축했습니다(그들은 여전히 주 채널을 사용하여 ICO에 있습니다). 게임은 또한 최초의 이더리움 기반 게임에서 상태 채널을 사용했습니다.
텍스트
2. 플라즈마
2017년 8월 11일, Vitalik Buterin과 Joseph Poon은 Plasma: Autonomous Smart Contracts라는 제목의 문서를 발표했습니다. 이 문서는 이더리움이 현재 처리하는 것보다 초당 훨씬 더 많은 트랜잭션을 처리할 수 있는 새로운 기술을 소개합니다.
상태 채널과 마찬가지로 플라즈마는 보안을 위해 기본 이더리움 블록체인에 의존하면서 오프체인 트랜잭션을 관리하는 기술입니다. 그러나 Plasma는 "메인" 이더리움 블록체인에 연결된 "자식" 블록체인을 생성하여 새로운 접근 방식을 취합니다. 이러한 하위 체인은 차례로 반복될 수 있는 자체 하위 체인을 차례로 생성할 수 있습니다.

plasma.io/plasma.pdf
그 결과 우리는 이더리움 메인 체인과의 최소한의 상호 작용을 유지하면서 수천 명의 사용자와 함께 본격적인 애플리케이션을 실행하면서 서브체인 수준에서 많은 복잡한 작업을 수행할 수 있습니다. 플라즈마 차일드 체인은 전체 이더리움 블록체인에서 작업을 반복할 필요가 없기 때문에 더 빠르게 마이그레이션하고 거래 수수료를 낮출 수 있습니다.
Plasma의 작동 방식을 이해하기 위해 사용 방법의 예를 살펴보겠습니다.
Ethereum 기반 카드 거래 게임을 만든다고 상상해 보십시오. 이러한 카드는 일부 ERC 721 대체 불가능한 토큰(예: 크립토키티)이지만 하스스톤이나 매직: 더 개더링과 같이 플레이어가 서로 대결할 수 있는 몇 가지 특성과 속성이 있습니다. 이러한 유형의 복잡한 작업은 온체인에서 수행하는 데 비용이 많이 들기 때문에 응용 프로그램에서 Plasma를 대안으로 사용하기로 결정합니다.
첫째, Plasma 하위 체인의 "루트 노드"로 사용할 수 있는 Ethereum 메인 체인에서 일련의 스마트 계약을 생성합니다. Plasma 루트 노드는 하위 체인의 기본 "상태 거래 규칙"(예: "거래는 소비된 자산을 소비할 수 없음")을 포함하고 하위 체인 상태의 해시 값을 기록하고 다음과 같은 방법을 설정합니다. 사용자가 이더리움 메인 체인에서 거래할 수 있도록 합니다. 서브 체인 간에 자산을 전송하기 위한 "브리지" 서비스입니다.
그런 다음 자식 체인을 만듭니다. 차일드 체인은 자체 합의 알고리즘을 가질 수 있습니다. 이 예에서는 신뢰할 수 있는 블록 생산자(예: 검증자)에 의존하는 간단한 합의 메커니즘인 권한 증명(PoA)을 사용한다고 가정합니다. "작업 증명" 시스템에서 블록 생산자와 채굴자는 유사하게 기능하며 트랜잭션을 수신하고 블록을 형성하며 트랜잭션 수수료를 징수하는 노드입니다. 예제를 간단하게 유지하기 위해 귀하(즉, 게임을 만드는 회사)가 블록을 생성하는 유일한 개체라고 가정합니다. 즉, 귀하의 회사는 하위 체인의 블록 생산자인 여러 노드를 운영합니다.
하위 체인이 생성되고 적용되면 블록 생산자는 주기적으로 루트 노드 계약에 제출을 보냅니다. 즉, 그들은 "내 제출물 X가 차일드 체인의 현재 최신 블록입니다"라고 효과적으로 말하고 있습니다. 이러한 커밋은 자식 체인의 트랜잭션 증거로 체인의 플라즈마 루트 노드에 기록됩니다.
이제 자식 체인도 준비되었으므로 카드 거래 게임의 기본 구성 요소를 만들 수 있습니다. 이 카드는 ERC721을 따르고 Ethereum 메인 체인에서 초기화된 다음 Plasma 루트 노드에 의해 하위 체인으로 전송됩니다. 여기에 핵심 포인트가 소개됩니다. Plasma는 블록체인 기반 디지털 자산과의 상호 작용을 확장할 수 있지만 이러한 자산은 애초에 Ethereum 메인 체인에서 생성되어야 합니다. 그런 다음 실제 게임 응용 프로그램을 스마트 계약의 형태로 하위 체인에 배포하여 하위 체인에 게임의 모든 논리와 규칙이 포함되도록 합니다.
사용자가 게임을 하고 싶을 때 하위 체인과 상호 작용하기만 하면 됩니다. 그들은 메인 체인과 상호 작용하지 않고 속성(ERC721 카드)을 보유하고, 구매 및 ETH로 교환하고, 다른 사용자와 플레이하고, 기타 게임 내 작업을 수행할 수 있습니다. 소수의 노드(예: 블록 생산자)만이 트랜잭션을 처리하면 되므로 수수료가 훨씬 저렴하고 작업 속도가 빨라집니다.
하지만 이 패턴은 안전한가요?
메인 체인에서 서브 체인으로 작업을 마이그레이션함으로써 분명히 더 많은 작업을 수행할 수 있습니다. 하지만 안전한가요? 자식 체인의 트랜잭션이 신뢰할 수 있습니까? 결국, 방금 설명한 시스템에는 하위 체인의 블록 생성을 제어하는 하나의 중앙 엔터티만 있습니다. 이거 중앙집중아닌가요? 회사가 언제든지 귀하의 자산을 훔치거나 수집 가능한 카드를 가져갈 수 있지 않습니까?
간단히 말해서 Plasma는 하위 체인의 단일 엔티티가 블록 생산을 완전히 제어하는 시나리오에서도 언제든지 자산을 다시 메인 체인으로 인출할 수 있다는 기본적인 약속을 합니다. 블록 프로듀서가 적대감을 나타내기 시작하면 최악의 경우 차일드 체인을 떠나도록 강요할 뿐입니다.
블록 생산자가 잘못 행동하는 몇 가지 방법과 Plasma가 이러한 시나리오를 처리하는 방법을 살펴보겠습니다.
첫째, 블록 생산자가 거짓말을 하여 귀하를 속이려 한다고 가정하면 그들은 귀하의 자산을 인수했다고 주장하면서 가짜 새 블록을 만들 수 있습니다. 그들은 유일한 블록 생산자이기 때문에 블록체인의 규칙을 따르지 않는 새로운 블록을 자유롭게 도입할 수 있습니다. 다른 블록과 마찬가지로 플라즈마 루트 노드 계약에 대한 커밋으로 이 블록의 존재 증명을 푸시해야 합니다.
Plasma는 또한 악용 사기를 방지하는 메커니즘을 생성합니다. Plasma에는 누구나(귀하 포함) 사기 증명을 루트 노드 계약에 발행하여 블록 생산자가 사기를 쳤음을 증명할 수 있는 메커니즘이 포함되어 있습니다. 이 사기 증명은 이전 블록의 정보를 포함하고 하위 체인의 상태 트랜잭션 규칙을 따를 수 있도록 하며 잘못된 블록은 이전 상태에 올바르게 연결할 수 없습니다. 사기가 확인되면 하위 체인은 이전 블록으로 롤백됩니다. 더 좋은 점은 잘못된 블록을 확인하는 블록 생산자가 불이익을 받고 이러한 블록 생산자는 온체인 예치금을 잃게 되는 시스템도 구축했습니다.

이미지 설명
이 경우 Alice가 자산을 복구하고 자식 체인을 떠날 수 있도록 이 체계가 준비되어 있습니다. 기본적으로 Alice는 루트 노드 계약에 "사기 증명"을 제출합니다. 누구나 증명에 이의를 제기할 수 있는 지연 기간이 지나면(예를 들어 나중에 적법한 블록이 그녀가 실제로 자산을 소비했음을 증명한다는 것을 보여주기 위해) Alice의 자산은 이더리움 메인 체인으로 다시 이동됩니다.

이미지 설명
마지막으로 블록 생산자는 차일드 체인의 사용자를 모니터링할 수 있습니다. 블록 생산자가 원하는 경우 블록에 실제 트랜잭션을 포함하지 않을 수 있으므로 사용자가 차일드 체인에서 작업을 수행하는 것을 효과적으로 방지할 수 있습니다. 위에서 언급했듯이 이 솔루션은 다시 한 번 우리의 모든 자산을 이더리움 메인 체인으로 직접 반환합니다.
그러나 자산 인출에는 자체 위험도 수반됩니다. 우려 사항 중 하나는 이 하위 체인을 사용하는 모든 사용자가 동시에 자산을 인출해야 하는 경우 어떻게 되는지입니다. 이러한 대규모 인출의 경우 이더리움 메인 체인에 챌린지 기간 동안 모든 사람의 트랜잭션을 처리할 수 있는 충분한 용량이 없을 수 있으며 이는 사용자가 자금을 잃을 수 있음을 의미합니다. 예를 들어 자산 인출 필요성을 수용하기 위해 챌린지 시간을 연장함으로써 이러한 일이 발생하지 않도록 할 수 있는 많은 가능한 기술이 있지만.
모든 블록 생산자가 하나의 주체에 의해 통제되는 것이 아니라 우리의 경우 극단적인 경우라는 점은 주목할 가치가 있습니다. 우리는 블록 생산자가 서로 다른 개체 사이에 분산되는 하위 체인, 즉 공개 블록처럼 진정으로 분산된 하위 체인을 만들 수 있습니다. 이러한 경우 블록체인 생산자가 위에서 설명한 방식으로 상호 작용할 위험이 적고 사용자가 자산을 이더리움 메인 체인으로 다시 전송해야 할 위험이 적습니다.
상태 채널과 플라즈마를 도입했으므로 비교할 가치가 있는 몇 가지 사항이 있습니다.
그들 사이의 한 가지 차이점은 상태 채널의 모든 이해 관계자가 철회에 동의하면 즉시 철회할 수 있다는 것입니다. Alice와 Bob이 채널을 닫고 자금을 인출하는 데 동의하는 경우. 그들이 모두 최종 상태에 동의하는 한 즉시 자산을 얻을 수 있습니다. Plasma에서는 불가능하며, 위에서 언급했듯이 사용자는 자산을 인출하는 과정에서 도전 시간을 포함해야 합니다.
상태 채널은 거래당 비용이 저렴하고 Plasma보다 빠릅니다. 이것은 플라즈마 차일드 체인에 상태 채널을 설정할 수 있음을 의미합니다. 예를 들어 두 명의 사용자가 일련의 소액 트랜잭션을 수행하는 애플리케이션이 있습니다. 자식 체인에 상태 채널을 설정하는 것이 자식 체인에서 직접 각 트랜잭션을 실행하는 것보다 저렴하고 빠릅니다.
III. Truebit
마지막으로 설명의 이 부분에 많은 세부 사항이 누락되어 있음을 유의해야 합니다. 플라즈마 자체는 초기 단계에 있습니다. 오늘날 플라즈마에 무슨 일이 일어나고 있는지 알고 싶다면 "최소 실행 가능한 플라즈마"(즉, 플라즈마 구현을 추상화)에 대한 Vitalik의 최근 제안을 확인하십시오. 대만 팀이 이에 대해 작업 중이며 이 포크에서 볼 수 있습니다. OmiseGo는 분산 트랜잭션 구현 작업을 진행 중이며 여기에 진행 상황에 대한 최신 업데이트를 게시했습니다.
트루비트는 이더리움이 오프체인에서 무겁거나 복잡한 계산을 수행하도록 돕는 기술입니다. 이더리움 블록체인의 총 트랜잭션 처리량을 높이는 데 더 효과적이며 이는 상태 채널 및 플라즈마와 다릅니다. 시작 섹션에서 논의한 것처럼 확장은 더 높은 트랜잭션 처리량 이상을 요구하는 다면적인 퍼즐입니다. 트루비트는 우리가 더 많은 트랜잭션을 수행하도록 허용하지 않지만 이더리움 기반 애플리케이션이 더 복잡한 트랜잭션을 처리하고 여전히 메인 체인에서 검증할 수 있도록 합니다.
이를 통해 온체인에서 수행하기에는 계산 비용이 너무 많이 드는 이더리움 애플리케이션에서 유용한 작업을 수행할 수 있습니다. 예를 들어, 이더리움 스마트 계약이 거래가 다른 체인(예: Bitcoin 또는 Dogecoin)에서 발생했는지 여부를 "확인"할 수 있는 다른 블록체인의 SPV(Simple Payment Verification) 증명을 확인합니다.
예를 들어 보겠습니다. Ethereum 애플리케이션의 일부로 수행해야 하는 비용이 많이 드는 계산(예: SPV 증명)이 있다고 상상해 보십시오. SPV 증명의 계산 비용이 너무 높기 때문에 단순히 이더리움 메인 체인의 스마트 계약의 일부로 포함할 수 없습니다. 각 노드가 작업을 병렬로 수행해야 하기 때문에 Ethereum에서 계산을 수행하는 것은 매우 비쌉니다. 이더리움의 블록에는 최대 수수료(가스) 한도가 있으며, 이는 블록의 모든 트랜잭션을 결합하여 수행할 수 있는 총 계산량을 제한하는 데 사용됩니다. 그러나 SPV 증명은 연산 집약적이어서 단일 트랜잭션이더라도 단일 블록의 전체 수수료 한도의 여러 배가 여전히 필요합니다.
반대로 체인에서 계산을 완료하려면 약간의 수수료만 지불하면 됩니다. 계산을 위해 비용을 지불하는 사람을 솔버라고 합니다.
먼저 솔버는 스마트 계약에 보증금을 지불합니다. 그런 다음 솔버에게 계산에 대한 자세한 설명을 제공하고 계산을 실행한 다음 결과를 반환합니다. 결과가 정확하면(대부분 1초 이내에 발생) 보증금이 반환됩니다. 솔버가 잘못 수행한 것으로 판명되면(예: 부정 행위 또는 실수) 예치금을 잃게 됩니다.
검증 게임은 온체인에서 실행되기 때문에 단순히 결과를 계산할 수 없습니다(이는 전체 시스템의 목적을 무너뜨리고 계산이 온체인에서 수행될 수 있다면 Truebit가 필요하지 않을 것입니다). 대신 솔버와 챌린저에게 그들이 동의하지 않는 특정 작업을 식별하도록 요청합니다. 사실상 우리는 양측의 한쪽 구석에 서서 결과에 대한 의견 불일치를 야기한 특정 코드 줄을 파악했습니다.

이미지 설명
Truebit의 단순화된 개념도
Truebit에 대해 자세히 알아보려면 이 문서 또는 Simon de la Rouviere의 이 블로그 게시물을 확인하세요.
결론적으로
결론적으로
레이어 2 솔루션은 공통된 비전을 공유합니다. 퍼블릭 블록체인이 제공하는 안정적인 코어를 확보하면 암호화 경제의 앵커 포인트로 사용하여 무제한 블록체인 응용 프로그램을 확장할 수 있습니다.
이제 몇 가지 샘플을 조사했으므로 2계층 솔루션이 이 비전을 달성할 수 있는 방법을 보다 구체적으로 확인할 수 있습니다. 두 번째 계층 솔루션에 사용되는 경제 메커니즘은 종종 대화형 게임입니다. 당사자가 서로 경쟁하거나 "확인"할 인센티브를 생성하여 작동합니다. 우리는 상대방이 거짓 정보를 확증하는 강력한 인센티브를 생성하기 때문에 블록체인 애플리케이션은 주어진 진술이 사실이라고 가정할 수 있습니다.
상태 채널 방식에서는 각 당사자에게 상대방을 "반박"할 기회를 주어 채널의 최종 상태를 결정합니다. Plasma 계획에서 이것이 사기 증명 및 인출이 관리되는 방식입니다. Truebit 체계에서 도전자는 해결자가 올바른 결과를 제공하도록 확인하기 위해 해결자가 틀렸다는 것을 증명하도록 권장됩니다.
이러한 시스템은 이더리움을 글로벌 사용자 기반으로 확장하는 것과 관련된 여러 가지 문제를 해결하는 데 도움이 될 것입니다. 상태 채널 및 플라즈마와 같은 일부 시스템은 플랫폼의 트랜잭션 처리량을 증가시킵니다. Truebit과 같은 다른 시스템은 스마트 계약의 일부로 더 복잡한 계산을 수행하여 새로운 사용 사례를 만들 수 있습니다.
이 세 가지 예는 암호 경제 확장 시나리오에 대해 가능한 설계의 일부만을 나타냅니다. 우리는 Cosmos 또는 Polkadot과 같은 "블록체인 간 계약"에 대해서도 이야기하지 않았습니다("두 번째 레이어" 솔루션 또는 다른 블로그 게시물에 대한 것임). 우리는 여전히 기존 모델을 개선하거나 속도, 대기 시간 및 오버헤드에서 새로운 절충안을 만드는 예기치 않은 새로운 계층 2 시스템을 발명해야 합니다.
고유한 두 번째 계층 솔루션보다 더 중요한 것은 이러한 암호화 경제 설계를 가능하게 하는 기본 기술 및 메커니즘의 추가 개발입니다.
이러한 2계층 확장 시나리오는 이더리움과 같은 프로그래밍 가능한 블록체인의 장기적인 가치에 대한 강력한 사례입니다. 프로그래밍 방식 블록체인의 두 번째 계층 솔루션을 기반으로 경제 메커니즘을 구축하는 것만 가능합니다. 대화형 게임을 실행하려면 스크립팅 언어로 프로그램을 구현해야 합니다. 이는 제한된 스크립팅 기능만 제공하는 비트코인과 같은 블록체인에서는 어렵습니다(또는 플라즈마와 같은 경우에는 완전히 불가능합니다).
이더리움의 두 번째 계층 솔루션의 출현으로 속도, 터미널 및 오버헤드 간에 새로운 절충안을 만들 수 있습니다. 여기에서 기본 블록체인을 더 다양한 애플리케이션에 적용할 수 있습니다. 따라서 서로 다른 위협 모델에 직면한 서로 다른 유형의 애플리케이션은 자연스럽게 서로 다른 절충 모델을 선택하게 됩니다. 지역(또는 국가) 규모의 보안이 필요한 대규모 트랜잭션의 경우 메인 체인을 사용합니다. 보다 속도 지향적인 디지털 자산 거래를 위해 Plasma를 사용할 수 있습니다. 두 번째 계층 솔루션을 사용하면 기본 블록체인을 손상시키지 않고 이러한 절충안을 만들고 분산화 및 권한을 유지할 수 있습니다.
또한 주어진 확장 시나리오에 어떤 스크립팅 기능이 필요할지 미리 예측하기 어렵습니다. Ethereum이 설계되었을 때 Plasma와 Truebit는 아직 발명되지 않았습니다. 그러나 이더리움은 완전히 프로그래밍이 가능하기 때문에 우리가 발명할 수 있는 모든 경제 메커니즘을 구현할 수 있습니다.
블록체인 기술의 가치는 암호화된 경제 계약의 안정적인 핵심에 구축되며 이더리움과 같은 프로그래밍 가능한 블록체인은 이 가치를 최대한 활용할 수 있는 유일한 방법입니다.







