마이그레이션과 외부 시장 AMM
최종 곡선 구매, USDC 정밀 변환, LP 잠금, 기부 경계 및 외부 일정 제품 가격에 대한 원자 마이그레이션.
내부 시장 판매 가능 Token이 소진되면 BigShortProtocol-EVM은 예약 Token + 곡선 실제 순 USDC 준비금 으로 외부 시장 유동성을 구성하고 해당 Token의 독립 Short Engine을 시작합니다. 마이그레이션은 가상 USDC를 사용하거나 다른 Token 곡선 자금을 섞지 않으며 대출 준비금을 외부 시장 초기 유동성으로 취급하지 않습니다.
1. 발동 조건 및 실행 순서
| 순서 | 작업 | 업무 결과 |
|---|---|---|
| 1 | 최종 구매를 정리하기 | 판매 가능 Token 잔액 소진, 상태 Complete |
| 2 | 이번 Token 지급 및 초과 지급액 환불 | 환불 수령자는 거래 발신자 |
| 3 | 내부 시장 체결 및 완료 이벤트 발생 | 최종 내부 시장 준비금 스냅샷 기록 |
| 4 | 해당 Token 설정 스냅샷 및 예상 Engine 주소 재확인 | 나중에 설정한 새 기본 Profile로 바꾸지 않음 |
| 5 | 상태 Migrating 설정 및 주 Pair 검증 | Pair 신원, 실행 코드, 준비금 및 잔액 확인 |
| 6 | 206,900,000 Token 및 표현 가능한 실제 USDC 전송 | 실제 외부 시장 유동성 형성 |
| 7 | 마이그레이션 LP를 영 주소에 발행 및 검증 | 초기 LP 전량을 영 주소가 보유하는지 확인 |
| 8 | Short Engine 배포 및 초기화 | 실제 Pair 준비금 및 기존 대출 재고 연결 |
| 9 | 연결 검증 및 주 Pair 거래 개방 | externalTradingEnabled 가 참으로 변경 |
| 10 | 해당 곡선 실제 USDC 잔액 초기화 및 마이그레이션 결과 기록 | 최종 상태 Migrated |
2. native18에서 ERC-20 USDC 여섯 자리 정밀도로 변환
Arc 네이티브 USDC 잔액과 외부 시장 USDC ERC-20 인터페이스는 같은 호가 자산에 대응하지만 정밀도가 다릅니다. 현재 코드는 다음을 사용합니다.
| 상황 | 정밀도 | USDC 한 단위 |
|---|---|---|
| 내부 시장 지급, Factory 장부, Engine 내부 기록 | native18 | 10¹⁸ |
| 외부 시장 Pair의 USDC ERC-20 인터페이스 | external6 | 10⁶ |
| 양쪽 변환 비율 | — | 10¹² |
마이그레이션할 실제 USDC 준비금을
여기서
마이그레이션 나머지 귀속
마이그레이션은 모든 미이전 곡선의 총부채에서 해당 곡선의 전체
3. 전체 규모 소진 예시 및 세 가지 평가
예시 D: 초기 상태에서 한 번에 전량 매수, 세금·기부 없음
793,100,000 토큰을 모두 구입하십시오. 곡선에 들어가는 순 USDC는 다음과 같습니다:
| 항목 | 정확한 결과 |
|---|---|
| 곡선 순투입 USDC | 12,161.433369060378706681 |
| Pair에 추가하는 Token | 206,900,000 Token |
| Pair에 추가하는 USDC | 12,161.433369 USDC |
| external6 USDC 정수 | 12,161,433,369 |
| 마이그레이션 나머지 | 0.000000060378706681 USDC |
위는 초기 기준이 명확한 일회성 예시이며, 모든 반복 매매 경로에서 최소 단위까지 완전히 같은 누적 결과를 보장하지 않습니다. 거래별 정수 라운딩과 정확한 예산 진입점 때문에 차이가 생깁니다.
내부 시장 끝점, 외부 시장 실제값 및 이상적 기준점을 혼용하지 않기
| 지표 | 본 예시 값 | 용도 |
|---|---|---|
| 최종 주문 후 내부 시장 가상 USDC | 16,453.433369060378706681 | 내부 시장 종료 시 가상 준비금 기록 |
| 내부 시장 끝점 가상 Token | 279,900,000 | 내부 시장 종료 시 가상 준비금 기록 |
| 내부 시장 끝점 프로토콜 시가총액 | 58,783.256052377201524405 USDC | 내부 시장 가상 준비금으로 계산 |
| 실제 외부 시장 초기 USDC | 12,161.433369 | 실제 Pair 자금 |
| 실제 외부 시장 초기 Token | 206,900,000 | 실제 Pair 자금 |
| 실제 외부 시장 초기 프로토콜 시가총액 | 58,779.281628806186563557 USDC | actualStartMarketCap |
| 고정 이상적 마이그레이션 USDC 매개변수 | 12,161.433370 | 리스크 모델 매개변수. 강제 전송액이 아님 |
| 고정 이상적 마이그레이션 시가총액 | 58,779.281633639439342677 USDC | startMarketCap, 리스크/증거금 곡선 기준점 |
실제 외부 시장 초기 가격은 약 0.000058779281628806186564 USDC/Token 입니다. 현재 매개변수는 ‘마이그레이션 전후 한계 가격의 최소 단위까지 완전한 연속성’을 강제하지 않습니다. 내부 시장 가상 준비금과 마이그레이션 실제 준비금은 서로 다른 값입니다.
고정 이상적 기준점은 재현 가능한 리스크 모델 기준을 제공하고, 실제 Pair 준비금은 현물 가격, 부채 재매입 비용 및 각 실제 교환을 결정합니다. 12,161.433370 USDC 모델 매개변수를 매번 마이그레이션 시 반드시 수령할 자금으로 표기하지 마세요.
4. Pair 사전 생성, 기부 및 오염 방지
허용 가능한 사전 상태
마이그레이션 시작 요건:
- Pair Token 준비금이 0.
- Pair 실제 Token 잔액이 0.
- Pair LP 총공급량이 0. 다른 사람이 보유한 기존 LP가 없어야 함.
- Pair USDC 준비금이 실제 USDC 잔액보다 크면 안 됨.
- Pair 주소, 토큰 구성, 관련 거래 장소 및 코드 신원이 Profile 검증을 통과해야 함.
마이그레이션 전송 후 실제 USDC 증가량도 확인합니다. LP 발행 후 Token 준비금이 마이그레이션 한도와 같고 USDC 준비금이 이전 실제 USDC 잔액 + 이번 풀 투입 USDC 와 같은지 검증합니다. 불일치하면 PairContaminated 또는 해당 검증 오류로 롤백됩니다.
설정 스냅샷은 버전 번호 하나만 확인하는 것이 아닙니다. 마이그레이션은 Engine 배포기, Engine 구현, 거래 장소 Factory/Router의 코드 해시 및 관계를 재검증하고 Engine 매개변수 해시와 Oracle 설정을 확인합니다. Pair 초기화 코드 해시로 예상 주소를 도출하고 런타임 코드 해시로 실제 Pair를 검증합니다. 배포기나 구현의 런타임 코드가 등록값과 다르면 변경된 구현을 조용히 사용하지 않고 최종 매수 주문 전체가 원자적으로 롤백됩니다.
위 규칙은 모든 규모의 기부를 수용한다는 보장이 아닙니다. Pair 정수 준비금 범위, LP 발행 및 기타 실행 제약은 여전히 적용됩니다. 준비금에 반영되지 않은 기부는 마이그레이션 전에 Pair의 정상 작업으로 이동될 수 있으므로 실행 시점 잔액을 기준으로 해야 합니다.
기부금의 귀속
마이그레이션 시 기존 USDC 잔액을
이 곡선이 추가하는 Token은 여전히 고정 206,900,000입니다. 마이그레이션에 남은 USDC 기부는 실제 풀로 들어가며 기부자나 최종 매수자에게 반환되지 않습니다. 실제 초기 가격과 actualStartMarketCap, 고정 이상적 마이그레이션 기준점은 바꾸지 않습니다. 마이그레이션 순간의 고가 기부만으로 용량의 시간 가중 해제가 즉시 완료되지도 않습니다.
예시 E: 예시 D의 주 Pair에 170 USDC를 추가로 유지
| 항목 | 기부 없음 | 170 USDC 기부 추가 |
|---|---|---|
| 외부 시장 Token 준비금 | 206,900,000 | 206,900,000 |
| 외부 시장 USDC 준비금 | 12,161.433369 | 12,331.433369 |
| 실제 초기 프로토콜 시가총액 | 58,779.281628806186563557 | 59,600.934601256645722571 |
| 고정 이상적 마이그레이션 시가총액 | 58,779.281633639439342677 | 58,779.281633639439342677 |
Factory에 USDC를 직접 보내는 것은 별개입니다. 특정 Token의 realNativeReserves 가 자동 증가하지 않으므로 해당 Token의 마이그레이션 자금이 자동으로 되지 않습니다. 곡선 장부 잔액, Factory 총잔액 및 Pair 실제 잔액을 구분해야 합니다.
5. LP 및 대출 재고의 최종 귀속
초기 LP 전량은 일반 보유자가 상환할 수 없음
동시에 이번 발행 LP가 0보다 크고 총 LP가 이번 반환 유동성 수량보다 커야 하며, 이는 V2 초기 최소 유동성 구조를 반영합니다. 생성자, 운영자, 프로토콜 지갑 및 최종 매수자는 이번 마이그레이션 LP를 받지 않습니다.
여기서 ‘LP 소각’은 LP를 영 주소가 보유하여 일반 계정이 꺼내 상환할 수 없음 을 뜻하며 ERC-20 총공급량 가 0이 되는 것이 아닙니다. Pair 내부 Token도 그로 인해 소각되지 않습니다. 마이그레이션 검사는 초기 시점을 대상으로 하므로 외부 AMM이 이후 영원히 유동성을 추가하거나 다른 LP를 발행하지 않는다고 주장할 수 없습니다.
대출 준비금의 독립성 유지
199,861,071 Token은 사전 계산된 Engine 주소에 이미 보유되어 있습니다. 마이그레이션은 Engine을 배포·초기화할 뿐 재발행하거나 이 원금을 Pair로 보내지 않습니다. Engine 초기화는 실제 Pair 준비금을 읽고 독립 장부로 사용 가능 대출 원금을 추적합니다.