⚠️ **블로그 컨셉상 반어체가 들어가니 양해바랍니다
**

⚡ 비탈릭이 짜놓은 판 위에서 - Web3의 시작을 알아보자
이더리움 온체인 PART 1 🧠
이번엔 비트코인 온체인 분야보다 좀 더 깊은 물로 들어가보려고 한다. 바로 이더리움이다. 🔷

🌐 시작하기 전에 - Web3가 대체 뭔데?
본론 들어가기 전에 이거 하나 정리하고 가자. "Web3 Web3" 하는데 이게 대체 뭘 하는 거냐고 물어보면 사실 되게 간단하게 설명할 수 있다.
"체인에 있는 지갑 정보로 뭔가를 하는 것"
이게 끝이다.
진ㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴ짜 더 간단하게 말하면, 우리가 인터넷 서비스에 "로그인"하는 방식의 변천사로 이해하면 제일 빠르다.
| 세대 | 로그인 방식 |
|---|---|
| 🟤 Web1 | 아이디 / 비밀번호 직접 입력 |
| 🔵 Web2 | 구글/카카오 같은 소셜 로그인 (OAuth) |
| 🟣 Web3 | 블록체인 기반 개인 지갑으로 로그인 (서명 인증) |
Web1은 각 서비스마다 아이디/비번을 따로 관리해야 했고,
Web2는 그걸 구글/페이스북 같은 중앙화된 플랫폼한테 위임했다.
Web3는 여기서 한 발 더 나가서, "그 중앙화된 플랫폼조차 필요 없게, 내 개인키로 직접 내가 나임을 증명하겠다"는 거다.
일단 딱 이 정도만 알고 넘어가자. 그럼 이제 그 "지갑"이라는 게 대체 뭐고, 어떻게 만들어지는지부터 파보자. 🔍
이번 파트1에서는 4개의 파이프라인을 순서대로 탄다.
- 🔑 내 지갑 주소는 대체 어디서 튀어나오는가
- 🌳 그 주소가 가진 잔고와 상태는 대체 어디에 저장되는가
- ⚙️ 그 상태를 바꾸는 규칙(EVM)은 뭐고, 왜 남들이 그걸 복붙해서 쓰는가
- 💸 그리고 그 실행 순서를 두고 벌어지는 총성 없는 전쟁, MEV
한번 Deep 하게 살펴보자. 🚀

🔑 1. 내 주소는 어디서 나오는가 - 난수에서 0x까지
지갑 앱 켜서 "새 지갑 만들기" 누르면 순식간에 주소가 뙇 나오는데, 저 뒤에서 실제로는 꽤 복잡한 파이프라인이 돌아간다. 요즘 나오는 지갑들(메타마스크, 렛저 등)은 거의 다 HD 지갑(Hierarchical Deterministic Wallet) 방식을 쓰는데, 이걸 비트코인 기준으로 제일 먼저 뜯어보자.
🟠 1-1. 비트코인: 난수 → 니모닉 → 파생 → 개인키
📂 비트코인 주소 생성 파이프라인 펼쳐보기
[0] 엔트로피 (Entropy) - 보통 128~256비트 (16~32바이트) 진짜 난수
│
▼ (BIP-39: 엔트로피를 체크섬과 함께 11비트씩 쪼개서 단어 사전에 매핑)
[1] 니모닉 시드 문구 (Mnemonic) - 예: "witch collapse practice feed..." (12/24 단어)
│
▼ (BIP-39: 니모닉 + 패스프레이즈를 PBKDF2-HMAC-SHA512로 2048회 반복 해싱)
[2] 시드 (Seed) - 64바이트
│
▼ (BIP-32: HMAC-SHA512(key="Bitcoin seed", data=Seed))
[3] 마스터 개인키(32바이트) + 마스터 체인코드(32바이트)
│
▼ (BIP-32/BIP-44 경로 파생, 예: m/44'/0'/0'/0/0)
[4] 최종 개인키 (Private Key) - 32바이트
│
▼ (secp256k1 타원곡선 연산: PubKey = PrivKey × G)
[5] 공개키 (Public Key)
├─ 압축형 (Compressed): 0x02 또는 0x03 + X좌표 (33바이트)
└─ 미압축형 (Uncompressed): 0x04 + X좌표 + Y좌표 (65바이트)
│
▼ (SHA-256 → RIPEMD-160)
[6] 공개키 해시 (Pubkey Hash, 20바이트)
│
▼ (버전 바이트 0x00 추가 + 이중 SHA-256 체크섬 4바이트 추가)
[7] 버전 + 해시 + 체크섬 (25바이트)
│
▼ (Base58Check 인코딩)
최종 주소 (예: 1M72vDQ...)
여기서 짚고 갈 게 두 개 있다. 📌
첫째, 니모닉(BIP-39)과 개인키(BIP-32/44)는 완전히 다른 레이어라는 거다.
니모닉 문구는 인간이 받아 적기 쉽게 인코딩한 "시드의 표현형"일 뿐이고, 실제 개인키는 그 시드에서 HMAC-SHA512로 한 번 더 파생해서 나온다. 그리고 BIP-44 경로(m/44'/coin_type'/account'/change/address_index)를 쓰면 시드 하나로 사실상 무한대에 가까운 개인키/주소를 순차적으로 뽑아낼 수 있다. 우리가 지갑 앱에서 계정 여러 개 만들 수 있는 게 다 이 덕분이다.
(ㅈㄴ 쉽게말해서 BIP39 == 사람이 그나마 외우기 쉽게 12개의 단어로 바꿈 이라고 암기)
둘째, 압축형(Compressed) vs 미압축형(Uncompressed) 문제. secp256k1 곡선의 방정식은 y² = x³ + 7 (mod p)인데, 어떤 X값이 주어지면 이 방정식을 만족하는 Y값은 항상 정확히 2개 나온다(부호가 반대인 한 쌍, 곡선이 x축 기준으로 대칭이라서 그렇다). 그러니까 X좌표만 알고 있어도 "Y가 짝수냐 홀수냐"만 1비트로 알려주면 Y값을 역산할 수 있다는 소리다. 이걸 이용해서 65바이트짜리 공개키(X+Y 다 저장)를 33바이트(X + 부호 1바이트)로 반토막 낸 게 압축형 공개키다.

문제는 이 압축형/미압축형이 그냥 "저장 공간 아끼는 옵션"이 아니라, 주소 생성 결과 자체를 바꿔버린다는 거다. 비트코인은 [6]번 해시 단계에서 [5]번 공개키 바이트를 포맷 식별자 바이트까지 포함해서 그대로 해시에 집어넣는다. 즉 같은 개인키라도
- 압축형으로 해시 돌리면 → 주소 A
- 미압축형으로 해시 돌리면 → 주소 B
서로 다른 주소 두 개가 나온다. 지금은 지갑들이 거의 다 압축형으로 통일해서 쓰지만, 사토시 초창기엔 미압축형만 있었고 압축형은 나중에 도입된 거라, 예전 지갑 소프트웨어 갈아탈 때 "어 내 코인 어디갔지 😱" 하는 사고가 실제로 있었다.
(이것도 쉽게 정리하자면 P2PK가 04로 시작하는애가 있고 02로 시작하는 애가 있다. 그냥 이렇게 외우셈)
🟣 1-2. 이더리움: 파생까지는 같은데, 그 뒤가 다르다
이더리움도 니모닉 만들고 개인키 뽑는 부분(BIP-39/32/44)까지는 비트코인이랑 완전히 동일한 표준을 쓴다. 경로에서 coin_type만 60'으로 바뀔 뿐이다 (m/44'/60'/0'/0/0). 근데 개인키에서 주소로 가는 마지막 구간이 완전히 다르게 짜여 있다.
📂 이더리움 주소 생성 파이프라인 펼쳐보기
[4] 최종 개인키 (Private Key) - 32바이트
│
▼ (secp256k1 타원곡선 연산, 이더리움은 항상 미압축형만 사용)
[5] 원본 공개키 (Public Key) - 65바이트
└─ Format: 0x04 + X좌표(32바이트) + Y좌표(32바이트)
│
▼ (★ 맨 앞의 포맷 식별자 0x04를 제거하고 좌표 데이터만 추출)
[6] 순수 공개키 데이터 - 64바이트 (X좌표 + Y좌표)
│
▼ (Keccak-256 해시)
[7] Keccak-256 결과물 - 32바이트
│
▼ (앞 12바이트 버리고, 뒤 20바이트만 슬라이싱)
[8] 최종 주소 데이터 - 20바이트 (16진수 40자리)
│
▼ (앞에 0x 붙임 + 선택적으로 EIP-55 대소문자 체크섬 적용)
최종 주소 (예: 0xAbC123...)
아까 비트코인 얘기했던 그 압축형/미압축형 이슈, 이더리움은 애초에 선택지 자체가 없다.
무조건 미압축형(0x04) 하나만 쓴다. 그럼 이 0x04라는 바이트는 "이거 미압축 포맷이야"라는 표시 그 이상도 이하도 아니고, 모든 이더리움 공개키에서 100% 동일한 상수값이다. 정보량이 제로라는 소리다.
그러니 이더리움은 이 의미 없는 1바이트를 아예 잘라내고, 진짜 정보가 담긴 X‖Y 64바이트만 Keccak-256에 넣는다. 이게 저번에 얘기했던 "비트코인은 포맷 식별자까지 해시하고, 이더리움은 그걸 버린다"는 그 부분이다. 참고로 보안 강도 차이는 전혀 없다. 순수하게 직렬화 설계 철학 차이일 뿐이다.
그리고 보너스로 하나 더, 이더리움 주소에는 Base58Check 같은 내장 체크섬이 없다(그냥 16진수 hex 문자열이라).
대신 EIP-55라는 표준으로, 주소의 각 hex 글자를 대문자/소문자로 섞어서(주소 해시값 기반으로) 오타 체크섬을 흉내낸다. 0xabc...랑 0xAbC...가 대소문자만 다른데 이게 사실은 체크섬 역할을 한다는 거, 의외로 모르는 사람 많다. 🤓
(이거는 비탈릭이 개발한 ㄹㅇ감사한 기능이라고 생각하면 된다. 딱 한글자 오타로 인해 다른데로 돈이 증발해 주는것 막는 것이 EIP-55라고 보면 된다[근데 비트코인은 처음부터 체크섬이 있었다...]. 실제로 EOA로 입금할 때 뒤에 1글자 아무렇게나 바꾸면 invalid 주소라서 보내지지 않는다고 나온다!!)
여기까지가 "내 계정을 대표하는 이름표를 어떻게 만드냐"의 이야기.
근데 이름표만 있으면 뭐하나, 이 이름표 뒤에 실제로 뭐가 붙어있는지가 중요하다. 다음 얘기로 넘어가자. ➡️
🌳 2. 그 주소는 어디에 저장되나 - 머클 패트리샤 트리 & 월드 스테이트

이더리움 노드한테 "0xabc... 주소 잔고가 얼마야?"라고 물으면, 노드는 대체 어디서 이 답을 찾아올까?
정답: 월드 스테이트(World State)라는 거대한 트리 구조 안에서 찾아온다. 🌲
🟢 2-1. 패트리샤 트리 + 머클 트리 = MPT
이더리움은 이 상태를 머클 패트리샤 트리(Merkle Patricia Trie, MPT)라는 구조로 관리한다. 이름부터 겁나는데, 뜯어보면 두 아이디어를 합친 거다.
- 패트리샤 트리(Patricia Trie): 키(주소를 Keccak-256으로 한 번 더 해싱한 값)를 니블(4비트, 반 바이트) 단위로 쪼개서 트리를 타고 내려가는 구조. 공통 접두사(prefix)를 공유하는 노드들을 압축해서 저장 공간을 아끼고 탐색도 빠르게 만든다.
- 머클 트리(Merkle Tree): 모든 하위 노드의 해시를 계속 위로 합쳐 올려서, 최종적으로 루트 해시 하나(stateRoot)로 전체 트리 상태를 압축 표현한다.
이 둘을 합쳐놓으니까, 블록 헤더에 이 stateRoot 해시 하나만 박아놔도 "이 시점에 전 세계 모든 계정의 잔고, 논스, 컨트랙트 코드, 스토리지 상태가 전부 이거였다"는 걸 암호학적으로 증명할 수 있다. 트리 안의 데이터 단 1비트라도 바뀌면 루트 해시가 완전히 달라지니까, 위변조를 시도하는 순간 바로 들통난다. 🚨
🟠 2-2. 비트코인 머클루트랑 뭐가 다른데?

여기서 헷갈리기 쉬운 포인트가 하나 있다. 비트코인도 블록 헤더에 merkle root 필드가 있는데, 얘랑 이더리움 stateRoot랑 목적이 다르다.
| 🟡 비트코인 Merkle Root | 🔵 이더리움 State/Tx/Receipt Root | |
|---|---|---|
| 담고 있는 것 | 그 블록에 포함된 트랜잭션들만의 요약 | 전 세계 모든 계정의 현재 상태 전체(stateRoot) + 그 블록의 트랜잭션(transactionsRoot) + 실행 결과(receiptsRoot), 총 3개 |
| 구조 | 단순 이진 머클 트리 | 머클 + 패트리샤(수정/조회에 최적화된 구조) |
| 의미 | "이 블록에 이 트랜잭션들이 포함됐다"는 증명용 | "이 시점의 전체 계좌 잔고/상태가 이거였다"는 증명 + 트랜잭션 이력 증명 |
즉 비트코인 머클루트는 "블록 하나에 대한 스냅샷"이고, 이더리움의 stateRoot는 "체인 전체 상태에 대한 누적 스냅샷"이라 성격이 다르다. 이더리움이 "월드 컴퓨터"를 표방하는 이유가 여기 있다. 매 블록마다 전 세계 상태 전체가 새로 확정되는 구조라서 그렇다.
🔴 2-3. 그래서 이거 실제로 geth 켜놓으면 어디 저장되는데?
이론만 하면 재미없으니까, 실제로 geth 클라이언트로 풀노드 동기화 돌려본 사람 기준으로 폴더 뜯어보자. 기본 데이터 디렉토리는 리눅스 기준 ~/.ethereum/ 이고, 안에 이런 구조가 있다. 💾

~/.ethereum/
└── geth/
├── chaindata/ ← 진짜 핵심, LevelDB(혹은 PebbleDB) 기반 KV 스토어
├── lightchaindata/
├── nodes/ ← 피어 디스커버리용 노드 테이블
└── ...
여기서 chaindata가 우리가 얘기한 그 트리들이 실제로 박혀있는 곳이다. 근데 여기서 중요한 오해 하나 짚고 가자. 주소 하나당 파일 하나씩 있는 게 아니다. MPT의 각 노드(브랜치 노드, 리프 노드 등)는 그 노드의 RLP 인코딩값을 Keccak-256으로 해싱한 값을 키로 삼아서, chaindata라는 하나의 거대한 Key-Value DB 안에 통째로 때려박힌다.
즉 구조는 이렇다.
Key = Keccak256(RLP-encoded 노드 데이터)
Value = RLP-encoded 노드 데이터 (자식 노드들의 해시를 담고 있거나, 최종 리프면 계정 정보를 담고 있음)
그래서 stateRoot 하나만 알면, 그 값을 키 삼아 chaindata에서 루트 노드를 꺼내고, 거기 담긴 자식 해시로 또 조회하고, 이걸 리프 노드(계정 데이터: nonce, balance, storageRoot, codeHash)까지 반복해서 타고 내려가는 식으로 조회가 이루어진다. 참고로 최근 geth는 이 트리 탐색 오버헤드를 줄이려고 state snapshot이라는 걸 별도로 chaindata 안에 flat key-value 형태(주소 해시 → 계정 정보 direct mapping)로 캐싱해두기도 한다. (--snapshot 옵션, 기본 활성화) ⚡
정리: 1번에서 만든 그 주소는, 이 chaindata KV스토어 안 트리 구조에서 내 데이터가 박혀있는 리프 노드로 가는 "경로(키)" 역할을 하는 거다. 주소 = 이름표가 아니라 주소 = 좌표에 더 가깝다는 얘기.
자, 그럼 이 상태를 바꾸는 건 누가, 어떤 규칙으로 하는가? 3번으로 넘어간다. ➡️
⚙️ 3. 상태를 바꾸는 자, EVM - 그리고 그걸 복붙한(?) 자식들

이더리움 노드들은 전 세계에 흩어져있는데, 얘네가 트랜잭션 하나 처리했을 때 다들 정확히 똑같은 결과를 내야 한다. 안 그러면 체인이 쪼개진다. 💥
여기서 등장하는 게 EVM (Ethereum Virtual Machine)이다. 이름 그대로 가상 머신인데, 이게 좀 특이한 게
- 🔁 튜링 완전(Turing-complete)하다. 반복문 돌릴 수 있다는 소리다 (물론 가스비 때문에 무한루프는 못 돌린다, 지갑 거덜난다).
- 🎯 결정론적(Deterministic)이다. 같은 입력이면 지구 반대편 노드에서 돌려도 무조건 같은 출력이 나와야 한다.
- 🔄 상태 기계(State Machine)다. 트랜잭션 하나 = "월드 스테이트를 A에서 B로 바꾸는 함수 실행" 그 자체다.
즉 EVM은 2번에서 본 그 거대한 트리를, "정해진 규칙대로만" 바꿀 수 있게 만드는 실행 규칙 그 자체다. 이 규칙을 어기는 트랜잭션은 노드가 아예 씹어버린다.
🟠 3-1. 왜 이게 이더리움만의 전유물이 아니게 됐나
EVM의 실행 규격은 Ethereum Yellow Paper(이더리움 황서)라는 공식 스펙 문서로 처음부터 공개되어 있었고(대학원 1주차 때, 이거부터 읽음..), go-ethereum(geth) 같은 레퍼런스 구현체도 오픈소스로 뿌려졌다. 즉 누구든 이 스펙만 그대로 따라 구현하면 "이더리움 스마트컨트랙트가 그대로 돌아가는 체인"을 만들 수 있다는 소리다. 이게 왜 남는 장사냐면,
- ✅ 솔리디티로 짠 스마트컨트랙트 코드를 그대로 복붙해서 배포 가능
- ✅ 메타마스크 같은 지갑이 수정 없이 바로 붙음
- ✅ 이더리움 개발자 풀을 그대로 흡수 가능
내가 대학원 다닐 때 클레이튼(Klaytn, 지금은 핀시아랑 합쳐져서 카이아(Kaia)로 리브랜딩) 위에서 프로젝트 굴려본 적이 있는데, 그때 진짜 체감한 게 이 부분이다.
컨센서스 알고리즘(Klaytn은 이스탄불 BFT 계열, 이더리움은 PoS)이나 네이티브 토큰 이름 같은 건 다르지만, EVM 바이트코드 레벨/오피코드 레벨에서는 사실상 이더리움이랑 100% 호환이다.
"명령어의 이름만 다르다"는 게 아니라 오피코드(PUSH1, SSTORE, CALL 같은 것들) 자체가 이더리움이랑 똑같은 이름, 똑같은 동작으로 그대로 쓰인다. 그러니 솔리디티 코드 그대로 컴파일해서 배포만 하면 끝이었다. 왜 다들 EVM 호환을 표방하는지 그때 확실히 체감했다. 💡
그리고 재밌는 사실 하나, 비탈릭은 2014년에 이 이더리움이라는 아이디어로 World Technology Award (IT Software 부문)를 받았는데, 그 해 같은 부문 후보였던 마크 저커버그를 제치고 수상했다. 🏆
백서 낸 지 몇 달 안 된 시점에 이 정도 주목을 받았다는 게, 지금 와서 보면 그럴 만했다 싶기도 하다.
(아비트럼 니트로 스택 같은 L2 얘기는 나중에 내가 만든 아비에버 검증편에서 따로 깊게 판다. 여기선 EVM이 "표준"이 됐다는 것까지만 짚고 간다.)
🔵 3-2. 사이드체인 → L2 → 다시 독립, 폴리곤 사례

폴리곤(Polygon) 얘기 안 하고 넘어갈 수가 없다. 근데 여기서 하나 정정하고 가야 할 게 있다. 폴리곤의 진화 순서는 사실 "스마트컨트랙트 → L2 → 사이드체인"이 아니라, 정반대에 더 가깝다.
- 2017~2020, Matic Network 시절: 처음부터 Plasma 프레임워크 + 자체 PoS 검증자 집합을 결합한 이더리움 사이드체인으로 출발했다. 이더리움에 주기적으로 체크포인트만 찍고, 실제 트랜잭션 처리는 독자적인 검증자들이 담당하는 구조다.
- 2021, Polygon 리브랜딩: 단일 체인에서 "멀티 스케일링 솔루션 모음"으로 전략을 확장한다. 여전히 메인은 Polygon PoS(사이드체인)였다.
- 2022~2023, zkEVM 등장: 여기서 처음으로 진짜 L2 롤업(Polygon zkEVM)이 라인업에 추가된다. 영지식 증명으로 이더리움에 상태를 검증받는, 사이드체인보다 훨씬 이더리움에 밀착된 방식이다.
- 2023~현재, Polygon 2.0 / AggLayer: 이제는 PoS 체인, zkEVM, CDK로 만든 커스텀 체인들을 AggLayer라는 집계 레이어로 묶어서 "여러 체인이 마치 하나처럼 유동성을 공유하는" 방향으로 가고 있다.
즉 순서를 정리하면 사이드체인으로 시작 → 나중에 L2(zkEVM) 라인업 추가 → 지금은 여러 체인을 하나로 묶는 집계 레이어(AggLayer)로 확장이 맞는 흐름이다. "스마트컨트랙트로 시작했다"는 표현은 조금 부정확한데, 아마 폴리곤이 초기에 "이더리움의 확장 솔루션(스마트컨트랙트 기반 체크포인트 브릿지)"으로 소개됐던 걸 기억하시는 거라면 이해는 간다. 근데 정확히는 처음부터 별도 체인(사이드체인)이었고, L2(zkEVM)는 나중에 추가된 옵션이었다는 게 맞는 순서다.
🍽️ 사이드체인이랑 L2는 대체 뭐가 다른데?

폴리곤 얘기하면서 "사이드체인이었다가 나중에 L2(zkEVM)가 추가됐다"고 썼는데, 이 둘이 뭐가 다른지 감이 안 잡히는 사람 많을 거다. 겉보기엔 둘 다 "이더리움 옆에 붙어서 빠르고 싸게 돌아가는 체인"처럼 보이는데, 근본적인 차이는 딱 하나다.
"이더리움 메인넷의 보안을 실제로 물려받느냐, 아니면 자기 힘으로 따로 서있느냐"
이거 맛집 비유로 풀면 훨씬 쉽다.
이더리움(L1)은 고든램지(런던) 본점이라고 치자. 🍳 맛도 검증됐고 신뢰도도 최고인데, 문제는 자리가 없다. 맨날 예약 꽉 차고, 웨이팅 걸면 가스비(웨이팅비) 폭탄 맞는다.
그래서 다들 "L2인 고든램지 뉴욕 분점 가세요" 이런다. 가보면 확실히 빠르고 자리도 잘 나온다. 근데 이 분점은 아무렇게나 운영되는 게 아니다. 본점(L1)이 정한 레시피, 재료 검수 기준을 그대로 따라야 하고, 그날 조리한 내역(트랜잭션 데이터/증명)을 매일 본점에 보고해서 검수를 받는다. 조리를 잘못했다는 게 드러나면 본점이 그 결과를 뒤집을 권한도 갖고 있다(fraud proof/validity proof). 그러니까 "분점"이지만 본질적으로 본점 브랜드의 신뢰를 그대로 물려받는 거다(우리나라의 프랜차이즈 음식점들도 엄격한 룰이 있듯이..).
다만 뭔가 본점이 아니라서 오는 미묘한 찝찝함은 있다. "진짜 본점 맛이 맞나?(다들 본점 가서 먹고 싶잖아)" 하는.... 🤔
그래서 대안을 찾아보니 "사이드체인인 솔트배 본점 가보세요"라는 얘기도 들린다. 🍚 여긴 아예 다른 브랜드다. 이름만 얼핏 비슷하게 들리거나 근처에 있다 뿐이지, 주방장도 다르고 레시피 검수도 자기들끼리 알아서 한다.
고든램지 본점이랑은 그냥 "손님 카드로 결제하면 양쪽 다 포인트 적립되는" 제휴(브릿지) 정도만 걸려 있을 뿐, 본점이 이 가게 위생 상태를 직접 검수하러 오지 않는다. 그러니까 여기서 사고가 나면(주방장들이 담합해서 재료를 속인다든지) 고든램지 본점 브랜드는 아무 책임도 안 지고, 손해는 그 가게 손님이 오롯이 떠안는다 ⚠️ (한마디로 그냥 동종 업계이면서 아주 비슷한 음식점 이란것임).
| 🍚 사이드체인 (솔트배 본점) | 🍳 L2/롤업 (고든램지 뉴욕 분점) | |
|---|---|---|
| 보안 출처 | 자체 검증자 집합 (자기 주방장) | 이더리움 L1 (본점 레시피 검수) |
| 이더리움과의 연결 | 브릿지 + 주기적 체크포인트 (포인트 제휴 수준) | 매 배치마다 데이터/증명을 L1에 기록 (매일 본점 보고) |
| L1이 하는 일 | 거의 없음(자산 브릿지 정도) | 최종 분쟁 판정(fraud proof) 또는 증명 검증(validity proof) |
| 신뢰 가정 | 사이드체인 검증자를 신뢰해야 함 | 수학적 증명 또는 L1 스마트컨트랙트를 신뢰하면 됨 |
| 예시 | 초기 Matic Network, Polygon PoS | 아비트럼, 옵티미즘, 폴리곤 zkEVM |
그래서 아까 폴리곤 연혁에서 "사이드체인으로 시작해서 나중에 zkEVM(L2)이 추가됐다"는 게, 사실 이 회사가 "자체 브랜드로 운영하던 솔트배 본점"에다가 "본점 레시피를 그대로 물려받는 뉴욕 분점"을 나중에 라인업으로 얹은 거라고 이해하면 된다. 둘 다 "저렴하고 빠르다"는 겉모습은 비슷하지만, 뭔가 크게 잘못됐을 때 누가 최종적으로 책임지느냐가 완전히 다르다는 거다.
🟢 3-3. 테더의 stable.xyz - 자체 가스 이코노미를 세우려는 흐름

폴리곤이 결국 "이더리움 생태계 안에서 계속 남되, 자체 인프라를 키우는" 쪽으로 진화했다면, 최근 테더(Tether)가 만든 Stable이라는 체인은 아예 처음부터 독립적으로 설계된 케이스다. 💵
비트파이넥스(Bitfinex)와 테더가 같이 밀고 있는 프로젝트인데, USDT를 네이티브 가스로 써서 전송 수수료를 사실상 0으로 만들고, EVM 완전 호환으로 설계했다. 2025년 말 기준으로 이미 메인넷을 띄웠다.
폴리곤과 100% 같은 진화 경로를 밟은 건 아니지만(Stable은 이더리움 L2에서 출발한 게 아니라 처음부터 독자 L1으로 설계됐다), 밑바닥에 깔린 동기는 확실히 닮아있다. 한마디로 지금 배포 되어 있는 이더리움 USDT 컨트랙트를 운용하는데 있어서, 이더리움의 메인넷 가스비가 너무 비싸니까 스테이블코인 발행사가 아예 자기 생태계를 스스로 세워버리자는 흐름.
폴리곤이 "이더리움을 확장하는 인프라"로 포지셔닝했다면, 테더는 아예 "USDT 유통을 위한 전용 고속도로"를 자기 손으로 깔아버린 셈이다. 스테이블코인 발행사 입장에서 남의 체인 가스비에 휘둘리기 싫다는 니즈가, 결국 이런 식으로 독자 체인 러시를 만들어내고 있는 거다.
정리하면: 주소(1번)는 트리 안의 좌표(2번)를 가리키고, EVM(3번)은 그 좌표의 값을 바꾸는 유일하게 합법적인 방법이다.
근데 문제는, 트랜잭션을 "어떤 순서로" 처리하냐가 정해져 있는 게 아니라는 거다. 그리고 이 순서 하나가 돈이 된다. 💰
🟣 근데 어떤 놈은 아예 분점도, 제휴점도 필요 없다 - 솔라나

여기서 예외 케이스 하나. 솔라나(Solana)는 이 비유에 아예 안 낀다. 왜냐면 솔라나는 애초에 "본점 하나가 손님을 다 감당할 수 있게" 설계된 슈퍼 풀타임 본점이기 때문이다. 🏪
이더리움이 분점(L2)이나 제휴점(사이드체인)을 필요로 하는 근본 이유는, 본점 혼자서는 초당 처리량이 딸리기 때문이다(합의 구조, 블록 시간, 가스 한도 등의 이유로). 근데 솔라나는 애초에 병렬 트랜잭션 처리(Sealevel), 짧은 슬롯 타임, 자체 시계(Proof of History) 같은 걸로 "본점 혼자서 초당 수만 건을 처리한다"는 걸 목표로 설계됐다. 그러니까 손님(트랜잭션)이 몰려도 "옆 가게 가서 드세요" 할 필요 없이, 그냥 본점 매장을 넓게(단일 글로벌 상태, 단일 체인) 지어놓고 혼자 다 받아버리는 전략이다.
물론 이게 공짜는 아니다. 본점 하나가 다 받는 만큼, 그 본점 자체가 뻗으면(실제로 솔라나는 과거 여러 차례 네트워크 장애(중단)를 겪은 적이 있다) 대안이 없다는 게 트레이드오프다. ⚠️
반면 이더리움 생태계는 본점이 느려도 분점/제휴점이 여러 개라 트래픽이 분산되는 대신, 우리가 위에서 본 것처럼 "분점이냐 제휴점이냐"에 따라 신뢰 구조가 복잡해지는 거고(이더리움은 지금까지 출시 이후 네트워크 '완전한' 중단은 된 적이 없다, 사소한 사고는 약간 있었음. 다른 잡체인들에 비하면 완벽한 운영 수준임).
💸 4. 순서 전쟁, MEV - 그리고 3ms에 목숨 거는 놈들

MEV, Maximal Extractable Value. 풀어 말하면 "블록에 트랜잭션을 어떤 순서로 넣느냐를 조작해서 뽑아낼 수 있는 최대 이익"이다.
블록 프로포저(과거엔 채굴자, 지금은 검증자)는 어떤 트랜잭션을 넣을지, 어떤 순서로 넣을지 상당한 재량권이 있다. 이게 무슨 의미냐면,
- 🥪 누가 큰 스왑 트랜잭션을 멤풀에 던졌다 → 이걸 먼저 발견한 봇이 그 앞에 자기 거래를 끼워넣고(프론트러닝), 뒤에도 하나 더 끼워넣어서(백러닝) 가격 차이를 그대로 삼켜버린다. 이게 그 유명한 샌드위치 공격이다.
- ⚖️ 두 개의 DEX 사이에 가격 차이가 발생하면, 그 틈을 먼저 캐치해서 먼저 체결시키는 놈이 차익을 가져간다.
이게 다 속도 싸움이다. 그리고 이 속도 싸움 얘기를 하면 나는 꼭 영화 하나가 떠오른다. 바로 "허밍버드 프로젝트(The Hummingbird Project)"다. 🎬
영화 내용을 짧게 말하면, 뉴욕 증권거래소랑 시카고 사이에 초고속 광케이블을 직선으로 뚫어서 신호 전달 시간을 단 몇 밀리초 줄이려고 산을 뚫고 목숨 걸고 공사하는 얘기다. 저 영화 볼 때 "겨우 몇 ms 줄이려고 저 난리를 치나" 싶었는데, MEV 판을 알고 나니까 그게 하나도 과장이 아니었다.
이더리움 MEV 봇들도 정확히 똑같은 짓을 한다. 멤풀 감지 → 시뮬레이션 → 가스비 경쟁(우선순위 뇌물, priority fee)까지 전부 밀리초 단위 레이턴시 싸움이다. 남들보다 0.1초 늦게 멤풀 정보 받으면 그 기회는 이미 다른 봇이 삼켜버린 뒤다. 물리적 서버 위치를 검증자 노드랑 최대한 가깝게 두려고 하는 것도, 저 영화에서 광케이블 직선으로 뚫으려던 거랑 본질적으로 같은 동기다. "빛의 속도를 이길 순 없으니, 빛이 이동하는 거리 자체를 줄이자"는 논리. ⚡
🎰 MEV의 매력 - 유한책임 무한쾌락

이 바닥을 한마디로 요약하면 "유한책임 무한쾌락"이다. 무슨 소리냐면, MEV 거래 특성상 담보 없이도 플래시론(flash loan) 같은 걸로 100배, 200배짜리 레버리지를 그냥
😲 "무담보" 😲
로 땡겨 쓸 수 있다.
트랜잭션 하나 안에서 빌리고 갚는 게 원자적으로 끝나기 때문에, 실패하면 그냥 트랜잭션 자체가 롤백되고 수수료(가스비)만 날리는 구조(근데 레버를 크게 땡길 수록 수수료가 기하급수적으로 커진다)다. 즉 다운사이드는 딱 가스비 몇 푼으로 제한(유한책임)돼 있는데, 성공하면 레버리지 배수만큼 그대로 이익이 뻥튀기(무한쾌락)된다. 이 비대칭성이 봇 개발자들을 계속 이 판으로 끌어들이는 이유다.
근데 여기 낭만적인 얘기만 있는 건 절대 아니다. 이 바닥은 사실상 봇들끼리의 전쟁터다. 개인이 눈으로 차트 보고 손으로 트랜잭션 날려서 여기 뛰어들면,
결과는 무조건 100전 100패다.
진짜다. 레이턴시, 인프라, 시뮬레이션 정교함, 가스비 경매 전략까지 이미 전문 서치어(searcher)들이 몇 년째 정교하게 다듬어놓은 판이라, 개인이 손으로 낄 자리가 사실상 없다. "나도 MEV로 한몫 잡아볼까"는 이 바닥 구조를 모르다 보니 유혹에 휘둘리는 것이다. 🙅
물론 지금은 MEV-Boost, PBS(Proposer-Builder Separation) 같은 구조로 이 문제를 어느 정도 표준화/투명화하려는 움직임이 있긴 한데, 그 얘기는 파트가 길어지니까 다음에 따로 파보자.
🏁 마무리
정리하면 이렇다.
- 🔑 니모닉/개인키에서 나온 주소는
- 🌳 월드 스테이트 트리(MPT) 안에서 내 데이터가 있는 좌표를 가리키고
- ⚙️ 그 좌표의 값은 EVM이라는 규칙에 따라서만 바뀌는데, 이 규칙이 표준화된 덕분에 폴리곤이든 클레이튼/카이아든 테더 스테이블이든 각자 사정에 맞게 이걸 갖다 쓰고 있고
- 💸 그 변경 "순서"를 두고 봇들이 MEV라는 이름으로 총성 없는 전쟁을 벌이고 있다
비탈릭이 이걸 처음부터 다 계산하고 설계했는지, 아니면 하다 보니 이렇게 판이 커진 건지는 나도 모른다. 근데 확실한 건, 지금 이 판 위에서 우리 모두가 놀고 있다는 거다(Web3라는건 '사실상' 이더리움이라고 볼 수 있는 이유는 대형 컨트랙트(L2 관련 수백개의 컨트랙트들, Uniswap...)들이나 주요 컨트랙트(USDT, USDC...)들은 99.99% 일단 이더리움에는 다 배포되어 있기 때문이다. 추가로 다른 체인도 배포해서 운영할 뿐).
다음 파트에서는 내가 직접 포크해서 굴리고 있는 이더에버(ETE) 체인에서 이 이론들이 실제로 어떻게 구현되는지, 특히 블록스카우트에 보상 표기를 붙이면서 겪었던 삽질을 풀어볼 예정이다.🔥
질문은 언제나 환영 🙌
🛰️ 서버맨의 공간들
'EverChain(BlockChain) > EtherEver' 카테고리의 다른 글
| [EtherEver] 🧱 격세지감의 이더리움 개발 스택 PART1 (0) | 2026.09.05 |
|---|---|
| [EtherEver] 🤖 AI가 지갑을 갖는 시대 — x402, x401 그리고 초당 30건의 비밀 (0) | 2026.08.15 |
| [EtherEver] 비트코인은 2,100만 개, 이더리움은 몇 개? (0) | 2026.08.08 |
| [EtherEver] 현금과 상품권 중 뭘 가질까? (1) | 2026.08.02 |
| [EtherEver] 이더에버란 무엇인가? (0) | 2026.07.25 |