Skip to main content
Bu sayfa yapay zekâ tarafından otomatik olarak çevrilmiştir. İngilizce sürüm esas alınır.İngilizce sürümü görüntüle →
Her Raydium programının en az bir ayrıcalıklı rolü vardır — programı yükseltebilen, yeni konfigürasyonlar oluşturabilen veya protokol ücretlerini çekebilen bir anahtar. Bu rollerin yapabileceklerini en aza indirmek (ve gecikmeli multisig’lerin arkasına koymak) tehlikeye atılmış bir yöneticiye karşı birincil savunmadır. Bu sayfa rolleri ve bunların pratikte nasıl güvenli hale getirildiğini kataloglar.

Programa göre roller

AMM v4

CPMM

Yaratıcı ücreti toplama ayrıcalıklı bir rol tanıtmaz. CollectCreatorFeePermissionless herhangi bir ödeyiciyi kabul eder, alıcı sahibini PoolState.pool_creator ile sınırlandırır ve her iki hedefi de o yaratıcının kanonik ATA’larına sınırlandırır. Bir çağrıcı eksik ATA’ları finanse edebilir ve taramasını tetikleyebilir ancak ücretleri yeniden yönlendiremez.

CLMM

Bir Permission PDA’sı tutmak, yetkilisinin CreatePermissionedPool çağrısı yapmasını sağlar — zaten kanonik bir havuza sahip bir çift için ek havuzlar oluşturur, her biri farklı bir seed_index türetilmiş adresinde. İzin yalnızca pool oluşturmaya kapsamlıdır: fonları hareket ettiremez, ücretleri değiştiremez veya mevcut herhangi bir havuza dokunmaz. Bunu iptal etmek (ClosePermissionPda) yetkilinin daha fazla havuz oluşturmasını durdurur ancak zaten oluşturulan havuzları etkilemez. limit_order_admin kasıtlı olarak dar bir operasyonel roldür. Zincir dışı bir keeper’ın doldurulmuş emirleri, emrin sahibinin çevrimiçi olması gerekmeden taramasını sağlar. Keeper anahtarı sıcaktır (keeper VM’de yaşar) ve yukarıdaki multisig’lerden bağımsız olarak döndürülür. Somut olarak, keeper yetkilisi şu şekilde sınırlandırılır:
  • SettleLimitOrder — doldurulmuş bir emrin çıktısını emrin limit fiyatında sahibinin ATA’sına itin.
  • CloseLimitOrder — tamamen çözülmüş bir emrin hesabını kapat ve kirayı geri al (kira emir sahibine gider).
OpenLimitOrder, IncreaseLimitOrder, DecreaseLimitOrder çağrısı yapamaz, herhangi bir pool alanını mutate edemez veya başka herhangi bir talimat için imza atamaz — bu kontroller zincir üzerinde seed ve has_one kısıtlamaları tarafından talimatın Accounts yapısında uygulanır. Tehlikeye atılmış bir keeper en kötü ihtimalle kullanılamaz (emirler sahibi kendileri çözenene kadar park edilir) veya meşru doldurulabilir emirleri sıra dışında çöz/kapat; kullanıcı fonlarını sahibinin zaten yetkilendirdiği yerden başka bir yere taşıyamaz.

Farm v6

Bireysel farmların protokol yöneticisi yoktur — her farmın oluşturucu yalnızca kendi farmını kontrol eder ve oluşturucunun yetkileri sınırlıdır (kullanıcı stake’lerini ele geçiremez, stake mint’ini değiştiremez).

LaunchLab

Platform-yönetici izin listesi kendi kendini kısıtlar: o platform altındaki launch’ların hangi GlobalConfig hesaplarını kullanabileceğini sınırlandırır. Diğer platformlar veya mevcut launch fonları üzerinde yetki vermez. Kanonik delegeli yetki adresleri reference/program-addresses içinde yaşar.

Program yükseltme yetkilisi

Raydium’un programları standart Solana BPF Loader v3 yükseltme mekanizmasını kullanır. Tüm programlar için yükseltme yetkilisi 3/4 Squads multisig’idir. Neden 3/4: tek bir tehlikeye atılmanın yetersiz olması için yeterli imzacı; meşru bir yükseltmeyi koordine etmek için yeterince az. Dört yetki bağımsız, hava geçirmez soğuk cihaz imzacılarıdır ve çekirdek takım üyeleri tarafından tutulur. Sıralı imzalama aynı işlemde paralel onayları engeller; işlemler sabit bir son kullanma penceresini taşır. Multisig işlemleri Solana’nın STRIDE Programı (Asimetrik Araştırma) ile ortaklık halinde periyodik olarak gözden geçirilir.

Yükseltme yetkilisini kaldırma

Raydium, herhangi bir programın yükseltme yetkilisini null olarak ayarlamadı. Protokol, programların yükseltmesi gerektiği ilkesi altında çalışır (hataları yamalamak, Token-2022 gibi uzantılar eklemek, entegrasyon kaymasını düzeltmek). Ödünleşme: kullanıcılar 3/4 multisig’in yalnızca iyi incelenmiş yükseltmeleri dağıtacağına güvenir. Değişmez bir alternatif isteyen kullanıcılar için, eski AMM v4 programı son denetiminden bu yana kararlı kalmıştır; 18 ayda sıfır yükseltme. Bu kod yolu, yetki hala var olsa da etkili bir şekilde dondurulmuştur.

AmmConfig yetkilisi

Her yeni AmmConfig oluşturması izinlidir — 3/5 treasury multisig’i yeni ücret seviyeleri ve tick aralıklarını yetkilendirir. Mevcut havuzlar AmmConfig’lerini PDA’ya göre referans alır; havuzun ücret seviyesi AmmConfig’in söylediği şeydir. Yöneticiler mevcut bir AmmConfig’i değiştirebilir mi? Evet, teknik olarak. updateAmmConfig yönetici tarafından çağrılabilir. Pratikte, dağıtılan AmmConfig’lere yapılan değişiklikler kaçınılır çünkü bu konfigürasyonu kullanan tüm havuzların ekonomisini sessizce değiştirir. Protokol politikası, herhangi bir değişiklik için yeni bir AmmConfig oluşturmak ve geçiş yapmaktır. Yöneticiler konfigürasyon yoluyla protokol ücretlerini çalabilir mi? Hayır — AmmConfig ücret parametrelerini içerir ancak protokol ücreti alıcısını değil; bu havuz başına ayrı bir değişmez adrestir.

Protokol ücreti talebinde bulunma

Swap ücretlerinin bir kısmı (tipik olarak 25 bps swap ücretinin 3–12 bps’si, konfigürasyona bağlı olarak) bir protokol ücreti kasasına tahakkuk eder. Multisig bu tahakkuk eden ücretleri çekebilir. Kullanıcılar bundan dolayı LP bakiyelerinin değiştiğini asla görmezler — bu protokolün önceden ayrılan payıdır, LP parası değildir.

Farm oluşturucu yetkilisi

Farms v6, oluşturucuya şu yetkiyi verir:
  • Ödül kasasını finanse et (daha fazla token ekle).
  • Zamanlamayı uzat (bitiş saatini ileri itmek).
  • Bitiş saatinden sonra withdrawReward çağrısı yaparak kullanılmayan kasa bakiyesini geri al.
Farm oluşturucuları yapamaz:
  • Stake edilmiş kullanıcı LP’sini çek.
  • Stake mint’ini değiştir.
  • Emisyon oranlarını geriye dönük olarak değiştir (yalnızca setRewards aracılığıyla ileri bakış).
  • Kullanıcı hasat’larını dondur.
Kötü niyetli bir farm oluşturucu en kötü ihtimalle kasayı yetersiz finanse edebilir, böylece farm kurutur; kullanıcıların ana stake’i her zaman güvenlidir.

Squads multisig konfigürasyonu

Raydium, farklı risk yüzeyleri için iki ayrı Squads multisig’i işletir. Her ikisi de Squads Protocol UI aracılığıyla zincir üzerinde incelenebilir. Yükseltme multisig’inin operasyonel özellikleri:
  • 24 saatlik timelock herhangi bir işlemde. Bugün onaylanan bir yükseltme en erken 24 saat sonra yürütülür ve kullanıcılara yanıt verme zamanı verir.
  • Hava geçirmez soğuk cihaz imzalama. Soğuk cihazların ağ kartları fiziksel olarak çıkarılmıştır; yalnızca bir donanım cüzdanına bağlanırlar ve işlem verilerini ayrı bir sıcak cihazdan QR kodu aracılığıyla okurlar.
  • Sıralı imzalama. Yalnızca bir soğuk cihaz bir işlemi oluşturup imzaladıktan sonra, sonraki soğuk cihaz imzalama işlemine başlayabilir — aynı işlemde çakışan veya paralel imzaları engeller.
  • İşlem son kullanma tarihi. Her işlem sabit bir son kullanma penceresini taşır, bu nedenle eski işlemler otomatik olarak geçersiz kılınır.
  • TOTP + fiziksel anahtar uygulaması işlem başlatma ve zincir üzerinde yayın için kullanılan sıcak cihazlarda.
  • Genel işlem kuyruğu. Herkes Squads UI’de bekleyen yükseltmeleri izleyebilir.
Treasury multisig’inin timelock’u yoktur — kapsamı daha dar ve rutin işlemler (AmmConfig’ler oluşturma, ücretleri tarama) aynı gün yapılması gerekir. Treasury multisig ayrıca yukarıdaki programa göre tablolarda listelenen sınırlı programa-yönetici yetkilisini tutar; bu geçici bir düzenlemedir ve projenin güvenlik ortakları ile periyodik olarak gözden geçirilir.

Yetkileri zincir üzerinde doğrulama

Bir programın mevcut yükseltme yetkilisini doğrulamanın en basit yolu:
Çıktı şunları içerir:
Authority beklenen Squads multisig adresi değilse, bir sorun vardır. Raydium, beklenen yetki adreslerini reference/program-addresses adresinde yayınlar. AmmConfig / pool yönetici rolleri için, zincir üzerinde hesabı getir ve çöz:

Tarihsel yetki değişiklikleri

Kullanıcı tarafı hususlar

Bir kullanıcı/LP/entegratör olarak neler yapmalısınız?
  1. Büyük tahsislerden önce yükseltme yetkilisini kontrol edin. Belgelenen multisig’le eşleştiğini doğrulayın.
  2. Multisig etkinliğini izleyin. Squads UI bekleyen işlemleri gösterir; planlanan bir yükseltme, değişiklikle katılmıyorsanız çıkış yapmanız için 24 saat verir.
  3. Timelock’a duyarlı geri alma stratejileri. Otomatik bir compounder çalıştırıyorsanız, çıkış yolunuzun değiştirilmekte olan bir talimatı gerektirmediğinden emin olun.
  4. Program değişmezliğini varsaymayın. Her Raydium programı yükseltilmesi yapılabilir; buna göre planlayın.

Entegratörler için tuzaklar

1. Yetki adreslerini önbelleğe alma

Yükseltme yetkilisini veya yönetici multisig adresini kodunuza sabit kodlarsanız ve daha sonra döndürülürse, doğrulamanız başarısız olur. reference/program-addresses adresinden çalışma zamanında getirin veya periyodik olarak yenileyin.

2. AmmConfig’lerin kararlı olduğunu varsaymak

Herhangi bir zamanda yeni bir AmmConfig oluşturulabilir. Toplayıcınız/yönlendiricininiz tam konfigürasyon listesini periyodik olarak yeniden getirmelidir (saatlik iyidir).

3. Farm-oluşturucu üzüntü vektörleri

Düşük itibar sahibi bir farmın içine yatırım yapıyorsanız, oluşturucu farmı erken bitirebilir ve ödül kasasını geri alabilir (hiçbir kullanıcı stake etmediğini varsayarak). Kullanıcılar stake ettikten sonra, orantılı haklar program tarafından uygulanır; geri alma yalnızca rasyonel sondan sonra kalanı alır.

İşaretçiler

Kaynaklar: