Skip to main content
이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →
모든 Raydium 프로그램은 최소한 하나의 특권 역할을 가지고 있습니다. 프로그램을 업그레이드하거나 새로운 설정을 만들거나 프로토콜 수수료를 인출할 수 있는 키입니다. 이러한 역할이 할 수 있는 일을 최소화하고 지연이 있는 멀티시그 뒤에 배치하는 것이 손상된 관리자에 대한 주요 방어입니다. 이 페이지는 역할과 실제로 어떻게 보호되는지를 정리합니다.

프로그램별 역할

AMM v4

CPMM

크리에이터 수수료 수집은 특권 역할을 도입하지 않습니다. CollectCreatorFeePermissionless는 모든 지불자를 허용하고, 수령자 소유자를 PoolState.pool_creator로 제한하며, 두 목적지를 모두 해당 크리에이터의 정규 ATA로 제한합니다. 호출자는 누락된 ATA에 자금을 제공하고 스윕을 트리거할 수 있지만 수수료를 리디렉션할 수 없습니다.

CLMM

seed_index 파생 주소에서 쌍에 대한 추가 풀 생성 (CreateCustomizablePoolV2)은 역할이 필요하지 않습니다. 2026-10-22 업그레이드 이전에는 전용 permission_pda_admin 키가 발급한 Permission PDA가 필요했습니다. 해당 역할, Permission 계정 및 두 개의 관리자 명령어가 제거되었습니다. limit_order_admin은 의도적으로 좁은 운영 역할입니다. 오프체인 키퍼가 오더 소유자가 온라인 상태일 필요 없이 채워진 오더를 스윕할 수 있도록 존재합니다. 키퍼 키는 핫 키입니다 (키퍼 VM에 있음) 그리고 위의 멀티시그와 독립적으로 회전됩니다. 구체적으로, 키퍼 권한은 다음으로 제한됩니다:
  • SettleLimitOrder — 채워진 오더의 출력을 오더의 리미트 가격에서 소유자의 ATA로 푸시합니다.
  • CloseLimitOrder — 완전히 정산된 오더의 계정을 닫아 임차료를 회수합니다 (임차료는 오더 소유자에게 갑니다).
OpenLimitOrder, IncreaseLimitOrder, DecreaseLimitOrder를 호출하거나 풀 필드를 변경하거나 다른 명령어에 서명할 수 없습니다. 이러한 확인은 명령어의 Accounts 구조의 시드 및 has_one 제약 조건에 의해 온체인에서 적용됩니다. 손상된 키퍼는 최악의 경우 사용 불가능할 수 있습니다 (오더는 소유자가 직접 정산할 때까지 주차됨) 또는 합법적으로 채워질 수 있는 오더를 순서대로 정산/닫을 수 있습니다. 소유자가 이미 승인한 곳 이외의 다른 곳으로 사용자 자금을 이동할 수 없습니다.

Farm v6

개별 팜에는 프로토콜 관리자가 없습니다. 각 팜의 크리에이터는 자신의 팜만 제어하며, 크리에이터의 권한은 제한됩니다 (사용자 스테이크를 빼앗을 수 없음, 스테이킹 민트를 변경할 수 없음).

LaunchLab

플랫폼 관리자 허용 목록은 자체 제한적입니다. 해당 플랫폼 아래의 런칭이 사용할 수 있는 GlobalConfig 계정을 제한합니다. 다른 플랫폼이나 기존 런칭 자금에 대한 권한을 부여하지 않습니다. 정규 위임된 권한 주소는 reference/program-addresses에 있습니다.

프로그램 업그레이드 권한

Raydium의 프로그램은 표준 Solana BPF Loader v3 업그레이드 메커니즘을 사용합니다. 모든 프로그램의 업그레이드 권한은 3/4 Squads 멀티시그입니다. 왜 3/4인가: 단일 손상이 불충분할 정도로 충분한 서명자; 합법적인 업그레이드를 조정하기에 충분히 적은 수. 네 명의 권한자는 독립적이며, 핵심 팀 멤버가 보유한 에어갭 콜드 디바이스 서명자입니다. 순차 서명은 동일한 트랜잭션에 대한 병렬 승인을 방지합니다. 트랜잭션은 고정된 만료 창을 가집니다. 멀티시그 작업은 **Solana의 STRIDE 프로그램 (Asymmetric Research)**과의 파트너십에서 주기적으로 검토됩니다.

업그레이드 권한 제거

Raydium은 어떤 프로그램의 업그레이드 권한도 null로 설정하지 않았습니다. 프로토콜은 프로그램이 업그레이드 가능해야 한다는 원칙 하에 운영됩니다 (버그를 패치하고, Token-2022와 같은 확장을 추가하고, 통합 드리프트를 수정하기 위해). 트레이드오프: 사용자는 3/4 멀티시그가 잘 검토된 업그레이드만 배포할 것이라고 신뢰합니다. Raydium 프로그램 중 현재 동결되거나 불변 대안으로 취급될 정도로 느린 것은 없습니다. AMM v4는 역사적으로 가장 정적이었지만 2026-07-22에 재배포되었습니다. 모든 프로그램의 마지막 배포 슬롯은 공개되어 있습니다. 그 중 하나가 휴면 상태라고 가정하기 전에 읽으세요: (각 프로그램의 ProgramData 계정에서; solana program show <PROGRAM_ID>는 동일한 슬롯을 보고합니다.)

AmmConfig 권한

각 새로운 AmmConfig 생성은 권한이 있습니다. 3/5 treasury 멀티시그가 새로운 수수료 계층과 틱 간격을 승인합니다. 기존 풀은 PDA로 AmmConfig를 참조합니다. 풀의 수수료 계층은 AmmConfig가 말하는 것입니다. 관리자가 기존 AmmConfig를 변경할 수 있나요? 기술적으로 그렇습니다. updateAmmConfig는 관리자가 호출할 수 있습니다. 실제로는 배포된 AmmConfigs의 수정을 피합니다. 왜냐하면 그 설정을 사용하는 모든 풀의 경제학을 조용히 변경하기 때문입니다. 프로토콜 정책은 모든 변경에 대해 새로운 AmmConfig를 생성하고 마이그레이션하는 것입니다. 관리자가 설정을 통해 프로토콜 수수료를 훔칠 수 있나요? 아니요. AmmConfig는 수수료 매개변수를 포함하지만 프로토콜 수수료 수령자는 포함하지 않습니다. 그것은 풀당 별도의 불변 주소입니다.

프로토콜 수수료 청구

스왑 수수료의 일부 (일반적으로 설정에 따라 25 bps 스왑 수수료의 3–12 bps)는 프로토콜 수수료 볼트에 누적됩니다. 멀티시그는 이러한 누적된 수수료를 인출할 수 있습니다. 사용자는 이로 인해 LP 잔액이 변경되는 것을 절대 보지 않습니다. 이것은 프로토콜의 사전 할당된 몫이지, LP 돈이 아닙니다.

팜 크리에이터 권한

Farms v6은 크리에이터에게 다음 권한을 제공합니다:
  • 보상 볼트에 자금을 조달합니다 (더 많은 토큰 추가).
  • 일정을 연장합니다 (종료 시간을 나중으로 밀어냅니다).
  • 종료 시간 후 withdrawReward를 호출하여 미사용 볼트 잔액을 회수합니다.
팜 크리에이터는 할 수 없습니다:
  • 스테이크된 사용자 LP를 인출합니다.
  • 스테이킹 민트를 변경합니다.
  • 배출 속도를 소급하여 변경합니다 (setRewards를 통해 전향적으로만 가능).
  • 사용자 수확을 동결합니다.
악의적인 팜 크리에이터는 최악의 경우 볼트에 자금을 부족하게 하여 팜이 고갈되도록 할 수 있습니다. 사용자의 원금 스테이크는 항상 안전합니다.

Squads 멀티시그 구성

Raydium은 서로 다른 위험 표면을 위해 두 개의 별도 Squads 멀티시그를 운영합니다. 둘 다 Squads Protocol UI를 통해 온체인에서 검사할 수 있습니다. 업그레이드 멀티시그의 운영 속성:
  • 모든 트랜잭션에 24시간 타임락. 오늘 승인된 업그레이드는 24시간 이후에 실행되지 않으므로 사용자가 대응할 시간이 있습니다.
  • 에어갭 콜드 디바이스 서명. 콜드 디바이스는 네트워크 카드가 물리적으로 제거되어 있습니다. 하드웨어 지갑에만 연결되고 별도의 핫 디바이스에서 QR 코드를 통해 트랜잭션 데이터를 읽습니다.
  • 순차 서명. 한 콜드 디바이스가 트랜잭션을 생성하고 서명한 후에만 다음 콜드 디바이스가 서명 프로세스를 시작할 수 있습니다. 동일한 트랜잭션에 대한 충돌하거나 병렬 서명을 방지합니다.
  • 트랜잭션 만료. 모든 트랜잭션은 고정된 만료 창을 가지므로 오래된 트랜잭션은 자동으로 무효화됩니다.
  • TOTP + 물리적 키 적용 트랜잭션 시작 및 온체인 브로드캐스트에 사용되는 핫 디바이스에서.
  • 공개 트랜잭션 큐. 누구나 Squads UI에서 보류 중인 업그레이드를 모니터링할 수 있습니다.
Treasury 멀티시그는 타임락이 없습니다. 범위가 더 좁고 일상적인 작업 (AmmConfigs 생성, 수수료 스윕)은 같은 날에 도착해야 합니다. Treasury 멀티시그는 또한 위의 프로그램별 테이블에 나열된 제한된 프로그램 관리자 권한을 보유합니다. 이것은 임시 배치이며 프로젝트의 보안 파트너와 주기적으로 검토됩니다.

온체인 권한 확인

프로그램의 현재 업그레이드 권한을 확인하는 가장 간단한 방법:
출력 결과:
Authority가 예상되는 Squads 멀티시그 주소가 아니면 문제가 있는 것입니다. Raydium은 예상되는 권한 주소를 reference/program-addresses에 공개합니다. AmmConfig / 풀 관리자 역할의 경우, 온체인 계정을 가져와 디코딩합니다:
AmmConfig에는 admin 필드가 없습니다. 프로그램 관리자는 프로그램에 컴파일된 공개키(crate::admin::ID)이고, 설정별 운영 권한은 protocolOwner / fundOwner입니다. BPF 업그레이드 권한은 별도의 로더 수준 문제이며, solana program show로 읽을 수 있습니다.

과거 권한 변경 이력

사용자 측 고려사항

사용자/LP/통합자로서 어떻게 해야 할까요?
  1. 대규모 할당 전에 업그레이드 권한을 확인하세요. 문서화된 멀티시그와 일치하는지 확인합니다.
  2. 멀티시그 활동을 모니터링하세요. Squads UI는 대기 중인 트랜잭션을 표시합니다. 예정된 업그레이드가 있으면 변경에 동의하지 않을 경우 24시간 동안 포지션을 정리할 수 있습니다.
  3. 타임락 인식 상환 전략을 사용하세요. 자동 컴파운더를 실행 중이라면, 변경되는 명령어를 필요로 하지 않는 정리 경로가 있는지 확인합니다.
  4. 프로그램 불변성을 가정하지 마세요. 모든 Raydium 프로그램은 업그레이드될 수 있습니다. 이를 계획하세요.

통합자를 위한 주의사항

1. 권한 주소 캐싱

코드에 업그레이드 권한이나 관리자 멀티시그 주소를 하드코딩하고 나중에 회전하면 검증이 실패합니다. 런타임에 reference/program-addresses에서 가져오거나 주기적으로 새로고침하세요.

2. AmmConfig가 안정적이라고 가정

새로운 AmmConfig는 언제든지 생성될 수 있습니다. 집계자/라우터는 전체 설정 목록을 주기적으로(시간 단위로) 다시 가져와야 합니다.

3. 팜 생성자 그리프 벡터

평판이 낮은 팜에 입금하는 경우, 생성자가 팜을 조기에 종료하고 보상 금고를 회수할 수 있습니다(아직 사용자가 스테이킹하지 않은 경우). 사용자가 스테이킹하면, 프로그램에서 비례 배분 권리가 강제됩니다. 회수는 합리적인 종료 후 남은 부분만 가져갑니다.

참고 자료

출처: