오프체인에서 조립.
병렬로 검증.
순서대로 커밋.
큰 블록체인은 모두 모든 노드가 모든 트랜잭션을 전역 상태에 대해 다시 실행하게 만듭니다. Zycord는 실행을 체인 밖으로 옮깁니다. 결제는 지갑이 만들고, 컨트랙트 호출은 사용자가 서명한 인텐트로부터 컨트랙트의 시퀀서가 실행하며, 어느 쪽이든 결과는 자신이 읽고 쓴 모든 것을 갖춘 완결된 형태로 도착합니다. 어떤 기계든 그 바이트만으로 그것을 검사할 수 있고, 단 하나의 루프가 그것을 커밋합니다 — 또는 건너뛰고, 그것을 위해 예치한 쪽에 청구합니다.
트랜잭션은 인증서(certificate)입니다
트랜잭션은 “이것을 실행하라”고 요청하지 않습니다. “나는 이것을 읽었고, 저것을 썼으며, 증거는 여기 있다”고 진술합니다. 누구든 다시 계산해 비교하면 됩니다.
reads에 대해 program을 다시 실행하면 정확히 writes가 나오며, deposit이 최악의 경우를 감당하는가. 디스크도, 이력도 필요 없습니다.reads가 여전히 성립하는가?두 개의 동사, 두 개의 단계
이 설계 전체는 이 두 질문을 분리하고 — 각각을 가장 값싼 자리에서 답하는 것입니다.
유효한가?
인증서(certificate)만 보고 답합니다. 한 번에 수천 건씩, 어떤 기계에서든.
- 엄격한 Ed25519 서명이 확인된다
- 재실행 결과가 writes와 일치한다
- 예치금이 최악의 경우를 감당한다
- 유효하지 않음: 정직한 블록에 결코 들어가지 못함
적용 가능한가?
블록 안 인증서(certificate)의 위치에서, 바이트를 상태 테이블과 대조해 답합니다.
- reads가 여전히 성립 → writes가 커밋됨
- 오래된 읽기 또는 오버플로 → 건너뜀(skip), 예치자가 고정 수수료를 냄
- 예치금에 잔액이 없거나 이미 사용됨 → 폐기됨, 아무것도 청구되지 않음
- 어느 경우에도 블록은 유효한 상태로 남습니다
네 가지 결과, 그리고 누가 지불하는가
인증서의 문제는 하나의 결과일 뿐, 결코 블록을 거부할 이유가 아닙니다. 모든 결과는 그 위험을 선택한 당사자에게 청구되며, 하나의 서명은 많아야 한 번 청구됩니다.
적용됨
선언된 모든 읽기가 성립하므로, 쓰기가 반영되고 수수료는 실제 비용으로 정산됩니다. 기본 수수료는 소각되고 우선 수수료는 생산자에게 지급됩니다.
건너뜀
어떤 읽기가 더 이상 성립하지 않거나, 델타가 256비트 범위를 벗어나게 됩니다. 아무것도 쓰이지 않습니다. 0.01 ZCD의 고정 건너뜀 수수료가 예치금에서 소각되고 나머지는 반환됩니다. 그 id는 확인 집합(seen set)에 표시되므로, 어떤 생산자도 그것을 다시 포함할 수 없습니다.
폐기됨
예치 셀에 잔액이 없거나 이미 사용되었으므로, 청구할 것이 없습니다. 인증서는 블록에 실리지만 청구되지 않으며, 확인 집합(seen set)에 표시되지도 않습니다.
사용자는 결코 건너뜀(skip)의 비용을 내지 않습니다
읽기를 고른 것은 예치자이므로, 예치자가 그 읽기를 책임집니다. fill의 경우 그것은 시퀀서입니다. 읽기가 실패한 컨트랙트에 대해 자신을 선언한 시퀀서, 그렇지 않으면 fill이 지정한 예치금의 시퀀서입니다. 각 시퀀서에게 가는 사용자의 지불은 fill이 적용될 때에만 정산됩니다. 청구할 대상이 없는 실패 — 파이프라인 순서를 벗어난 fill, 움직인 펜스, 읽기가 성립하지 않는 강제 인증서 — 는 대신 블록을 유효하지 않게 만듭니다. 그것을 알 수 있었던 쪽은 생산자였기 때문입니다.
탄생에서 원장까지의 흐름
지갑이 결제를 만들거나, 인텐트에 서명합니다
결제에는 서버가 필요 없습니다. 지갑은 자신이 보유한 일회성 셀에 가드를 걸고, 차감하고, 사용됨으로 표시하고, 수취인의 새 주소에 입금하고, 잔돈을 자신의 새 주소로 보냅니다. 시퀀싱되는 컨트랙트에 대한 호출은 대신 서명된 인텐트(intent)입니다. 무엇을 호출할지, 결과에 대한 한도, 시퀀서에게 지불할 금액, 그리고 그것의 재원이 되는 일회성 지불 주소들을 담습니다.
시퀀서가 실행하고 확인해 줍니다
시퀀서는 자신의 관점 — 체인 끝에 자신이 이미 만든 모든 fill을 더한 것 — 위에서 인텐트를 실행하고, 밀리초 안에 서명된 영수증(receipt)으로 답하며, 그 결과를 자신의 잔액에서 예치한 fill로 게시합니다. 서로 다른 시퀀서에 묶인 컨트랙트들을 가로지르는 호출은 각 시퀀서가 함께 서명하며 하나의 원자적 fill로 반영됩니다.
모든 노드가 병렬로 검증합니다
각 인증서는 도착하는 즉시, 중계되기 전에 그 바이트로부터 검사됩니다. 서명, 선언된 읽기에 대한 재실행, 예치금입니다. 상태도, 이력도 필요 없고, 어떤 코어, 어떤 기계에서든 됩니다.
생산자가 순서를 정합니다
작업증명 채굴자가 유효한 인증서들을 골라 블록을 풉니다. 지분증명으로 전환한 뒤에는 그 슬롯에 대해 추첨된 스테이커가 대신 블록에 서명합니다. 생산자는 건네받은 것을 아무것도 실행하지 않으며, TTL 창 안에서 본 id들을 기억합니다. 하나를 두 번 포함하면 블록이 유효하지 않게 되기 때문입니다. 자기 블록의 끝에서 생산자는 강제 경로의 오픈 인텐트를 실행할 수 있습니다.
순차 폴드(fold)
먼저 fill이 파이프라인 순서대로, 그다음 그 밖의 모든 인증서가 (deposit address, seq, id) 순서로, 그다음 강제 인증서가 id 순서로 옵니다. 생산자는 그중 어느 것도 고르지 않습니다. 각 인증서에 대해: 선언된 읽기가 여전히 성립하는가?
상태: 셀, 주소, 타입이 지정된 접근
셀(cell)은 슬롯에 있는 256비트 정수입니다. 없는 셀은 0으로 읽힙니다. 동시성은 실행 시점에 발견되는 것이 아니라, 슬롯 하나하나 선언됩니다.
일회성 주소와 영구 주소
일회성 주소는 한 번 지출됩니다. 그 주소에서 차감하는 인증서가 그것을 영구히 사용됨으로 표시합니다. 지갑은 들어오는 결제마다 새 주소를 주며, 이것이 경합 없는 경로입니다. 영구 주소는 재사용할 수 있으며 — 하나의 계정입니다 — 채굴 보상은 영구 주소에 들어가야 합니다. 일회성 주소는 지출되는 순간 그 안에 있는 모든 보상을 소각하므로, 노드는 일회성 주소를 지급 주소로 받기를 거부합니다. 컨트랙트에는 자기만의 주소 종류가 있으며, 어떤 키도 그것을 대신해 서명할 수 없습니다.
네이티브 자산, 머신 없이
블록 0부터: 최대 32개 이동의 TRANSFER, 공급 상한이 있는 ISSUE, 그 상한으로 가드된 MINT, 최대 64개 일회성 주소의 RETIRE. 새 셀에 대한 입금이 곧 팁입니다. 한 블록 안의 팁 만 개는 덧셈 만 번입니다. 충돌 0, 시퀀서도, 머신도 없습니다.
머신과 그 시퀀서들
가드 델타는 결제의 경합을 해소합니다. 남는 것은 무엇을 쓸지 결정하기 위해 정확한 상태를 읽어야 하는 로직 — 호가창, 마켓 메이커 — 이며, 그곳에서는 컨트랙트가 자신의 직렬화 주체를 고릅니다.
cEVM
Ethereum 가상 머신의 한 방언이므로, Solidity와 그 컴파일러와 감사자들이 그대로 넘어옵니다. 스토리지는 선언됩니다. SLOAD와 SSTORE는 정확한 접근이며, 여섯 개의 새 옵코드가 가드된 교환 가능한 규율을 제공합니다. NUMBER와 TIMESTAMP는 하루 동안 일정한 에포크 비컨을 읽습니다. 가리킬 대상이 없는 옵코드는 제거되었습니다. 코드는 인증서 안에 실려 다닙니다. 델타 우선으로 작성된 토큰, 팁 상자, 에스크로가 머신이 열릴 때 미리 배포됩니다.
시퀀싱되는 컨트랙트와 열린 컨트랙트
모든 컨트랙트의 기록은 시퀀서 키를 지정합니다. 그 키가 0이 아니면 컨트랙트의 정확한 경로에는 그 키의 서명이 필요하고, 0이면 누구든 그 경로를 쓸 수 있으며 컨트랙트는 오직 자신의 코드로만 보호됩니다. 가드 델타는 결코 제한되지 않습니다. 시퀀싱되는 토큰도 누구에게서 오는 어떤 전송이든 여전히 받아들입니다. 시퀀서 디렉터리는 각 시퀀서가 어디서 응답하는지를 알려 줍니다 — 인가가 아니라 발견입니다.
인텐트, fill, 영수증
인텐트는 사용자의 인가 전부이며, 최대 8 블록의 창 동안 유효한 것입니다. 시퀀서는 그것이 언제 실행될지를 바꿀 수 있을 뿐, 무엇을 할지는 결코 바꿀 수 없습니다. fill의 id는 인텐트의 해시이므로, 한 인텐트에 대한 두 fill은 같은 id를 공유하고 그중 하나만 청구될 수 있습니다. 영수증(receipt)은 사전 확인으로, fill이 적용될 때까지의 시퀀서의 약속입니다. 서로 모순되는 두 영수증은 누구든 바이트로부터 확인할 수 있는 증거이며, 사용자들은 떠납니다.
파이프라인, 펜스, 공동 시퀀싱
체인은 각 시퀀서와 컨트랙트에 대해 마지막으로 적용된 seq를 보관하며, fill은 그다음 번호에서만 들어가므로 파이프라인은 시퀀서가 서명한 순서대로 커밋됩니다. 각 컨트랙트는 또한 펜스 카운터를 보관합니다. 컨트랙트의 상태를 설정하는 강제 인증서나 시퀀서 변경이 그것을 움직이며, 우회된 상태 위에서 만들어진 모든 fill은 들어갈 수 없습니다 — 아무도 청구되지 않고, 시퀀서가 다시 만듭니다. 여러 시퀀서에 걸친 호출은 모든 시퀀서의 서명을 지닌 하나의 fill이며, 구조상 원자적입니다.
강제 경로: 포함이 곧 적용
유일한 문이 시퀀서인 컨트랙트는, 시퀀서가 검열하거나 과다 청구하거나 사라지면 감옥이 될 것입니다. 모든 사용자에게는 누구의 허락도 필요 없는 느린 문이 있습니다.
모든 블록은 생산자가 고르지 않는 순서로, 세 부류로 폴드됩니다
사용자는 오픈 인텐트 — 시퀀서가 지정되지 않고 사용자 자신의 일회성 지불 주소로 재원을 대는 인텐트 — 에 서명해 네트워크에 중계합니다. 자기 블록 끝의 상태를 보유한 생산자가, 자신이 고른 오픈 인텐트들을 그 상태에 대해 실행하고 그 결과를 블록의 마지막 인증서들로 덧붙입니다. 대기열도, 임대도, 할당량도, 기한도 없습니다. 인텐트의 지불이 수수료를 충당하므로, 생산자는 시퀀서가 벌 만큼을 법니다.
실패하는 호출도 반영됩니다
revert되거나, 한도를 어기거나, gas가 바닥난 강제 호출은 FORCED_FAILED로 들어갑니다. 그 지불 주소들이 지불하고, 그 밖에는 아무것도 쓰이지 않습니다. 성공할 수 없는 인텐트를 중계하는 쪽은 그 하나하나에 대해 지불하므로, 건전한 인텐트를 굶길 수 없습니다.
펜스를 움직입니다
컨트랙트 상태의 셀을 설정하는 강제 인증서는 그 컨트랙트의 펜스 카운터를 전진시키므로, 그것이 우회한 상태 위에서 만들어진 모든 fill은 다시 만들어집니다. 읽기만 하거나, 가드만 걸거나, 델타만 더하는 강제 인증서는 펜스를 건드리지 않으며, 실패한 것도 마찬가지입니다. 시퀀서가 잃는 것은 지연 시간이며, 그 이상은 없습니다.
구조상 제한됩니다
블록당 최대 16개의 강제 인증서, 각각 최대 4,000 유도 단위(derivation unit)의 병렬 예산(머신 gas 200,000): 많아야 제네시스 병렬 상한의 3분의 1입니다. 컨트랙트 작성자를 위한 규칙은 인출이 그 예산 안에 들어가야 한다는 것입니다.
누가 무엇을 하는가
안전을 위해 필요한 역할은 없습니다. 모든 시퀀서가 사라지더라도 컨트랙트는 델타 메서드와 강제 경로를 통해 살아 있으며, 그 경로로 사용자는 인출하고 컨트랙트는 새 시퀀서에 묶일 수 있습니다.
지갑
- 하는 일
- 결제를 인증서로 만든다. 컨트랙트를 위한 인텐트에 서명한다
- 보는 것
- 자신이 읽어야 하는 공개 상태
- 신뢰하는 대상
- 없음
시퀀서
- 하는 일
- 자기 컨트랙트들의 인텐트를 실행하고, 영수증에 서명하고, fill을 게시한다
- 신뢰받는 범위
- 활성(liveness)뿐. 거짓말을 하면 그 fill은 건너뜀(skip) 처리되고 자신의 예치금이 지불한다
- 가져가는 것
- 자기 애플리케이션의 주문 흐름을 명시적으로
검증 노드
- 하는 일
- 모든 인증서를 그 바이트로부터 검사하고, 중계하고, 동기화한다
- 필요한 것
- 코어. 상태는 폴드를 실행할 때만
- 비용
- 검증은 가진 모든 코어에 퍼지고, 폴드는 메모리 위의 루프 하나다
블록 생산자
- 하는 일
- RandomX로 채굴하고, 유효한 인증서를 정렬하며, 자기 블록의 끝에서 오픈 인텐트를 실행한다
- 보는 것
- 바이트와 상태. 의미는 보지 않는다
- 버는 것
- 보조금의 94%, 그리고 적용된 인증서들의 우선 수수료
강제 경로
- 하는 일
- 허가 없는 문: 생산자가 실행하는 오픈 인텐트
- 비용
- 매번 강제 가격, 그리고 지연 시간
- 보장
- 어떤 운영자도 감옥이 아닙니다
네트워크: 두 개의 gas 시장
모든 것을 하나의 경매에서 청구하는 체인은 증명 검증이 상태 쓰기와 경쟁하게 만듭니다. 여기서는 자원마다 자기 가격이 있습니다.
병렬 gas
검증 비용을 지불합니다. 서명, 바이트, 유도 단위(derivation unit) — 무거운 증명, 포스트 양자 방식.
순차 gas
폴드(fold) 비용을 지불합니다. 읽기, 쓰기, 사용된 주소 레지스트리 삽입, 확인 집합(seen set) 삽입. 모든 노드가 순서대로 실행하는 그 한 번의 루프입니다.
적용되는 것만 지불하고, 적용되는 것만 가격을 움직입니다
기본 수수료는 소각되고 우선 수수료는 생산자에게 지급되며, 이는 적용되는 인증서에서만 그렇습니다. 건너뜀(skip) 처리된 인증서의 수수료는 전액 소각됩니다. 건너뜀이 생산자에게 돈을 준다면, 블록을 조립하는 쪽은 다른 사람들의 실패를 꾸며 내어 이익을 볼 것입니다. 소각은 이를 뒤집습니다. 건너뜀은 공간을 차지하고 아무것도 벌지 못합니다. 그리고 기본 수수료를 움직이는 것은 적용된 gas뿐이므로, 자기 충돌하는 인증서로 블록을 채워도 누구도 가격으로 밀어낼 수 없습니다.
에라(Era): 오늘 실행되는 것과 나중에 올 것
에라는 릴리스에 컴파일된 높이이거나, 체인에서 측정되는 조건입니다. 관문 아래에 있으면서 그 관문이 여는 것을 담은 블록은 유효하지 않습니다. 새 에라는 이전 블록의 의미를 결코 바꾸지 않습니다.
Era 0 — 채굴과 지불
블록 0, 즉 2026년 10월 7일부터 운영 중입니다. 나카모토 규칙 아래의 작업증명, 네이티브 자산, 일회성 주소와 영구 주소, 두 개의 수수료 시장, 94/3/3 보조금 분배, 그리고 트레저리(treasury). 트레저리는 적립되며 어떤 인증서도 그것에서 차감할 수 없습니다. 지출 경로가 생긴다면 그것은 이후의 업그레이드로 오며, 높이 259,200 이전에는 오지 않습니다.
Era 1 — 머신
높이 80,640(2026년 11월 4일경)이며, 출시 바이너리에 들어 있습니다. cEVM과 그 표준 라이브러리, 시퀀서와 관리자를 가진 컨트랙트 기록, 인텐트, fill과 공동 시퀀싱, 시퀀서 디렉터리, 그리고 강제 경로.
Era 2 — 지분증명
본딩은 에포크 182, 2027년 4월 7일경에 열립니다. 지분은 최소 본딩 1,000 ZCD부터 본딩되거나, 본딩 해제되거나, 풀에 위임됩니다. 활성 지분이 30 에포크 동안 공급량의 10%를 유지하면, 그리고 늦어도 에포크 273부터 90 에포크의 램프 구간이 시작됩니다. 블록은 여전히 채굴되며, 각 블록은 지분에 따라 추첨된 스테이커의 서명도 받고, 그 스테이커는 생산자 몫의 k/180을 가져갑니다. 하드 포크를 통한 자체 릴리스로 배포됩니다.
전환
관문을 통과한 90번째 에포크 다음 에포크의 첫 블록입니다 — 블록의 90%가 서명되고 활성 지분이 공급량의 10% 이상일 것. 채굴은 끝나고, 추첨된 스테이커가 5초 슬롯마다 서명하며, 17,280 슬롯의 에포크는 이전에 하루가 지급하던 것을 지급합니다. 블록은 깊이, 즉 120블록 또는 10분으로 최종이 됩니다. 이중 서명만 처벌되며, 위임자는 결코 처벌되지 않습니다.
완전 검증 너머
명세가 아니라 방향입니다. 일일 거래량이 평범한 노드가 검증하는 양에 가까워지면, 이후의 에라는 모든 노드 대신 지분의 부분집합을 추첨해 각 인증서를 검증하게 할 수 있으며, 그동안 상태와 폴드는 하나로 남고 모든 인증서는 원자적으로 남습니다. 그때까지는 모든 노드가 모든 것을 검증합니다.
위에서 본 네트워크
서로 겹치지 않는 네 개의 계층: 누가 만드는가, 누가 검증하는가, 누가 순서를 정하는가, 그리고 아무도 닫을 수 없는 문. 각 계층은 서로 다른 자원에 따라 확장됩니다.
지갑과 시퀀서
평범한 web2입니다. 웹소켓, 큐, 오토스케일링. 지갑은 결제를 스스로 만들고, 시퀀서는 인텐트를 실행해 밀리초 안에 답합니다. 활성(liveness)에 대해서만 신뢰받고 안전에 대해서는 결코 신뢰받지 않으며, 결코 데이터 관리자도 아닙니다 — 상태는 언제나 체인만으로 재구성할 수 있습니다.
중계와 검증
모든 노드는 모든 인증서를 중계하기 전에 그 바이트로부터 검사합니다. 블록은 헤더와, 수신자가 대부분 이미 갖고 있는 해시 목록의 형태로 전달됩니다. 본문은 체인 데이터입니다. 노드는 가장 높은 주장된 높이가 아니라 가장 많이 검증된 작업량을 향해 동기화합니다.
생산자와 폴드
작업증명 채굴자가 인증서의 순서를 정하고 블록을 풀거나, 지분증명으로 전환한 뒤에는 그 슬롯에 대해 추첨된 스테이커가 블록에 서명합니다. 모든 노드는 비교하고, 더하고, 쓰는 폴드를 실행합니다. 폴드의 순서는 규칙으로 고정되므로, 생산자가 고를 수 있는 것은 무엇을 포함할지뿐입니다.
강제 경로
생산자가 자기 블록의 끝에서 실행하는 오픈 인텐트. 포함이 곧 적용입니다 — 저자를 포함한 어떤 운영자가 사라져도 네트워크가 살아남게 하는 장치입니다.