체인은 검증을 멈추고 — 증명이 존재하는지만 확인한다
EIP-8288(재귀 STARK 멤풀, 비탈릭의 "증명 특이점", I-star 포크 겨냥)은 한 가지를 바꿉니다: 이더리움 실행이 서명·증명을 **검증**하지 않고, 어떤 주장이 성립한다는 **증명이 존재하는지**만 확인합니다 — 실제 검증은 전부 **멤풀**로 밀어 넣고, 노드가 매 틱마다 하나의 재귀 STARK로 집계합니다. tx는 *의존성 프레임*("해시 M이 SPHINCS+ 공개키 P로 서명됨" 같은 주장)을 싣고, 봉투가 실제 서명/STARK를 싣고, 멤풀 노드가 그것들을 재귀적으로 증명해 STARK 하나를 방송합니다. 온체인 비용은 **STARK 하나(~100–300 kB) + 주장당 96바이트** — 서명도, 검증도 아닙니다. 이 한 번의 재배치가 양자내성 서명, 값싼 프라이버시, EVM 변경 없는 새 방식, 프라이빗 계정 추상화를 해금합니다.
이 페이지는 카드에 적힌 내용을 펼쳐 보여줄 뿐입니다 — 돌아가는 코드도, 열어볼 데모도 아직 없습니다. 무엇을 왜 만들려는지가 아래에 있습니다.
구현이 아니라 정독 + 한 문장의 양면 재작성입니다. EIP-8288을 읽고, 구체적 주장 하나 — 예: *"[tx sighash]가 sload(0)의 공개키로 검증됨"* — 를 잡아 갈라지는 두 반쪽을 쓰세요: (1) **프레임** 쪽 — 실제 서명/STARK가 실행 경로 밖 의존성 프레임에 존재; (2) **컨트랙트** 쪽 — 오늘의 `require(verify(sig, pubkey, hash))`가 `require(frameAsserts(statement))`가 되고, 컨트랙트는 이제 장부 기록만. 그다음 대역폭 유계를 체감하려면 멤풀 집계 루프를 종이에 스케치: 매 틱(~500ms) 새 봉투 모으기, 만료 버리기, 모든 의존성을 재귀 STARK로, STARK 하나 방송; 아웃바운드는 tx 수와 무관하게 틱당 STARK 하나. 출처: eips.ethereum.org/EIPS/eip-8288 및 '증명 특이점' 강연. 미래 포크를 겨냥한 초기 초안 — 수치(STARK ~100–300 kB, 주장당 96바이트, 가스)와 포크 상태는 인용 전 EIP로 확인.
기술 노트
각 항목이 실제로 무엇을 보여주고 어떻게 동작하는지 — 위 카드보다 자세한 기술 설명입니다.
목적: **전체 아이디어는 재배치입니다: 장부 기록이 아닌 모든 비용을 핵심 실행 경로 밖으로 옮겨 멤풀로 분할한다.** 오늘 컨트랙트가 서명이나 ZK 증명을 검사하면 세 비용이 온체인에 떨어집니다: 검증 실행 **가스**, **데이터**(SPHINCS+ 양자내성 서명은 ~3 kB, 영원히 온체인), 그리고 **정치** — EVM이 각 방식을 네이티브 지원해야 해서 새 알고리즘 추가가 거버넌스 싸움. EIP-8288은 실행이 *"주장 X가 성립한다는 증명이 존재하나"*만 확인하게 해 셋을 다 없앱니다. 실제 서명/증명은 멤풀에서 검증되고 하나의 재귀 STARK로 집계됩니다. **메커니즘은 의존성 프레임 + 틱 기반 집계.** 트랜잭션은 주장을 프레임에 나열하고, 봉투가 각각의 실제 서명/STARK를 싣고, 멤풀 노드가 루프를 돕니다 — ~500ms마다 새 봉투 모으기, 만료 버리기, 모든 의존성을 하나의 STARK로 재귀 증명, 방송. 블록 빌더는 *그냥 또 하나의 멤풀 노드*: 포함할 부분집합을 STARK로 만들어 블록에 넣음. 대역폭이 **유계** — 노드당 틱당 STARK 하나 + 각 tx 한 번 방송 — 이 성질이 전체를 확장 가능하게 합니다. **재배치에서 네 해금이 떨어지고, 그 안에 건축적 결정 하나가 숨습니다.** (1) 양자내성 서명이 싸짐 — ~3 kB가 온체인에 안 감. (2) 양자내성 프라이버시가 ~30만 가스(양자내성으론 ~1000만)에서 수만 대로. (3) 모든 방식 — Falcon, ML-DSA, 격자/코드/아이소제니 — 을 클라이언트에서 STARK로 감싸 지원, EVM 변경 없음, '내 알고리즘 지원해줘' 정치 종료. (4) 프라이빗 계정 추상화: 계정 로직을 비공개 온체인 위치에 유지하고, *모든* 상태 — 계정·DeFi 포지션·프라이버시 노트 — 의 소유권을 어느 객체인지 안 드러내고 한 tx로 변경. 숨은 결정: 재귀 STARK는 주장을 표현할 공유 **언어(ISA)**가 필요하고 유력 후보가 **RISC-V** — 그래서 이걸 채택하면 사실상 이더리움이 RISC-V를 표준 ISA로 축복하는 것, 멤풀 변경보다 어쩌면 더 큰 장기 약속. **카탈로그 안에서의 자리.** 암호화 멤풀의 '반대 이유' 쌍둥이입니다: 둘 다 멤풀을 중계 이상으로 만들지만, 암호화는 **내용을 숨기고**(안티-MEV, 메타데이터를 흘림 — `what-encryption-does-not-hide`), EIP-8288은 **검증을 경로 밖으로**(비용+양자내성) 옮겨 집계합니다. 가져갈 정직한 질문 하나: 이건 신뢰와 비용을 옮기지 없애지 않는다 — 집계 노드는 누가 돌리나, STARK가 늦으면 liveness 가정은 무엇인가, 하류에서 '증명이 존재한다'가 *어느* 주장을 증명했는지 확인 없이 신뢰되는 일은 없나?
동작 방식: ### 재배치, 한 표로 | 오늘의 비용(온체인) | EIP-8288에서 | |---|---| | 서명/증명 검증 가스 | 사라짐 — 실행은 증명 존재만 확인 | | 서명/증명 데이터(~3 kB SPHINCS+) | 온체인 아님 — 멤풀 STARK 안 | | EVM이 방식을 네이티브 지원해야 | 아니오 — 클라이언트에서 STARK로 감쌈 | | — | STARK 하나(~100–300 kB) + 주장당 96바이트 | ### 흐름 1. **tx**가 *의존성 프레임*을 실음: 주장 목록("해시 M이 SPHINCS+ 공개키 P로 서명", "데이터 D가 검증키 V를 만족"). 2. **봉투**가 각 주장의 실제 서명/STARK를 실음. 3. **멤풀 노드 루프**(~500ms 틱): 새 봉투 모으기 → 만료 버리기 → 모든 의존성을 재귀 STARK로 → 그 STARK 담은 멀티-tx 봉투 하나 방송. 4. **블록 빌더** = 그냥 또 하나의 멤풀 노드: 포함할 tx를 STARK로 만들어 블록에. 5. **컨트랙트** 뒤집힘: `verify(sig, …)` → `프레임이 주장을 단언하는지 확인`. 장부 기록만. ### 네 해금 | 해금 | 이유 | |---|---| | 값싼 양자내성 서명 | ~3 kB SPHINCS+ 서명이 체인에 안 닿음 | | 값싼 양자내성 프라이버시 | ~30만(양자내성 ~1000만) 가스 → 수만 대 | | EVM 변경 없는 모든 방식 | Falcon / ML-DSA / 격자 / 코드 / 아이소제니 — STARK로 감쌈 | | 프라이빗 계정 추상화 | 모든 상태 소유권을 한 tx로, 어느 객체인지 숨김 | ### 묻힌 결정 재귀 STARK는 주장을 표현할 공유 ISA가 필요 — 유력 후보 **RISC-V**. EIP-8288 채택은 사실상 RISC-V(또는 선택된 대체)를 표준 이더리움 ISA로 채택하는 것. 교차: `encrypted-mempool`·`what-encryption-does-not-hide`(다른 '멤풀이 중계 이상' 재설계 — 내용 숨김 vs 검증 경로 밖으로), `pbs`(빌더가 '그냥 또 하나의 멤풀 노드'로 제안자-빌더 분리 확장), `merkle-vs-verkle`(같은 'The Verge / 증명이 온체인 작업 대체' 계보), `l1-zkevm-optional-proofs`(정산 프리미티브로서의 증명), `receipt-is-not-settlement`·`liquid-issuance-not-authorization`(주장이 성립한다는 증명은 *어느* 주장인지의 검사가 아님 — 실제로 증명한 것을 신뢰하라).