Anvil 은 프로토콜을, 테스트넷은 체인을, 지갑만이 사용자를 증명한다
L2 를 직접 만드는 것은 **응용이 운영하는 층이 아니라 빌려 쓰는 층**을 배우는 일이라, 공부 깊이는 **"임대 조건을 읽을 만큼"** 이면 됩니다. 대신 만들 값어치가 있는 것은 **지원 매트릭스**입니다 — **"EIP-7702 를 지원한다"** 는 **서로 독립된 사실 셋**을 한 문장으로 말한 것이고, **사용자가 실제로 할 수 있는지를 정하는 것은 세 번째뿐**이기 때문입니다.
이 페이지는 카드에 적힌 내용을 펼쳐 보여줄 뿐입니다 — 돌아가는 코드도, 열어볼 데모도 아직 없습니다. 무엇을 왜 만들려는지가 아래에 있습니다.
아직 범위 미정이고, **한 번의 빌드가 아니라 세 번의 통과**입니다. **첫째, 올바른 하드포크로 띄운 Anvil** — 필요하면 공개 체인을 fork 해서 실제 컨트랙트 상태를 끌어옵니다. **authorization 튜플, 위임, 해지, 그리고 같은 authorization 을 다른 chain id 에서 재생하면 무슨 일이 생기는지**를 돌려 봅니다. 이 통과의 결과물은 **데모가 아니라 제품이 기대는 의미론을 고정하는 테스트 스위트**입니다. **둘째, 그 포크가 들어간 공개 테스트넷에서 실제 RPC 로 같은 트랜잭션을 보냅니다** — 그리고 **Anvil 이 구조적으로 만들 수 없는 숫자 둘**을 기록합니다: **수수료 중 L1 데이터 몫**, 그리고 **"포함됨"과 "확정됨" 사이의 실제 시간**. **셋째, 그리고 제품을 결정하는 것은 이것입니다** — **지갑 × 체인 매트릭스**에 네 칸: **지갑이 authorization 을 애초에 받는가, 무엇을 위임하는지 보여주는가, 위임 대상 주소를 표시하는가, 사용자가 나중에 해지할 수 있는가.** **스크린샷을 남기십시오** — 실패는 버그 리포트가 아니라 **제품 결정**입니다. 7702 에 대한 지갑 지원은 주 단위로 바뀌므로, **이 표를 포함해 어떤 표든 원문에서 다시 확인해야 하는 것으로 다루십시오.**
기술 노트
각 항목이 실제로 무엇을 보여주고 어떻게 동작하는지 — 위 카드보다 자세한 기술 설명입니다.
목적: **L2 를 직접 만들지 말라는 조언은 맞고, 이유는 "시간 대비 효용"보다 날카롭습니다.** L2 의 **시퀀서·데이터 가용성·증명 시스템은 정확히 응용 개발자가 빌려 쓰는 층**입니다. `choosing-a-chain-is-a-lease` 는 **체인을 고르는 것이 임대 계약에 서명하는 것**이고 그 조건 — **누가 시퀀서를 돌리는가, 누가 순서를 바꿀 수 있는가, 떠나는 데 얼마가 드는가** — 이 **아무도 마케팅하지 않는 부분**이라고 주장합니다. 그 프레이밍이 공부 깊이를 정확히 정해 줍니다: **임대 조건을 읽을 만큼 배우고, 건물을 지을 만큼은 배우지 않는다.** 시퀀서, 배처, state root 와 output proposal, L1↔L2 메시징, optimistic 과 validity 의 finality 차이 — **전부 임대 조건**입니다. **그것을 운영하는 것은 다른 직업**이고, 그게 맞는 직업인 네 경우 — **롤업 프로토콜 엔지니어, OP Stack·Orbit 수정, 시퀀서·DA·브리지·fault proof 개발, 회사 앱체인 운영** — 는 **한 가지 성질을 공유합니다: 넷 다 그 층을 빌리는 게 아니라 운영합니다.** **그다음이 카드를 세울 값어치가 있는 부분이고, 놀랄 일이 사는 곳입니다.** **"EIP-7702 를 지원한다"** 는 하나의 사실처럼 읽히지만 **셋**입니다: **프로토콜**이 authorization 과 그 의미론을 정의하고, **체인**이 포크를 활성화해 노드가 그 트랜잭션을 받아들이고, **지갑**이 그 authorization 을 **사람에게 보여주고 서명을 받아낼** 수 있어야 합니다. **서로 다른 사람들이 서로 다른 일정으로 만들고**, **하나가 참인 동안 나머지가 거짓일 수 있습니다.** **Anvil 은 첫째를 주고, 테스트넷은 첫째와 둘째를 주고, 셋째는 지갑만이 줍니다** — 그리고 **누군가 실제로 쓸 수 있는지를 정하는 것은 셋째**입니다. 이건 `pick-a-signer-not-a-brand` 와 같은 모양입니다 — **브랜드 이름 하나가 실은 네 개의 독립된 공급망**이었고, **무너지는 층은 감사받는 층이 아니었습니다.** **셋째 층은 동시에 내가 통제하지 못하는 층이고, 그건 우연이 아닙니다.** `share-the-code-you-write` 가 규칙으로 적어 뒀습니다 — **내가 쓴 코드는 공유되고, 지켜야 하는 코드는 공유되지 않는다.** **지갑의 서명 UX 는 남의 제품 결정**이고 **남의 릴리스 일정**에 실려 나오며, **내 쪽이 아무리 옳아도 그것을 움직이지 못합니다.** 그러므로 이 작업의 정직한 산출물은 **"7702 가 된다"** 가 아니라 — **되는 지갑의 목록과, 안 되는 지갑에 대한 결정**입니다: **대체 경로를 두거나, 막거나, 기다리거나.** **특히 authorization 에서는 실패 양식이 거절보다 나쁩니다.** authorization 은 **사용자가 서명하도록 요청받는 새로운 객체**이고, 그것을 이해하지 못하는 지갑은 **거절보다 나쁜 일을 할 수 있습니다 — 알 수 없는 덩어리를 보여주고 그래도 서명을 요구하는 것.** 그건 **읽을 수 없는 것을 승인하도록 사용자를 훈련시키는 일**이고, **모든 피싱 흐름이 기대는 습관**입니다. `agentic-intent-veto` 가 지출 한도에 대해 같은 논증을 합니다 — **통과하는 검사가 중요한 검사는 아니다** — 그리고 여기서 그 검사는 **16진수로 보여준 위임을 승인하라고 요청받는 사람**입니다. **그리고 이 모든 것 아래의 일반 규칙: "내 체인에서는 된다"는 블록체인판 "내 컴퓨터에서는 된다"입니다.** **결과를 정하는 환경은 내가 소유하지 않은 환경**이고, **둘째·셋째 통과의 목적 전체가 출시 때가 아니라 일찍 거기 도달하는 것**입니다.
동작 방식: ### 한 문장, 서로 독립된 사실 셋 | 층 | "지원한다"가 뜻하는 것 | 무엇이 증명하나 | 일정을 쥔 쪽 | |---|---|---|---| | **프로토콜** | authorization 과 그 의미론이 정의됨 | 로컬 테스트 스위트 — **Anvil 로 충분** | EIP 프로세스 | | **체인** | 포크가 활성화돼 노드가 트랜잭션을 받음 | 공개 테스트넷의 **실제 RPC** | 그 체인의 운영자 | | **지갑** | **사람에게 보여주고 서명을 받아낼 수 있음** | **지갑, 그리고 그것뿐** | **남의 로드맵** | **하나가 참인 동안 나머지가 거짓일 수 있고**, **채택을 정하는 것은 마지막 줄**이며 — **그게 내가 통제하지 못하는 줄**입니다. ### Anvil 이 구조적으로 보여줄 수 없는 것 | | Anvil | 공개 L2 테스트넷 | 왜 중요한가 | |---|---|---|---| | **포함** | 즉시 채굴, 순서 안 바뀜 | **자기 정책을 가진 시퀀서** | 지연과 순서는 잡음이 아니라 **제품 동작** | | **수수료** | 숫자 하나 | **L2 실행 + L1 데이터** | 로컬에서 싼 트랜잭션이 **calldata 비용에 지배**될 수 있음 (`l1-data-pricing-dimensions`) | | **확정성** | 채굴되면 확정 | **포함 ≠ 확정**, 출금은 기다림 | **"끝났다"가 나와 사용자에게 서로 다른 뜻** | | **지갑** | 없음 | 체인 전환, 서명 UX, 해지 | **누가 쓸 수 있는지를 정하는 층** | | **다른 사용자** | 없음 | 살아 있는 멤풀 | 경쟁과 **혼잡 상황의 실패** | **앞의 셋이 둘째 통과가 존재하는 이유**이고, **넷째가 셋째 통과가 존재하는 이유**이며 **그게 팀들이 건너뛰는 것**입니다. ### 실제 산출물인 매트릭스 | 지갑 × 체인 | authorization 을 받나 | **무엇을 위임하는지 보여주나** | 위임 대상 주소를 표시하나 | 해지 가능한가 | |---|---|---|---|---| | … | 예 / 아니오 | **평이한 문장 / 알 수 없는 덩어리 / 아무것도 안 보여줌** | 예 / 아니오 | 예 / 아니오 | **가운데 칸이 가장 중요하고 가장 덜 채점됩니다.** **거절하는 지갑은 불편**이지만, **16진수를 보여주고 그래도 서명을 요구하는 지갑은 피싱이 굴러가는 그 습관을 사용자에게 가르치고 있는 것**입니다. ### L2 를 직접 만드는 게 맞는 경우 네 경우이고, **한 성질을 공유합니다 — 넷 다 그 층을 빌리는 게 아니라 운영합니다.** - 롤업 프로토콜 엔지니어가 되려 할 때 - OP Stack 이나 Arbitrum Orbit 을 수정할 때 - 시퀀서·DA·브리지·fault proof 를 직접 개발할 때 - 회사 앱체인을 실제로 운영할 때 그 밖에서는 **시퀀서와 증명 시스템은 부품이 아니라 임대 조건**이고, 공부의 수익은 **무엇을 물어야 할지 아는 것**입니다 — `choosing-a-chain-is-a-lease` 가 이미 그것을 **네 줄짜리 term sheet** 으로 만들어 뒀습니다.