기술 백서 v2.3
BlazePhoenix-Dex는 하나의 주장 위에 지어진 온체인 유동성 애그리게이터입니다. 곧, 견적과 그 실행은 같은 계산이라는 주장입니다. 경로는 그것을 실행하는 트랜잭션 안에서, 공개된 풀 상태로부터, 누구나 다시 돌려 볼 수 있는 상태 없는 라이브러리에 의해 유도됩니다. 정산 시점에 구속력을 갖는 수치는 실행 중인 프레임에서 같은 디스패처가 다시 유도합니다. 라우팅 서비스도, 가격 오라클도, 키퍼도, 업그레이드 경로도 없습니다. 이 문서는 다섯 개의 계약 — Core, Hub, Solver, Router, Quoter — 과 메타 방정식(Meta-Equation)의 연산자들을 명세합니다. 곧, 팔중 디스패처 Ω(Eightfold Dispatcher Ω), 결정적 유도 𝒟(Deterministic Derivation 𝒟), 철칙 하한 Φ(Iron-Law floor Φ), 활력장 Ψ(Vitality Field Ψ), 그리고 사기 방지 사영자 Ξ(anti-scam projector Ξ)입니다. 그 뒤에는 하나의 규율, 계량적 설계(Metrological Design)가 있습니다. 측정할 수 있는 좌표는 모두 측정하고, 나머지는 단조로 만들어 거짓 입력이 그것을 제공한 자에게만 해가 되게 하는 것입니다. 모든 보증은 그 강제 지점과 한계와 함께 적혀 있습니다. 검증 장치는 그 분모와 함께 인쇄되어 있습니다. 릴리스 프로파일에서 1,320개 테스트 중 1,319개 통과, 엄선한 203개 뮤턴트 중 203개 제거, 43개의 상태 불변식을 겨냥한 15개 뮤턴트 중 14개 포착, 강도 2(63행, 258쌍)와 3(168행, 1,636조)의 커버링 배열, 14 + 5개의 변성 관계, 서로 일치하는 세 가지 옵티마이저 빌드, 그리고 견적이 어떻게 낡아 가는지에 대한 240표본 연구입니다. 그 무엇도 무엇을 입증하지 못하는지 역시 같은 정도로 조심스럽게 적혀 있습니다. 여기 기술된 코드는 V2이며 배포되지 않았습니다. 배포된 세대는 V1이고, 둘이 결코 뒤섞이지 않도록 코드해시로 고정되어 있습니다.
상태: 이 문서가 기술하는 것과 배포된 것
이 문서가 기술하는 버전 2 트리는 저장소에 있으며 배포되지 않았습니다. 배포된 세대는 버전 1이고, 둘이 결코 뒤섞이지 않도록 모든 네트워크에서 코드해시로 고정되어 있습니다. 문서의 모든 수치는 main 8949a9d에서 측정되어 그 분모와 나란히 인쇄되었습니다. 한국어 전문: https://blazephoenix.xyz/whitepaper/ko.md. 우선하는 것은 영어 원문: https://blazephoenix.xyz/whitepaper.md
§1 문제: 견적은 다른 누군가가 계산한 약속입니다
딜러가 스무 곳 있는 도시에서 차를 판다고 상상해 보십시오. 좋은 중개인은 스무 곳을 모두 돌아 최고가를 찾고, 어쩌면 판매를 그중 두 곳에 나눌 것입니다. 대부분의 온체인 “중개인”은 자기 데이터베이스에서 가격을 확인하고 — 그 값은 낡았을 수 있습니다 — 결과 하나를 보여 줍니다. 그들이 스무 곳을 모두 살펴봤는지, 최고가를 보여 줬는지 여러분은 검증할 수 없습니다. 검증할 수 있는 것은 그들이 지금까지는 정직했다는 사실뿐입니다.
§2 그 답과 규율
BlazePhoenix-Dex에는 여섯 개의 값 — 두 토큰, 수량, 여러분의 최솟값, 수령인, 마감 시각 — 을 받는 진입점이 있고, 그것을 실행하는 트랜잭션 안에서 공개 상태인 풀 준비금으로부터 경로를 계산합니다. 어느 거래 장소를 쓸지, 각각에 얼마를 보낼지, 어떤 순서로 할지를 말입니다. 경로가 공개 코드에 의해 공개 상태에서 유도되었으므로, 누구나 그 유도를 다시 해 볼 수 있습니다.
§3 메타 방정식(Meta-Equation)과 의존성 예산
애그리게이터 전체는 하나의 식을 최대화하는 문제로 읽을 수 있습니다. 입력 토큰 t_in, 출력 토큰 t_out, 수량 x가 주어지면 Solver는 허용된 경로들 가운데 순수령 가치를 최대화하는 경로를, 실현 가능성 하한과 사기 방지 관문의 제약 아래에서 탐색합니다.
§4 팔중 디스패처 Ω(Eightfold Dispatcher Ω)
쉽게 말해, 모든 종류의 풀에 값을 매길 줄 아는 하나의 함수입니다. 정확히 말해, Core의 universalQuote(QuoteCtx, amountIn)이 Solver를 위한, 그리고 Quoter의 미리보기를 위한 견적 디스패처입니다. 기대 산출량과, 분할 배분기(Split Allocator)를 위한 토큰 단위의 깊이를 돌려주며, 값을 매길 수 없는 풀은 0을 돌려주고 무엇이든 전송되기 전에 걸러집니다.
§5 Uniswap V4 처음부터 끝까지
Uniswap V4는 새로운 풀 계약이 아닙니다. 새로운 형태의 거래 장소이며, 2020년부터 2024년 사이에 만들어진 모든 라우터가 딛고 선 네 가지 전제를 무효로 만듭니다. 풀에는 주소가 없습니다 — 해시를 키로 하는, 하나의 싱글턴 저장소의 항목입니다. 스왑 안에서 임의의 코드가 실행됩니다 — 라우터가 수행 중인 정산의 정해진 지점에서 훅이 실행됩니다. 수수료가 상수일 필요도 없습니다. 그리고 풀은 balanceOf가 없는 체인의 네이티브 통화를 보유할 수 있습니다. 이 절은 네 가지 모두에 구조적으로 답하여, V4 구간이 — Solver에게도, 각 하한에게도, 거래자에게도 — 다른 어떤 구간과도 구별되지 않게 만듭니다.
§6 Solidly 솔버
어떤 불변식은 안전하게 재현할 만큼 단순한 닫힌 형태를 갖지 않으며, 그것을 재현하는 일 자체가 이 프로토콜이 다른 곳에서는 거부하는 바로 그 복제 위험입니다. 그런 거래 장소에 대해서는 디스패처가 그 장소가 노출하는 가장 좁은 정직한 통로를 통해 풀에게 직접 묻습니다 — 그리고 답하지 않는 포크를 위해 복제본을 예비로 둡니다.
§7 결정적 유도 𝒟(Deterministic Derivation 𝒟)
풀은 값이 매겨지기 전에 먼저 찾아져야 합니다. 업계의 답은 물어보는 것입니다. 거래 장소의 팩토리를 호출하면 저장소 매핑을 읽어 주소를 돌려주고, 호출자는 팩토리의 말을 그대로 받아들입니다. BlazePhoenix는 그 답도 지원합니다 — 네 가지 팩토리 호출 모드가 배포를 재현할 수 없는 장소들을 덮습니다 — 그러나 산술이 허용하는 곳에서는 더 강한 답을 택합니다. 곧, 외부 호출 없이 주소를 계산하는 것입니다. 계산된 주소는 같은 세 입력을 가진 누구든 검증할 수 있습니다. 가져온 주소는 믿는 수밖에 없습니다.
§8 모노슬롯(Monoslot)
EVM에서 무엇을 하든 지배적인 비용은 저장소입니다. 콜드 SLOAD는 2,100 gas이고, 풀의 속성을 서로 다른 슬롯에 흩뿌린 레지스트리라면 평가하는 모든 경로마다, 모든 풀마다, 모든 속성마다 그 비용을 다시 치르게 됩니다. BlazePhoenix는 풀의 라우팅 상태 전체를 단 하나의 256비트 워드 — 모노슬롯 — 에 담아, 한 번 읽고 순수 산술로 해독합니다.
§9 자가 치유 레지스트리(Self-Healing Registry)와 활력장 Ψ(Vitality Field Ψ)
대부분의 애그리게이터가 자기 거래 장소를 아는 이유는 키퍼가 오프체인에서 풀을 색인하고 목록을 온체인으로 밀어 넣기 때문입니다 — 신뢰되는 프로세스, 낡음의 창, 운영상의 의존성. 경로를 온체인에서 푸는 프로토콜이 받아들일 수 없는 세 가지입니다. BlazePhoenix는 반대 입장을 취합니다. 레지스트리는 유동성을 거래함으로써 유동성을 배웁니다.
§10 라우팅과 분할 배분기(Split Allocator)
상수곱 풀은 한 가지 규칙으로 값을 매깁니다. 두 준비금의 곱은 결코 줄어들 수 없다는 규칙입니다. 수수료 유보율 γ로 Δ를 부으면(0.30 % 의 장소 수수료는 γ = 0.997을 뜻합니다) yγΔ / (x + γΔ)를 받게 되는데, 분모에 자기 입력이 들어 있습니다. 한 풀에 많이 밀어 넣을수록 그다음 토큰마다 받는 값이 나빠집니다. 슬리피지는 산술이고, 그 처방도 산술입니다. 같은 페어의 여러 풀에 같은 주문을 나누면 각 풀이 덜 움직입니다.
§11 실행 계층과 철칙 하한 Φ(Iron-Law floor Φ)
Solver는 제안하고 Router는 처분합니다 — 원자적으로, 아니면 아예 하지 않습니다. Router는 자금을 옮기는 유일한 계약이고, 트랜잭션 사이에 아무것도 보유하지 않으며, 하나의 원칙 위에 지어졌습니다. 관심사마다 하나의 메커니즘을, 보편적으로 적용한다는 원칙입니다. 측정할 수 있는 것은 아무것도 가정하지 않습니다.
§12 견적의 표면들, 그리고 견적이 낡아 가는 방식
“당신의 견적”이라 불리는 수치가 나올 수 있는 곳은 두 군데이고, 그 둘은 서로 다른 코드 경로입니다. 하나는 인터페이스가 서명 전에 호출하는 읽기 전용 미리보기 계약 Quoter이고, 다른 하나는 Solver와 Router가 실행 중인 트랜잭션 안에서 견적을 계산하는 프레임 내 경로입니다. §4.4는 종류별 진실을 주었고, 이 절은 그 표면들을 제시하고 둘 사이의 간격을 측정합니다.
§13 수수료 정책: 두 체제와 잉여 규칙(Surplus Rule)
쉽게 말해, 프로토콜은 0.28 % 를 한 번, 측정된 하나의 금액에서, 국고가 보유하고자 하는 화폐로 가져가고, 가져갔다는 사실을 기록합니다. 정확히 말해, PROTOCOL_FEE_BPS = 28은 Core의 컴파일 타임 상수이며 배포된 바이트코드 어디에도 세터가 없습니다. 수수료는 mulDivUp(base, 28, 10,000) — 올림이므로 0이 아닌 어떤 기준액에 대해서도 0 수수료는 도달 불가능합니다 — 이고, TREASURY1_SHARE = 3,000 bps를 첫 번째 국고에, 나머지를 두 번째 국고에(fee − t1로 계산하므로 둘의 합은 언제나 수수료와 같고 먼지가 남지 않습니다) 나눕니다. 두 국고는 생성 시점에 고정되며 일방통행 문(One-Way Door)으로 영원히 동결할 수 있습니다.
§14 보안 모델
쉽게 말해, Router는 트랜잭션 사이에 아무것도 보유하지 않고, 모든 스왑은 전부 아니면 전무이며, 이 저장소가 고려한 각 공격 부류는 이름이 붙은 검사로 답해지거나 범위 밖이라고 명시됩니다. 정확히 말해, 위협 목록은 docs/assurance/threats.json이며 공개된 공격 기록에서 뽑은 23개 부류입니다. 각각은 그것을 거부하는 가드 심볼의 이름을 밝히고, 그 심볼이 src/를 떠나거나 지정된 테스트가 test/를 떠나면 CI 스크립트가 빌드를 실패시킵니다. 목록의 커버리지는 무엇이 고려되었는지의 하한이지, 무엇이 존재하는지의 상한은 결코 아닙니다.
§15 검증 장치, 측정치
쉽게 말해, 여기 있는 모든 수치는 그것이 측정된 분모 옆에 인쇄되고, 깨끗한 체크아웃에서 스크립트나 지정된 forge 명령(부록 C)으로 다시 계산되며, 그 뒤에 그것이 무엇을 입증하지 않는지가 따라붙습니다. 정확히 말해, 측정된 트리는 main 8949a9d와 그것이 된 브랜치이고, 릴리스 프로파일(optimizer_runs = 300, via_ir), 2026-09-05입니다.
§16 아키텍처와 크기
쉽게 말해, 계약은 다섯 개이고 그중 하나는 나머지 넷이 가져다 쓰는 순수 수학이며, 어떤 수학도 두 번 정의되지 않습니다. 정확히 말해, Core는 저장소도, 소유자도, 업그레이드 경로도 없는 상태 없는 라이브러리입니다. Hub, Solver, Router, Quoter가 그것을 가져다 쓰고 어느 쪽도 원시 연산을 다시 정의하지 않으므로, 수학에 대한 한 번의 감사가 모든 사용처를 덮습니다.
§17 측정된 성능
쉽게 말해, 이 절의 모든 것은 실제 체인의 포크에서 측정되었습니다 — 실제 거래 장소, 낯선 사람들이 예치한 실제 준비금, 하나의 바이트코드 — 그리고 정확히 그렇게 표기됩니다. 정확히 말해, 어떤 수치가 여기 실리려면 저장소의 공개 하네스가 그것을 재현해야 합니다. 하네스와 체인과 날짜가 그 옆에 인쇄됩니다. 포크에서의 측정은 동작에 관한 증거이지 배포 기록이 아닙니다. 배포 기록은 §19입니다. §12와 §15의 측정은 2026-09-05의 것이고, 이 절의 캠페인은 2026년 8월에 수행되었으며 그 하네스는 test/fork/에 있습니다.
§18 뼈대만 남긴 DEX
열일곱 개 절의 메커니즘을 한 페이지로. 할 일은 하나: 두 토큰, 수량, 당신의 최소 수령액, 수령인, 기한을 받아 체인의 공개 유동성이 낼 수 있는 최대 출력을 돌려주거나, 이유를 말하는 코드로 거절한다. 다섯 개 컨트랙트가 하나의 수학을 공유하고(Core, Hub, Solver, Router, Quoter), 여섯 종류의 venue는 하나의 디스패처로 가격이 매겨지며, 네 개의 문은 하나의 실행기로 이어지고, 모든 거래 아래에는 세 개의 하한과 당신의 최소값이 있다. 0.28% 수수료는 컴파일되어 있어 누구도 바꿀 수 없다.
§19 배포 상태
이 문서는 저장소를 기록하며, 저장소가 정본입니다. 이 글과 소스가 어긋나면 소스가 이깁니다. 두 세대가 존재하고, 그 둘은 결코 뒤섞이지 않습니다.
§20 토큰 — BZPX
10억 BZPX, 영구 고정, 단순한 ERC-20: 소수점 18자리, 발행 경로 없음, 전송 수수료 없음, 리베이스 없음, 전송 훅 없음, 일시정지나 블랙리스트 없음. 버전 2.3 배분: 시장 유동성 520,000,000 (52%), Staking 방출 180,000,000 (18%), Airdrop & Bounties 130,000,000 (13% — 기존 에어드롭 50,000,000, 기존 연구 풀 50,000,000, 시장 유동성에서 옮긴 30,000,000), 팀 103,000,000 (10.3%), 파트너 60,000,000 (6%), 마케팅 7,000,000 (0.7%).
§21 연구 프로그램과 보안 기록
이 프로젝트에 그 이름에 값하는 연구 프로그램이 생기기도 전에, 독립 연구자들이 적대적으로 소스를 읽었습니다 — 부탁받지도 않았고, 약속된 것도 없이 — 그리고 본 것을 비공개로 알려 왔습니다. 이 문서가 기술하는 코드는 그들의 읽기에서 살아남은 코드입니다. 각자가 무엇을 보고했고 그것이 어떻게 되었는지는 그런 기록이 있어야 할 자리에 있습니다. 곧 저장소의 SECURITY.md와 SECURITY_HALL_OF_FAME.md 안, 코드 옆, 모든 항목을 양방향으로 확인할 수 있는 곳입니다. 이 절은 그들이 누구인지, 적대적 읽기가 무엇을 지불받는지, 그리고 발견된 것의 형태를 기록합니다.
§22 무엇을 신뢰해야 하고, 무엇은 신뢰하지 않아도 되는가
모든 프로토콜이 스스로를 트러스트리스라고 주장하지만, 자신의 예외를 열거할 수 있는 프로토콜은 거의 없습니다. 여기 전체 목록이 있습니다. 각 권한은 그것을 한정하는 선과 함께 적혀 있습니다.
§23 관련 연구
라우팅. Angeris, Evans, Chitra, Boyd는 상수 함수 마켓 메이커를 가로지르는 라우팅을, 최적해가 장소 간 한계 가격을 같게 만드는 볼록 계획으로 정식화했습니다. Diamandis, Resnick, Chitra, Angeris는 그에 대한 효율적인 쌍대 분해 알고리즘을 제시합니다.
§24 결론
우리는 하나의 규율 위에 애그리게이터를 세우고자 했습니다 — 믿지 말고 측정하라 — 그리고 어떤 수치를 누군가의 말로 대신 받아들일 수도 있었던 모든 지점에서 그 규율을 지키고자 했습니다. 경로, 가격, 하한, 수수료 기준액, 거래 장소의 집합, 어떤 풀이 거래한다고 주장하는 페어, 심지어 프로토콜 자신의 비용 모델까지.
Questions, a partnership or a bug to report? Contact us or email contact@blazephoenix.xyz