P08-L04 · P08 · P08-M01
Proxy'ler ve yükseltme yetkisi dahil ayrıcalıklı kontrolleri belirlemek
Ön koşullar: P08-L03
Öğrenme hedefleri
- Bakiye, kısıtlama, uygulama ve yükseltme katmanlarını haritalayın.
- Dar sahiplik iddialarını kalan kontrollere karşı değerlendirin.
- Eşik, olay atfı ve değişmezlik için gerekli kanıtı belirleyin.
EN ana kaynak · P08-L04 · tahmini 45 dakika · needs_review
Neden önemli
“Sahiplikten vazgeçildi” rozeti etkin bir duraklatma rolü veya yükseltme denetleyicisiyle birlikte bulunabilir. Kaldırılmış mint yetkisi, dondurma yetkisiyle birlikte bulunabilir. Bu ifadelerin her biri doğru olsa bile “kimsenin kontrolü yok” geniş sonucu yanlış olabilir.
Bu ders katmanlı bir kontrol haritası öğretir. Her ayrıcalığı nesnesi, mevcut sahibi, koşulu ve olası yönetim yoluyla bağlayacaksınız. Sonuç bir kanıt kaydıdır; güvenlik puanı veya suçlama değildir.
Açıklama
Kontrol edilen nesneyi tanımlayın
Sahip sözcüğünü nesnesini belirtmeden kullanmayın. Solana veri hesabının program sahibi, token hesabı yetkisi, EVM Ownable sahibi ve NFT pozisyon sahibi farklı alanlardır. Adları benzer olsa da farklı mekanizmaları yönetirler. Alanı ve nesneyi değerin yanında yazın.
Token bakiyesi kontrolünü, mint düzeyi kısıtlamaları, uygulama rollerini ve kod değiştirme yetkisini ayırın. Bir katmandaki bulgu başka katmandaki izni silemez. Örneğin token mint'inin mint yetkisi bulunmayabilir, ancak token ile etkileşen uygulama yükseltilebilir kalabilir. Uygulamanın standart Token Program'ı yönettiğini varsaymak yerine rolünü ayrı inceleyin.
Kontrol haritası insan kimliklerinin değil, kabiliyetlerin grafiğidir. Listelenen yetkili bir kullanıcı hesabı veya program aracılı adres olabilir. Kamuya açık hesap etiketleri anahtarların kimde olduğunu veya birkaç hesabın aynı denetleyiciyi paylaşıp paylaşmadığını belirlemez.
Dondurmayı durum kısıtlaması olarak anlayın
Solana'nın dondurma mekanizması token hesabı sahibini, mint'i ve bakiyeyi korurken çözülene kadar belgelenmiş alma, transfer ve yakma işlemlerini engeller [S08-FREEZE]. Bakiye silme veya donduran yetkiliye transfer değildir.
Durum ve yetki ayrı kaydedilmelidir. Hesap şu anda donmamışken dondurma yetkisi bulunabilir. Tersine, donmuş durum gözlemi belirli bir insanın buna neden olduğunu göstermez. Atıf önemliyse başarılı işlemi ve yetkilendirmesini isteyin.
İptal, evrensel güçler bütününü değil, seçilen bir yetki rolünü kaldırır [S08-SET]. Mint rolünün iptalinin donma durumunu değiştirdiğini varsaymayın. Mevcut donmuş hesaplar ve olası kurtarma/çözme yolları ayrı inceleme gerektirir; dar bir iptali her hesabın transfer yapabildiğinin kanıtı olarak tanımlamayın.
Ownable dışındaki uygulama rollerini inceleyin
OpenZeppelin Ownable sahipliğinden vazgeçme, sahip kontrolüyle korunan işlevleri devre dışı bırakır; role dayalı izinler ayrı bir örüntüdür [S08-ACCESS]. Dağıtılmış token'ın bunları birleştirip birleştirmediği kod ve durum sorusudur. Duraklatma rolü kalıyorsa yalnızca sahiplikten vazgeçme onu kaldıramaz.
Sahiplik, duraklatma, rol verme/iptal ve yükseltmeler için tablo oluşturun. Her satırda gerçek kontrolü, mevcut yetkiyi, yönetim yolunu ve belirsizliği kaydedin. Rol adı erişilebilir bir işlemle bağlanana kadar yalnızca betimleyicidir. Meta veride “PAUSER” bulunması duraklatma işlevinin kanıtı değildir.
Kontrol bir timelock veya multisig'e bağlı olabilir. Rozeti kabul etmek yerine ilgili sözleşmeyi, eşiği, gecikmeyi ve aşma koşullarını doğrulayın. Gecikme bir zaman koşuludur; kontrolün yok olması değildir. Multisig eşiği imzaları tanımlar, mutlaka bağımsız insanları değil.
Proxy ve uygulama kontrolünü izleyin
ERC-1967 tarzı proxy'lerde uygulama veya beacon bağlantısını isteğe bağlı yönetici slotundan ayırın. Beacon ilişkili proxy'ler için mantığı belirler; UUPS tarzı yetkilendirme uygulama mantığında bulunabilir, dolayısıyla yalnızca boş yönetici slotu tam bir sonuç değildir [S08-PROXY; S08-UUPS].
Proxy'nin kullanıcıya görünen adresi kuralları değiştiğinde aynı kalabilir. Uygulamayı incelenen bağlama sabitleyin, ardından onu değiştirebilen yolu inceleyin. Doğrulanmış uygulama sayfasını denetleyip proxy bağlantısını kontrolsüz bırakmayın. Sonraki uygulama önceki davranış varsayımlarını geçersiz kılabilir.
Bu ders yükseltme yürütmeyi öğretmez. Sağlanan yetkilendirme yolunun salt okunur biçimde nasıl tanımlanacağını öğretir. Denetleyicinin iç kuralları mevcut değilse dış yetki adresi bilinse bile onları bilinmeyen olarak işaretleyin.
Solana program yükseltmelerini mint rollerinden ayırın
Solana loader-v3 altında program yükseltmeleri program yükseltme yetkisine bağlıdır; bu yetkiyi kaldırmak o programı değişmez yapar [S08-DEPLOY]. Bu, mint'in mint-authority alanı değildir. İncelenen program ve loader mekanizması için geçerlidir; bağlı her sözleşme veya zincir dışı hizmet için değil.
Standart Token Program tarafından yönetilen mint, özel uygulama onu kullanıyor diye bağımsız yükseltilebilir olarak gelişigüzel tanımlanmamalıdır. Özel programı adlandırın ve ilgisini açıklayın. Veri kümesinde PROGRAM-X yardımcı uygulamadır; MINT-F hesabının sahibi olan Token Program değildir.
Değişmezlik kod nesnesiyle sınırlıdır. Dürüst kullanıcıları, değişmez meta veriyi, yeterli likiditeyi veya çevre sistemlerin güvenliğini kanıtlamaz. Benzer şekilde etkin yükseltme yetkisi, kodun kötü niyetle değişeceğini değil, koşullara bağlı bir kabiliyeti kanıtlar.
Katmanlı sonucu raporlayın
Savunulabilir cümle bağlamı ve sınırları belirtir: “S0'da sahip alanından vazgeçilmiştir, PAUSER ataması kalır ve proxy yükseltme denetleyicisi sağlanmıştır, ancak iç eşiği bilinmemektedir.” Bu, kategorik “merkeziyetsiz” etiketinden daha bilgilendiricidir.
İddianın kalan tek bir satırla çürütülüp çürütülemeyeceğini sorun. “Ayrıcalıklı kontrol yok” ifadesi kanıtlanmış tek etkin kabiliyetle çelişir. “Ownable sahip rolü yok” gibi dar iddia, geniş ifade başarısız olsa da desteklenebilir. İkisini de koruyun.
Terimler
- Donma durumu: token hesabında işlem kısıtlaması.
- Ownable sahibi: belirli sahip kontrolü örüntüsündeki yetki.
- Rol sahibi: belirli üyelik kontrolünü karşılayan hesap.
- Yükseltme denetleyicisi: kod değiştirme yolunu yöneten yetki.
- Beacon: proxy mantığını bağlama mekanizması.
- Timelock: belirli işlemlere gecikme getiren koşul.
Tarihsel örnek
ILLUSTRATIVE — FIX-P08-04. S0'da ayrı kurgusal nesneler.
| Kayıt | Nesne | Sağlanan kontrol/durum |
|---|---|---|
| F1 | SIM-SOL-A / MINT-F | mint yetkisi yok; dondurma yetkisi F |
| F2 | MINT-F'nin ACCOUNT-U hesabı | donmamış, bakiye 100 |
| F3 | MINT-F'nin ACCOUNT-V hesabı | donmuş, bakiye 50; olay atfı sağlanmamış |
| P1 | SIM-EVM-A / PROXY-Q | S0'da LOGIC-Q'ya devreder |
| P2 | PROXY-Q uygulama durumu | Ownable sahibi yok; PAUSER=P; rol yöneticisi G |
| P3 | PROXY-Q yükseltme yolu | denetleyici C; C'nin eşiği/gecikmesi mevcut değil |
| X1 | SIM-SOL-A / PROGRAM-X | yardımcı loader-v3 uygulaması; yükseltme yetkisi U |
PROGRAM-X, MINT-F'yi yöneten Token Program değildir. Veri kümesi bu yardımcı uygulamayı mint'e bağlayan kod etkilerini sağlamaz.
Kanıtın gösterdikleri
OBSERVED veri kümesinde: F kalır, V donmuştur, P/G kalır ve C/U sağlanan yükseltme yetkilileridir.
INFERRED: “Tüm kontroller kaldırıldı” bu ayrı kabiliyetlerle çelişir. Sahiplikten vazgeçme P2 hakkında daha dar desteklenen bir ifadedir.
Kanıtın göstermedikleri
UNKNOWN: C'nin iç kuralları, insan denetleyiciler, V'yi kimin dondurduğu ve PROGRAM-X'in kesin uygulama etkileri.
INSUFFICIENT EVIDENCE: Dondurma V'nin bakiyesinin yok edildiği anlamına gelmez. Sahibin yokluğu rol veya yükseltme olmadığını kanıtlamaz. U, standart Token Program'ın U tarafından kontrol edildiğini kanıtlamaz.
Yaygın hatalar
Sahibi nesnesini belirtmeden kullanmak; donmuş bakiyeyi sıfırla karıştırmak; boş proxy yönetici slotunun bütün yükseltmeleri dışladığını varsaymak; multisig etiketini doğrulanmış bağımsız kontrol olarak yorumlamak; yardımcı program yetkisini mint yetkisiyle birleştirmek.
Uygulamalı alıştırma
Dört kontrol katmanı üretin: hesap durumu, mint rolleri, EVM uygulama rolleri ve uygulama değiştirme yolları. “Bütün sahiplikten vazgeçildi, dolayısıyla her şey değişmez” ifadesini yeniden yazın. C ve V için gereken sonraki kanıtı listeleyin.
Açıklamalı düzeltmeyi göster
Çözümlü düzeltme ve beklenen akıl yürütme
Hesap durumu: U donmamış ve 100; V donmuş ve 50. Mint rolleri: mint yetkisi yok, freeze F mevcut. EVM uygulaması: sahip yok, PAUSER P mevcut, rol yöneticisi G. Kod değişiklikleri: PROXY-Q denetleyicisi C ve yardımcı PROGRAM-X U, ayrı kapsamlarla.
Sınırlı yeniden yazım: “S0'da PROXY-Q'nun Ownable sahip rolü yoktur, ancak duraklatma/rol yönetimi ve yükseltme kontrolü sağlanmış olarak kalır. MINT-F, F'yi korur; V atfedilmiş olay olmadan donmuştur. PROGRAM-X'in ayrı yükseltme yetkisi vardır; bu varlık üzerindeki etkileri çözümlenmemiştir.”
C için denetleyici kodunu/yapılandırmasını, imzacıları/eşiği veya gecikmeyi ve uygulanabilir aşma yollarını isteyin. V için başarılı dondurma olayını, bağlamı ve yetkilendirme kanıtını isteyin. 50 değerini koruyun; yakma kaydetmeyin.
On üzerinden puan: dört katmanlı harita (dört), dar yeniden yazım (üç), C/V kanıt talepleri (iki), program/mint ayrımı (bir).
Kontrol listesi
- Her sahip alanının nesnesini adlandırın.
- Yetkiyi mevcut durumdan ayırın.
- Sahiplikten vazgeçmeden sonra rolleri inceleyin.
- Mantığı ve yükseltme yollarını aynı bağlamda belirleyin.
- Etiketler yerine eşikleri/gecikmeleri doğrulayın.
- Değişmezliği incelenen nesneyle sınırlayın.
Özet
Kontrol katmanlıdır. Kaldırılan rol dar bir olgu ortaya koyar; etkin roller ve kod değiştirme yolları ayrı inceleme gerektirir.
Özet
Dondurma silme değil, kısıtlamadır. Sahiplikten vazgeçme tüm kontrolden vazgeçme değildir. Proxy, program ve mint yetkileri farklıdır.
Görsel özellikler
F1–F3,P1–P3,X1 işaretçileriyle dört şeritli izin haritası; değişmeyen donmuş bakiye 50'yi gösterin. PROXY-Q→LOGIC-Q ve ayrı C denetleyicisini çizin; PROGRAM-X/U, MINT-F'den ayrı olsun. C yapılandırmasını bilinmeyen olarak işaretleyin.
Örnek niteliğinde katmanlı kontroller; owner yokluğu dar bir iddiadır.
Metin alternatifleriyle deterministik SVG/HTML veya grafikler, koyu lacivert/siyah ve ölçülü camgöbeği, elektrik mavisi ve mor kullanın. Her miktarı ve belirsizliği etiketleyin. 390px genişlikte panelleri alt alta yerleştirin; 768px/masaüstü ve Arapça RTL doğrulaması gelecekteki görsel çalışmalar olarak kalır. Tanımlayıcıları LTR tutun, olgusal eksenleri/kenar yönlerini değiştirmeyin. Marka öğeleri eklenirse yalnızca sağlanan resmi BlockAssay işaretini kullanın. Her iki kayıt da teslim edilmiş varlık değil, belirtimdir.
Araçlar
RADAR aracını dersin sınırlı eğitim amacı için yalnızca ağ desteği, tam kimlik, alanlar ve köken doğrulanmışsa kullanın. Bu içerik hiçbir çalışma zamanı uç noktası veya sağlayıcı kabiliyeti ileri sürmez. Gömülü çevrimdışı veri kümesini ücretli erişim olmadan kullanın. Eksik veri bilinmeyen kalır; cüzdan bağlantısı, işlem imzası, token lansmanı veya canlı alım satım gerekmez. Academy ilerlemesi, ödemeler ve yönlendirmeler Radar kanıtını hiçbir zaman değiştirmez. Tanısal Pasaport fiyat tahmini veya güvenlik sertifikası değil, gözlemleri ve sınırları korur.
Kaynaklar ve iddia sınırları
- OpenZeppelin 5.x proxy — Transparent, beacon ve uygulama tabanlı UUPS yükseltme mekanizmaları; gerçek yetkilendirme inceleme gerektirir. Kontrol tarihi: 2026-09-30.
- Solana hesabı dondurma — Tutar veya sahiplikten ayrı hesap durumu kısıtlamaları. Kontrol tarihi: 2026-09-30.
- Solana yetki belirleme — Role özgü değişiklikler ve iptal; genel güvenlik hükmü değildir. Kontrol tarihi: 2026-09-30.
- OpenZeppelin 5.x erişim kontrolü — Ownable ve role dayalı ayrıcalık örüntüleri; gerçekten dağıtılmış yetkilendirmeyi inceleyin. Kontrol tarihi: 2026-09-30.
- ERC-1967 proxy depolama slotları — Uygulama, beacon ve isteğe bağlı yönetici slotları; mekanizmaya özgü inceleme. Kontrol tarihi: 2026-09-30.
- Solana program dağıtımı — Loader-v3 program yükseltme yetkisi; token mint rolü değildir. Kontrol tarihi: 2026-09-30.
Belgeler mekanizmaları destekler, kurgusal veri kümesi değerlerini değil. Tüm örnekler ve alıştırma kayıtları, bu dosyada sabitlenmiş özgün ILLUSTRATIVE materyaldir. S0/S1 sentetik bağlam etiketleridir; canlı veya tarihsel kayıt defteri ölçümü toplanmadığından observedAt null olur. Yayımlamadan veya entegrasyondan önce belgeleri ve gerçekten dağıtılmış davranışı yeniden inceleyin.
Sonraki ders
P08-L05 çözümlü alıştırma ve quiz incelemesinden sonra.
Görsel özellikler
P08-L04-V01
Her katmanda hangi kontrol kalır?
Örnek niteliğinde katmanlı kontroller; owner yokluğu dar bir iddiadır.
F1–F3,P1–P3,X1 işaretçileriyle dört şeritli izin haritası; değişmeyen donmuş bakiye 50'yi gösterin. PROXY-Q→LOGIC-Q ve ayrı C denetleyicisini çizin; PROGRAM-X/U, MINT-F'den ayrı olsun. C yapılandırmasını bilinmeyen olarak işaretleyin.
Mint dondurma yetkisi kalır; EVM owner yoktur, ancak P,G,C kalır; ayrı yardımcı program U yetkisine sahiptir.
390px metin eşdeğeriyle alt alta paneller; 768px ve masaüstünü daha sonra doğrulayın
Etiketler ve gezinme RTL; tanımlayıcılar LTR olarak ayrılır; sayısal eksenleri, olay sırasını ve olgusal kenar yönünü koruyun.
FIX-P08-04
P08-L04-V02
Hangi iddia desteklenir, koşulludur, bilinmeyendir veya desteklenmez?
Örnek niteliğinde kanıt sınırları; güvenlik veya yatırım hükmü verilmez.
Bu dersin iddialarına ve kayıt kimliklerine bağlı, OBSERVED/INFERRED/UNKNOWN/INSUFFICIENT EVIDENCE etiketli dört satır. Gözlemler canlı ölçümler değil, sağlanan kurgusal kayıtlardır.
Kayıt konumları ve sonraki doğrulama adımlarıyla dört kanıt durumu satırı.
390px metin eşdeğeriyle alt alta paneller; 768px ve masaüstünü daha sonra doğrulayın
Etiketler ve gezinme RTL; tanımlayıcılar LTR olarak ayrılır; sayısal eksenleri, olay sırasını ve olgusal kenar yönünü koruyun.
FIX-P08-04
Kaynaklar ve iddia sınırları
S08-FREEZE · official_documentation_or_standard
Solana hesabı dondurma
- Desteklenen iddia
- Tutar veya sahiplikten ayrı hesap durumu kısıtlamaları.
- Doğrulama sınırı
- Birincil sayfa mekanizmalara editoryal destek için incelendi; dağıtılmış varlık veya kayıt defteri veri kümesi bağımsız ölçülmedi.
- Kontrol tarihi
- 2026-09-30
https://solana.com/docs/tokens/basics/freeze-account
S08-SET · official_documentation_or_standard
Solana yetki belirleme
- Desteklenen iddia
- Role özgü değişiklikler ve iptal; genel güvenlik hükmü değildir.
- Doğrulama sınırı
- Birincil sayfa mekanizmalara editoryal destek için incelendi; dağıtılmış varlık veya kayıt defteri veri kümesi bağımsız ölçülmedi.
- Kontrol tarihi
- 2026-09-30
https://solana.com/docs/tokens/basics/set-authority
S08-ACCESS · official_documentation_or_standard
OpenZeppelin 5.x erişim kontrolü
- Desteklenen iddia
- Ownable ve role dayalı ayrıcalık örüntüleri; gerçekten dağıtılmış yetkilendirmeyi inceleyin.
- Doğrulama sınırı
- Birincil sayfa mekanizmalara editoryal destek için incelendi; dağıtılmış varlık veya kayıt defteri veri kümesi bağımsız ölçülmedi.
- Kontrol tarihi
- 2026-09-30
https://docs.openzeppelin.com/contracts/5.x/access-control
S08-PROXY · official_documentation_or_standard
ERC-1967 proxy depolama slotları
- Desteklenen iddia
- Uygulama, beacon ve isteğe bağlı yönetici slotları; mekanizmaya özgü inceleme.
- Doğrulama sınırı
- Birincil sayfa mekanizmalara editoryal destek için incelendi; dağıtılmış varlık veya kayıt defteri veri kümesi bağımsız ölçülmedi.
- Kontrol tarihi
- 2026-09-30
https://eips.ethereum.org/EIPS/eip-1967
S08-DEPLOY · official_documentation_or_standard
Solana program dağıtımı
- Desteklenen iddia
- Loader-v3 program yükseltme yetkisi; token mint rolü değildir.
- Doğrulama sınırı
- Birincil sayfa mekanizmalara editoryal destek için incelendi; dağıtılmış varlık veya kayıt defteri veri kümesi bağımsız ölçülmedi.
- Kontrol tarihi
- 2026-09-30
https://solana.com/docs/core/programs/program-deployment
S08-UUPS · official_documentation
OpenZeppelin 5.x proxy
- Desteklenen iddia
- Transparent, beacon ve uygulama tabanlı UUPS yükseltme mekanizmaları; gerçek yetkilendirme inceleme gerektirir.
- Doğrulama sınırı
- Birincil belgeler incelendi; dağıtılmış proxy incelemesi yapılmadı.
- Kontrol tarihi
- 2026-09-30
https://docs.openzeppelin.com/contracts/5.x/api/proxy
Veri kaynağı
id: FIX-P08-04
dataStatus: ILLUSTRATIVE
observedAt: null
source: Original frozen educational fixture embedded in lesson
timeBasis: Synthetic S0/S1 snapshots, not UTC observations or real blocks
identifiers: Deliberately invalid fictional network, asset and account labels; never use as transaction targets
scope: Fictional freeze-state, application-role and upgrade-control records on separate objects.