이더리움 문화를 되살리나요? 모나드에는 어떤 마법의 물약이 있나요?
1. 타락한 이더리움 마을
옛날 옛적에 이더리움 마을에 녹색 페페 개구리 한 무리가 살았습니다. 이곳은 한때 가장 활기찬 지역 중 하나였으며, 높은 탈중앙화와 강력한 보안으로 번영하는 경제를 이루었습니다.
이러한 원칙에 따라 마을 주민들은 이해관계에 따라 정기적으로 선거를 실시하여 12초마다 거래를 기록하는 블록 생성을 감독하는 지도자를 임명했습니다. 이런 식으로 그들은 마을의 번성하는 경제를 부지런히 관리했습니다.
이제 밈 바이러스가 퍼지고 마을의 힘이 약해지면서 이더리움의 영광은 사라지기 시작했습니다. 거리에는 그림자가 드리워지고 녹색 페페 개구리들은 황량하고 어두운 마을을 정처 없이 헤매고 다닙니다.
하지만 일부 녹색 페페 개구리들은 여전히 이더리움의 잃어버린 영광을 되찾기를 갈망하고 있습니다. 이들은 마을을 활성화하기 위한 운동인 ‘L2 개혁’을 지지합니다. 이들의 노력으로 이더리움은 다시 번성하기 시작했고, 한때 불가능하다고 여겨졌던 경제적 활력을 되찾았습니다.
하지만 L2 개혁에도 한계가 있습니다. 솔라나와 수이 같은 인근 마을은 젊고 불안정하지만 전례 없는 과학적 혁명을 통해 빠르게 발전하고 있습니다. 이들의 혁신은 복잡한 금융 거래를 원활하게 만드는 반면, 이더리움은 개혁에도 불구하고 여전히 어려움을 겪고 있습니다. 그 결과 페페 개구리들 사이에서는 인근 마을로 이주할 수 있다는 소문이 돌고 있습니다.
그러던 운명적인 어느 날, 보라색 페페 마법사가 이더리움 마을에 나타났습니다.
2. 보라색 페페 마법사의 도착
보라색 가운을 입은 페페 마법사는 이더리움 마을의 잃어버린 영광을 슬프게 바라보며 모나드라는 새로운 왕국을 세우기로 결심했습니다.
어느 날, 그는 초록색 페페 개구리들 앞에 나타나 모나드 마을을 만들겠다는 원대한 계획을 발표했습니다. 그는 초록색 페페 개구리들을 중앙 광장에 모아놓고 그들의 생각을 듣기 시작했습니다.
초록색 페페 개구리 1이 말했습니다: “모나드에서의 삶이 이더리움의 삶과 같았으면 좋겠습니다. 이더리움은 솔라나나 수이처럼 확장성이 부족하지만, 그들의 문화는 우리와 크게 다르기 때문에 떠날 생각은 전혀 하지 않았습니다.”라고 말했습니다.
그린 페페 개구리 2세는 “동일한 생활 방식과 문화를 유지하는 것도 중요하지만, 다른 마을처럼 효율적인 시스템도 희망합니다. 이더리움은 안전하지만 속도와 민첩성을 추구하는 기업에게는 충분하지 않습니다.”
마법사는 그들의 소원을 기억하고 이더리움의 문화적 특성과 솔라나와 수이의 확장성을 갖춘 모나드를 만들겠다고 약속했습니다. 그는 이 꿈을 실현하는 데 필요한 강력한 주문, 즉 새로운 시대의 효율적 발전을 충족할 수 있는 이더리움의 전통과 양립할 수 있는 마을을 고심했습니다.
그런 다음 그는 열망에 찬 페페 개구리들에게 자신의 비전을 공유하며 두 세계의 장점을 모두 누릴 수 있는 진정한 보금자리에 대한 희망을 심어주었습니다.
3. 비밀 주문 1: 실행 지연
이더리움 마을의 확장성의 한 가지 한계는 각각의 새로운 블록을 생성하는 데 필요한 단계인 합의 과정에서 각 트랜잭션을 처리하는 데 있습니다.
이더리움에서 블록을 제안하는 리더는 각 트랜잭션의 유효성을 보장하기 위해 블록 내 모든 트랜잭션을 미리 계산해야 합니다. 또한 이 블록을 받는 검증 노드도 모든 트랜잭션을 계산하여 블록의 정당성을 검증하고 투표해야 합니다.
합의 과정에는 마을 주민들 간의 계산과 커뮤니케이션이 포함되기 때문에 거래 처리에 할당된 시간이 매우 제한되어 궁극적으로 확장성에 제약이 따릅니다.
이 문제를 해결하기 위해 보라색 페페 마법사는 “지연된 실행”이라는 새로운 주문을 도입했습니다. 이 주문은 “합의” 프로세스(마을 사람들의 거래 주문)와 “실행” 프로세스(거래 결과 계산)를 분리합니다.
간단히 설명하자면, 각 블록마다 합의와 실행이 동시에 이루어지는 것이 아니라, 블록 N에 대해 합의가 이루어지고 블록 N-1(이미 거래 주문이 설정되어 있는 블록)에 대해 실행이 이루어집니다.
이 방법은 전체 블록의 실행 시간을 허용함으로써 동일한 시간 내에 처리할 수 있는 트랜잭션의 수를 크게 늘립니다.
고급 주문: 지연된 머클 뿌리
이더리움에서 노드는 블록의 유효성을 보장하기 위해 합의에 도달하기 전에 계산을 진행합니다. 그러나 모나드의 지연 실행 시스템에서는 합의와 실행이 분리되어 있습니다. 이는 악의적인 노드가 이전에 합의에 도달한 트랜잭션을 무시하거나 계산 상태를 임의로 변경할 수 있는 가능성을 열어줍니다.
이를 방지하기 위해 모나드는 머클 루트(N-10 블록의 계산 결과)를 N 블록의 제안에 포함시키고, 노드의 3분의 2 이상이 N 블록에 대한 합의에 도달하면 N-10 블록의 계산에 합의한 것으로 간주합니다.
N-10 블록에 대한 노드의 계산 결과가 N 블록에 포함된 머클 루트와 일치하지 않는 경우, 해당 노드는 N 블록부터 합의에서 제거됩니다. 머클 루트에 대한 10블록 지연은 계산 오류를 적시에 감지할 수 있도록 합니다.
모나드의 블록 시간이 1초라는 점은 주목할 가치가 있지만, 이것이 모나드의 완결성에 10초가 필요하다는 것을 의미하지는 않습니다. 모나드의 MonadBFT 시스템 덕분에 단일 슬롯 완결성을 달성할 수 있어 1초 이내에 완결성을 달성할 수 있습니다.
4. 비밀 주문 2: 트랜잭션 해시
영리한 보라색 페페 마법사는 마을 리더가 다른 노드에 블록 제안을 빠르게 전파할 수 있는 방법을 고민했습니다.
이더리움에서 일반적인 접근 방식은 전체 블록 제안(모든 트랜잭션 포함)을 패키징하여 네트워크를 통해 전송하는 것입니다.
그러나 페페 마법사는 모나드가 이 방법을 채택할 경우 수많은 트랜잭션이 포함된 블록 제안을 브로드캐스팅하는 것이 매우 힘들고 노동 집약적인 작업이 될 것이라는 사실을 깨달았습니다.
이 문제를 해결하기 위해 보라색 페페 마법사는 “트랜잭션 해시”라는 개념을 도입했습니다. 마을 주민들이 제출한 모든 트랜잭션은 이미 네트워크를 통해 전파되었기 때문에, 각 노드는 자체 메모리 풀에 모나드 마을 트랜잭션 기록을 유지했습니다.
이는 리더가 더 이상 각 블록 제안에서 트랜잭션의 전체 목록을 전송할 필요가 없다는 것을 의미했습니다. 대신 리더는 해시값을 전송하여 트랜잭션을 참조하기만 하면 됩니다.
따라서 모나드의 블록 제안에는 각 트랜잭션의 해시값만 포함됩니다. 이러한 해시값을 받으면 다른 노드는 이를 자신의 트랜잭션 기록과 쉽게 비교할 수 있습니다.
5. 비밀 주문 3: 모나드BFT
모나드 마을에서 각 블록 내 트랜잭션의 순서와 블록 생성을 위한 합의는 핫스터프 기반의 고성능 합의 메커니즘인 모나드BFT에 의해 제어됩니다. 이 단계적 비잔틴 장애 허용(BFT) 알고리즘을 통해 두 단계로 합의에 도달할 수 있습니다.
블록 리더의 역할은 각 참여자의 지분율에 따라 무작위로 선정됩니다. 모나드에서는 각 블록 N 제안이 이전 블록 N-1에 대한 쿼럼 인증서(QC)와 함께 전송되어 노드의 3분의 2 이상이 해당 블록을 검증했음을 나타내므로 이더리움 마을보다 블록 구성의 효율성이 높습니다.
프로세스는 다음과 같이 전개됩니다:
- 리더 N은 블록 N-1에 대한 QC와 함께 블록 N에 대한 제안을 브로드캐스트합니다.
- 검증자는 블록 N을 검증하고 투표를 리더 N+1에게 보냅니다.
- 리더 N+1은 블록 N+1에 대한 제안을 블록 N에 대한 QC와 함께 공유합니다.
그러나 블록체인의 특성상 모든 참여자가 온라인 상태이고 동기화되어 있는지 확인할 수 없기 때문에 QC N을 사용하더라도 검증자는 블록 N을 즉시 확인할 수 없습니다.
블록 N을 완전히 보호하려면 검증자는 QC N이 포함된 블록 N+1에 대한 “찬성” 투표를 리더 N+2에게 보내야 합니다. 리더 N+2가 QC N+1을 생성하면 N+1 라운드가 성공적으로 완료되었음을 확인하여 블록 N을 최종 확정합니다.
따라서 보라색 페페 마법사는 영리한 마법으로 모나드 마을을 새로운 시대로 안내합니다.
6. 비밀 주문 4: 병렬 실행
모나드에서는 많은 수의 마을 트랜잭션을 처리하기 위해 보라색 페페 마법사가 이더리움 마을에서처럼 트랜잭션을 순차적으로 처리하지 않고 병렬로 처리하는 새로운 주문을 설계했습니다.
지연 실행을 사용하면 블록의 트랜잭션 순서에 대한 합의에 도달한 후에야 실행이 시작됩니다. 모나드 마을은 많은 숙련된 실행자로 구성되어 있으며, 각 실행자는 트랜잭션 처리, 독립적으로 입력과 출력을 계산하고 보류 목록을 생성하는 역할을 담당합니다.
이러한 입력과 출력은 마을의 상태를 즉시 변경하지 않고 일시 정지된 마법 상태로 대기하며 합의에 의해 결정된 순서대로 제출할 준비를 합니다. 이 제출은 출력을 현재 상태로 병합하여 매끄럽고 질서 정연한 마법 태피스트리를 엮어냅니다.
그러나 반전이 생깁니다. 병렬 처리는 트랜잭션 충돌의 가능성을 야기하는데, 이는 질서 정연한 이더리움 마을에서는 드물지만 모나드에서는 새로운 도전 과제입니다.
예를 들어, 한 트랜잭션(트랜잭션 b)에서 마을 주민 A가 마을 주민 B에게 이더 1개를 선물하고, 다른 트랜잭션(트랜잭션 c)에서 B가 마을 여관에서 해당 이더를 사용하는 경우, 순서가 중요해집니다. 트랜잭션 c가 트랜잭션 b보다 먼저 실행을 시도하면 실패합니다. 이러한 경우 충돌하는 트랜잭션이 재정렬되고, 트랜잭션 c는 트랜잭션 b가 완료될 때까지 기다렸다가 실행합니다.
따라서 모나드에서 병렬 실행의 핵심은 순서에 있습니다. 결과는 병렬로 계산되지만 상태 업데이트는 필요한 정확한 순서로 병합됩니다.
7. 비밀 주문 5: 모나드DB
보라색 페페 마법사의 창의적인 아이디어는 여기서 멈추지 않았습니다. 그는 블록체인 상태를 저장하기 위해 특별히 설계된 모나드 마을만의 맞춤형 데이터베이스인 MonadDb를 떠올렸습니다. 이더리움은 복원력이 뛰어나지만 외부 클라이언트에게는 비효율적인 것으로 알려진 복잡한 머클 패트리샤 트리에 의존하고 있습니다.
MonadDb는 마을의 병렬 실행을 염두에 두고 설계되어 높은 정확도로 여러 읽기 및 쓰기를 동시에 지원합니다. 각 작업을 완료해야 다음 작업으로 넘어갈 수 있는 기존 데이터베이스와 달리, MonadDb는 비동기 I/O 마법을 사용하여 작업이 원활하게 겹칠 수 있도록 하고 진정한 병렬 트랜잭션 처리를 위한 기반을 마련합니다.
8. 모나드 빌리지를 방문하세요!
보라색 페페 마법사는 일련의 경이로운 주문과 복잡한 마법을 통해 모나드 마을을 만들었습니다. 이곳에서 이더리움의 신뢰할 수 있는 계정, 암호화, 거래 형식, 언어, 지갑은 솔라나와 수이의 확장성과 자연스럽게 조화를 이룹니다. 이제 모나드는 초당 10,000건의 트랜잭션 처리라는 꿈을 이루기 위해 번창하고 있습니다.
지혜와 희망으로 탄생한 모나드 마을은 밈 바이러스에 시달리는 세상을 구하고 이더리움이 영광을 되찾을 수 있도록 도울 수 있을까요? 시간이 지나야 알 수 있을 것입니다.