ZYCORD 문서
한국어
Zycord문서네트워크가 동작하는 방식
Zycord (ZCD) — 네트워크가 동작하는 방식

오프체인에서 조립.
병렬로 검증.
순서대로 커밋.

큰 블록체인은 모두 모든 노드가 모든 트랜잭션을 전역 상태에 대해 다시 실행하게 만듭니다. Zycord는 실행을 체인 밖으로 옮깁니다. 트랜잭션은 체인 바깥의 서버들 사이에서 조립되고, 자신이 읽고 쓴 모든 것을 갖춘 완결된 형태로 도착하며, 어떤 기계든 그 바이트만으로 검사할 수 있고, 결과는 단 하나의 루프가 커밋합니다.

Three phases: construction between servers, parallel verification, sequential fold 구성 — 오프체인 트랜잭션이 닫힐 때까지 서버들 사이를 오갑니다 지갑 시퀀서 컨트랙트 A 시퀀서 컨트랙트 B 인수인(underwriter) 함께 서명 검증 — 병렬, 무상태 많은 노드가 각자 자기 조각을 검사 폴드(fold) — 순차 하나의 루프, 비교하고 더함 2,900개 인증서 블록당 9.9 ms
평범한 서버, web2, 합의 없음 네트워크에 합류하는 코어마다 함께 늘어남 유일하게 희소한 자원

트랜잭션은 인증서(certificate)입니다

트랜잭션은 “이것을 실행하라”고 요청하지 않습니다. “나는 이것을 읽었고, 저것을 썼으며, 증거는 여기 있다”고 진술합니다. 누구든 다시 계산해 비교하면 됩니다.

Certificate { reads: [(slot, access, operand)] // 인증서(certificate)가 슬롯별로 무엇을 어떻게 읽었는가 writes: [(slot, op, value)] // 무엇을 쓰는가 program: bytes // 코드 또는 네이티브 연산 sigs: [signature] // 지출 권한 underwriter: (id, sig, seq) // 인수인(underwriter), 누가 위험을 지는가 ttl: height // 여기까지 포함되지 않으면 만료 fee: (seq_gas, par_gas) // 두 개의 시장 }
유효한 = 바이트의 순수 함수서명이 맞고, 인수인(underwriter)이 맞으며, reads 위에서 program을 다시 실행하면 정확히 writes가 나옵니다. 디스크도, 이력도 필요 없습니다.
적용 가능한 = 위치가 결정한다인증서(certificate)가 블록 안에서 자기 차례에 도달했을 때, 선언된 reads가 여전히 상태와 일치하는가?
ID는 서명을 제외한다다른 nonce로 다시 서명해도 ID는 같습니다. 복사본은 확인 집합(seen set)이 잡아냅니다. 아무도 두 번 청구되지 않습니다.
슬롯별 접근 유형EXACT는 값을 고정합니다. GUARD는 “잔액 ≥ x”만 진술합니다. DELTA는 읽지 않고 더합니다. 결제와 팁은 교환 가능하며 결코 충돌하지 않습니다.

두 개의 동사, 두 개의 단계

이 설계 전체는 이 두 질문을 분리하고 — 각각을 가장 값싼 자리에서 답하는 것입니다.

병렬

유효한가?

인증서(certificate)만 보고 답합니다. 한 번에 수천 건씩, 어떤 기계에서든.

  • 정규 서명이 확인된다
  • 재실행 결과가 writes와 일치한다
  • 범위 증명이 닫힌다 (차폐 레일)
  • 유효하지 않음: 블록에 결코 들어가지 못함
순차

적용 가능한가?

블록 안 인증서(certificate)의 위치에서, 바이트를 상태 테이블과 대조해 답합니다.

  • reads가 여전히 일치 → writes가 커밋됨
  • 오래된 reads → 건너뜀(skip), 인수인(underwriter)의 수수료가 소각됨
  • 셀(cell)이 이미 사용됨 → 건너뜀(skip)
  • 어느 경우에도 블록은 유효한 상태로 남습니다

탄생에서 원장까지의 흐름

1

서버들 사이에서의 구성

지갑이 요청을 엽니다. 사용량이 많은 컨트랙트마다 자체 시퀀서 — 평범한 애플리케이션 서버 — 가 있어서, 상태 사본을 유지하고 누가 먼저 움직일지 직렬화하며, 각 인증서(certificate)를 이전 인증서의 writes 위에 사슬처럼 잇습니다. 두 컨트랙트를 건드리는 트랜잭션은 두 시퀀서가 함께 구성하며, 하나의 원자적 인증서로 체인에 도달합니다.

2

인수인(underwriter)이 서명합니다

담보를 예치한 인수인(underwriter)이 최신 상태에 대조해 확인하고, 함께 서명하며, 건너뜀(skip) 위험을 떠안습니다. 인수인은 발신자에게 체인 밖에서 비용을 청구하며, 사실상 사전 확정을 파는 셈입니다. 중개자를 원하지 않는 사람은 자기 예치금으로 스스로를 인수합니다 — 언제나 가능하며, 허락을 구할 필요가 없습니다.

3

네트워크가 수신하고 병렬로 검증합니다

모든 노드가 중계하기 전에 바이트로부터 유효성을 검사합니다. 표본 추출을 쓰면 VRF로 뽑힌 위원회가 각 인증서(certificate)를 검증합니다. 어떤 노드든 무엇이든 검사할 수 있고, 쓰레기 값에 보증을 선 인수인(underwriter)을 처벌하는 데는 메시지 하나면 충분합니다.

유효하지 않음 → 폐기(drop)되며 블록에 결코 도달하지 않음
4

제안자가 순서를 정합니다

PoS 위원회가 유효한 인증서(certificate)를 골라 블록을 조립합니다. 위원회는 아무것도 실행하지 않고 애플리케이션 상태도 보유하지 않습니다. TTL 창 안에서 본 ID만 기억할 뿐입니다. 강제 큐에 든 인증서는 F개 블록 안에 반드시 포함되어야 합니다.

5

순차 폴드(fold)

(underwriter, seq, id) 순으로 정렬합니다 — 제안자가 순서를 고르지 않습니다. 각 인증서(certificate)마다 묻습니다. reads가 상태와 일치하는가? 체크포인트는 32블록마다 확정됩니다.

적용됨 — writes가 커밋되고 수수료는 제안자에게 지급
건너뜀(skip) — 수수료 소각, 인수인(underwriter)에게 청구, 블록은 유효한 상태로 유지

누가 무엇을 하는가

네트워크의 보안을 위해 반드시 필요한 역할은 하나도 없습니다. 전부 사라져도 강제 큐가 시스템을 살아 있게 합니다.

지갑

하는 일
인증서(certificate)를 만들고, reads와 writes를 선언하며, 서명한다
보는 것
자신이 읽어야 하는 공개 상태
신뢰하는 대상
없음

시퀀서

하는 일
사용량이 많은 컨트랙트를 오프체인에서 직렬화하고, 배치를 하나의 인증서(certificate)로 묶는다
신뢰받는 범위
활성(liveness)뿐. 거짓말을 하면 인증서(certificate)는 건너뜀(skip) 처리되고 담보가 지급된다
가져가는 것
자기 애플리케이션의 MEV를 명시적으로

인수인(underwriter)

하는 일
함께 서명하고 담보로 건너뜀(skip) 위험을 떠안는다
보는 것
셀(cell)이 살아 있는지 사용되었는지 — 숨겨진 값은 결코 보지 못한다
잃는 것
바이트로 증명 가능한 과실(이중 진술)에 대해서만

검증 노드

하는 일
바이트로부터 유효성을 검사하고, 중계하고, 동기화한다
필요한 것
코어. 커밋할 예정이라면 상태도
비용
네트워크가 커질수록 낮아진다. 한 조각만 검증하기 때문에

제안자 (PoS)

하는 일
유효한 인증서(certificate)를 정렬하고, 폴드(fold)를 실행하며, 블록을 제안한다
보는 것
의미가 아니라 바이트
버는 것
보조금 + 적용된 인증서(certificate)에서 나오는 우선 수수료

순차 경로를 건드리지 않는 프라이버시

공개 그래프 위에서, 일회성 주소를 쓰는 기밀 트랜잭션. 값을 숨깁니다. 수취인과의 연결은 뒤로 미룹니다. Monero가 아니며, 백서도 그렇게 말합니다.

숨겨진 채로 남는 것

  • 값: 커밋먼트 C = vG + rH
  • 수취인은 첫 지출 전까지 (스텔스 주소)
  • 숨겨진 각 셀(cell)의 잔액 — 소유자만 지출할 수 있고, 누구도 “물어볼” 수 없습니다

공개된 채로 남는 것

  • 결제가 일어났다는 사실과, 누가 인수했는지
  • 어떤 출력이 지출되었는지, 지출되는 그 순간에
  • 공개 레일과 차폐 레일 사이의 모든 교차. 값이 드러난 상태로
  • 수수료, coinbase, 컨트랙트로의 결제

차폐 풀은 울타리이지 경보기가 아닙니다

Shielded pool with an exit guard 공개 레일 u256 값, 검사된 산술 차폐 풀 풀 = Σ 유입 − Σ 유출 델타로 움직이는 공개 정수 shield +v unshield: 가드 풀 ≥ v 암호가 깨지더라도 위조된 값은 가드를 넘지 못합니다. 인플레이션은 풀 안에 갇혀 있습니다.

폴드(fold)는 곡선 연산을 결코 하지 않습니다. 32바이트짜리 커밋먼트를 저장하고 같은지 비교할 뿐입니다. 무거운 암호 연산은 전부 — 범위 증명, 잔액 등식 — 병렬 단계에서 검증되고 값싼 시장에서 비용이 치러집니다.

왜 링 서명을 쓰지 않는가

링은 다른 사람들의 출력을 참조합니다 — 그러면 유효성이 이력의 함수가 되고, 상태 없는 검증이 무너집니다. Zycord는 그 성질을 포기하지 않으므로, 이 시스템의 프라이버시는 Monero보다 약합니다. 이는 실수가 아니라 결정입니다.

네트워크: 두 개의 gas 시장

모든 것을 하나의 경매에서 청구하는 체인은 증명 검증이 상태 쓰기와 경쟁하게 만듭니다. 여기서는 자원마다 자기 가격이 있습니다.

병렬 gas

검증 비용을 지불합니다. 서명, 재실행, 바이트, 무거운 증명, 포스트 양자 방식.

합류하는 코어와 GPU마다 공급이 늘어납니다. 상한은 높고 가격은 낮습니다.

순차 gas

폴드(fold) 비용을 지불합니다. reads 확인, writes, 리스. 모든 노드가 순서대로 실행하는 그 한 번의 루프입니다.

희소합니다. 상한은 탄력적입니다. 가득 찬 건강한 블록 기준으로 연간 최대 두 배까지. 아무도 투표하지 않습니다.

위에서 본 네트워크

서로 겹치지 않는 네 개의 계층: 누가 직렬화하는가, 누가 인수하는가, 누가 검증하는가, 누가 순서를 정하는가. 각 계층은 서로 다른 자원에 따라 확장됩니다.

오프체인

애플리케이션별 시퀀서

평범한 web2입니다. 웹소켓, 큐, 오토스케일링. 시퀀서는 사용량이 많은 컨트랙트를 직렬화하고 배치를 GPU가 검증하기 좋은 형태로 묶습니다. 데이터를 수탁하는 일은 결코 없습니다 — 상태는 언제나 체인만으로 재구성할 수 있습니다.

오프체인

인수인(underwriter) 시장

담보를 건 인수인들이 사전 확정을 팝니다. “몇 초 안에 적용되거나 내 담보가 대신 지불한다”. 이중 진술은 바이트 안의 증거로 처벌됩니다. 느린 것은 평판에만 대가를 치릅니다. 지연이 몰수로 변하는 일은 결코 없습니다.

병렬

검증 위원회

인증서(certificate)마다 VRF로 뽑히며, 유효하지 않은 인증서가 빠져나갈 확률이 무시할 만한 수준이 되도록 크기가 정해집니다. 어떤 풀 노드든 무엇이든 감사할 수 있습니다. 처벌에는 메시지 하나면 충분합니다.

순차

PoS 위원회 + 폴드(fold)

블록을 제안하고, 폴드(fold)를 실행하며, 체크포인트를 확정합니다. 강제 큐는 F개 블록 안의 포함을 강제하고 적용을 보장합니다 — 저자를 포함한 어떤 운영자가 사라져도 네트워크가 살아남게 하는 장치입니다.