권한과 교체
CUBIT은 식별자가 고정되고 관리자가 없는 핵심과, 주변 모듈을 관리하는 팀 주소를 구분합니다. 팀 주소의 권한은 영구적입니다.
고정되는 항목
주변 setter는 토큰, 주 hook, PoolManager, poolId, 레지스트리 앵커를 교체하지 않습니다.
토큰은 일회 연결로 hook을 승인합니다. 핵심 세율, 출시 FDV, 밴드 형상에는 setter가 없으며, 밴드는 한 번 배치되면 회수되지 않습니다. 핵심을 바꾸는 새 정책은 새 버전·검증·배포가 필요하며 이전 풀을 자동 갱신하지 않습니다.
관리자가 없는 hook
hook에는 관리자가 없으며, 누구도 스왑이나 매수벽 메커니즘을 일시 중지할 수 없습니다.
따라서 어떤 주소도 매도나 매수벽 배치를 중단시킬 수 없습니다. hook 규칙은 배포된 그대로 적용됩니다.
팀 역할
팀 주소 TEAM_ADDRESS는 hook에 고정되어 있으며 레지스트리 CubitV2의 authority() 역할을 합니다. 그 권한은 영구적입니다. 팀 주소는 매수 3 %, 매도 3 %인 세금의 팀 몫을 받고, 레지스트리 모듈을 교체한 뒤 활성화합니다. Vault, 라우터, Lens, Forge는 언제든 즉시, 사전 공지 기간 없이 교체할 수 있습니다. 교체할 수 있는 네 주소는 다음과 같습니다:
| Setter | 주요 연결 검사 | 결과 |
|---|---|---|
setVault(next) |
코드 존재, 동일 hook·token, stake가 없는 새 Vault | 향후 예치와 이후 전송되는 흡수 CUBIT의 새 기준 컨트랙트 |
setRouter(next) |
코드 존재, 동일 hook/PoolManager/poolId | 현재 라우터 교체: dapp이 쓰는 라우터 |
setLens(next) |
코드 존재, 동일 hook/PoolManager/poolId/token | 현재 읽기 컨트랙트 교체 |
setForge(next) |
코드 존재, 동일 hook, 코드가 있는 거버넌스 vault | 출시 때는 없는 기준 런치패드를 향후 출시용으로 등록하거나 교체, 그 수수료를 받는 거버넌스 vault도 함께 바뀜 |
변경마다 ModuleUpdated를 내고 moduleRevision을 증가시키며, 팀이 다시 열 때까지 해당 기능을 닫습니다. Vault, Lens, Forge를 교체하면 각각 Vault, Momentum, Forge가 닫히고, 라우터 교체로 닫히는 기능은 없습니다. 작업 전 새 주소와 코드를 확인하세요.
교체의 범위
교체는 그 트랜잭션에서 바로 효력이 생깁니다. 교체로 다음을 정할 수 있습니다.
- CUBIT 매수벽이 흡수한 CUBIT이 이후 전송에서 가는 곳: hook은 등록된 Vault로 전달합니다.
- 향후 출시 수수료가 가는 곳: 등록된 Forge가 자신의 거버넌스 vault에 납부합니다.
- dapp이 사용하는 라우터.
교체가 건드리지 않는 것:
- 핵심: 토큰, hook, 밴드, 매수벽, 세금
- 기존 vault에 이미 있는 잔액: 원금과 보상 준비금
팀은 이 주소의 개인 키를 보호합니다.
호환성 검사의 한계
올바른 주소를 선언하는 getter는 예상 연결만 보이고 후보 코드 전체 안전성을 보장하지 않습니다. 향후 구현의 proxy나 악의적 동작 부재도 증명하지 않습니다.
따라서 팀이 향후 작업의 주변 코드를 고릅니다. 각 교체, bytecode, 상호작용을 확인해야 합니다.
이미 예치된 자금
Vault 교체는 이전 컨트랙트의 예치 CUBIT도 보상 준비금도 옮기지 않습니다. 포지션·기한·출금은 이전 Vault에 남습니다. 레지스트리는 Vault 목록을 유지하며 프런트엔드가 이 포지션을 계속 표시해야 합니다.
이전 라우터는 계속 스왑에 쓸 수 있고 hook 세금도 그대로 적용됩니다. 이전 라우터에 준 승인은 새 라우터에 적용되지 않습니다.
Forge 교체는 향후 출시에만 영향을 주며 기존 자식은 컨트랙트와, 자신을 출시한 Forge의 거버넌스 vault를 유지합니다.
setter는 결함 컨트랙트를 소급 수리하거나 보유 자금을 옮기지 않습니다. 온체인 출금 호출 가능성과 프런트엔드 제공 여부를 따로 확인해야 합니다.
런치패드 거버넌스 vault
거버넌스 vault에는 관리자도 조기 출금도 없습니다. 이 vault는 ETH 출시 수수료와 자식 시장 매수벽이 흡수한 토큰을 받으며, 각 예치분은 수령 시점부터 30일간 잠기고 그 뒤 배포자만 청구할 수 있습니다. 이 권리는 영구적이고 이를 양도하는 함수는 없으므로, 해당 계정에 대한 명시적 신뢰입니다. 이 배포자는 현재와 향후 예치분을 포함한 vault 전체의 잠금을 언제든 연장할 수 있으며, 이를 줄이는 함수는 없습니다.
승인과 서명
승인은 특정 spender에 귀속되며 레지스트리 현재 주소를 따라가지 않습니다. 개정·모듈 변경 시, 특히 승인과 스왑 사이에 프런트엔드는 작업을 재검증해야 합니다.
프로토콜의 모든 작업은 트랜잭션입니다. 서명하기 전에 대상 주소와 체인을 확인하세요.
출처: CubitV2.sol, CubitHook.sol, periphery/CubitGovernanceVault.sol, contracts/docs/MODULE_SETTERS.md 및 프런트엔드 검사 releases.ts / vault.ts.