P08-L04 · P08 · P08-M01
Identificeer geprivilegieerde controles, inclusief proxies en upgradebevoegdheid
Vereisten: P08-L03
Leerdoelen
- Breng saldo-, beperkings-, toepassings- en upgradelagen in kaart.
- Beoordeel beperkte eigendomsclaims tegenover resterende controles.
- Identificeer benodigd bewijs voor drempel, gebeurtenistoeschrijving en onveranderlijkheid.
EN bronmaster · P08-L04 · 45 minuten geschat · needs_review
Waarom dit belangrijk is
Een badge “eigendom opgegeven” kan naast een actieve pauzerol of upgradebeheerder bestaan. Een verwijderde mintbevoegdheid kan naast een freezebevoegdheid bestaan. Deze uitspraken kunnen elk waar zijn terwijl de brede conclusie “niemand heeft controle” onwaar is.
Deze les leert een gelaagde controlekaart. Je verbindt elk privilege aan zijn object, huidige houder, voorwaarde en mogelijke beheerroute. Het resultaat is een bewijsrecord, geen veiligheidsscore of beschuldiging.
Uitleg
Definieer het gecontroleerde object
Gebruik eigenaar niet zonder een zelfstandig naamwoord. De programma-eigenaar van een Solana-data-account, een tokenaccountbevoegdheid, een EVM-Ownable-eigenaar en een NFT-positie-eigenaar zijn verschillende velden. Hun namen lijken op elkaar maar besturen verschillende mechanismen. Schrijf veld en object naast de waarde.
Onderscheid tokensaldocontrole, beperkingen op mintniveau, toepassingsrollen en bevoegdheid tot codewijziging. Een bevinding over één laag kan geen toestemming op een andere uitwissen. Een tokenmint kan bijvoorbeeld geen mintbevoegdheid hebben terwijl een toepassing die met het token werkt upgradebaar blijft. Beoordeel de toepassingsrol afzonderlijk in plaats van aan te nemen dat ze het standaard Token Program zelf bestuurt.
Een controlekaart is een graaf van mogelijkheden, geen graaf van menselijke identiteiten. Een vermelde bevoegde partij kan een gebruikersaccount of een door een programma bemiddeld adres zijn. Openbare accountlabels stellen niet vast wie de sleutels heeft of of meerdere accounts één beheerder delen.
Begrijp freeze als toestandsbeperking
Het freeze-mechanisme van Solana behoudt tokenaccounteigenaar, mint en saldo, terwijl het de gedocumenteerde ontvang-, transfer- en burnbewerkingen verhindert tot ontdooiing [S08-FREEZE]. Het is geen saldoverwijdering of overdracht aan de freeze-bevoegde partij.
Toestand en bevoegdheid moeten afzonderlijk worden vastgelegd. Een freezebevoegdheid kan bestaan terwijl een account momenteel niet bevroren is. Omgekeerd vertelt een waargenomen bevroren toestand niet dat een bepaalde mens deze veroorzaakte. Vraag naar de geslaagde bewerking en autorisatie als toeschrijving van belang is.
Intrekking verwijdert een geselecteerde bevoegdheidsrol, geen universele verzameling machten [S08-SET]. Neem niet aan dat intrekking van een mintrol de freeze-toestand veranderde. Bestaande bevroren accounts en mogelijke herstel-/ontdooipaden vergen eigen onderzoek; beschrijf een beperkte intrekking niet als bewijs dat elk account kan overdragen.
Inspecteer toepassingsrollen naast Ownable
Afstand doen van OpenZeppelin Ownable schakelt functies uit die door de eigenaarscontrole worden beschermd, terwijl rolgebaseerde rechten een afzonderlijk patroon zijn [S08-ACCESS]. Of een geïmplementeerd token deze patronen combineert is een vraag van code en toestand. Als een pauserrol overblijft, kan eigenaarsafstand deze alleen niet verwijderen.
Maak een tabel voor eigendom, pauze, rollen toekennen/intrekken en upgrades. Leg voor elke rij de werkelijke controle, huidige bevoegdheid, beheerroute en onzekerheid vast. Een rolnaam is slechts beschrijvend totdat deze aan een bereikbare bewerking wordt gekoppeld. “PAUSER” in metadata bewijst geen pauzefunctie.
Een controle kan afhangen van een timelock of multisig. Verifieer relevant contract, drempel, vertraging en omzeilvoorwaarden in plaats van een badge te accepteren. Een vertraging is een tijdvoorwaarde, geen verdwijning van controle. Een multisigdrempel beschrijft handtekeningen, niet noodzakelijk onafhankelijke mensen.
Traceer proxy- en implementatiecontrole
Onderscheid bij proxies in ERC-1967-stijl de implementatie- of beaconkoppeling van de optionele adminslot. Een beacon bepaalt logica voor bijbehorende proxies; autorisatie in UUPS-stijl kan in implementatielogica zitten, dus een lege adminslot alleen vormt geen volledige conclusie [S08-PROXY; S08-UUPS].
Het gebruikersgerichte adres van een proxy kan hetzelfde blijven wanneer de regels veranderen. Leg de implementatie vast op de beoordeelde context en inspecteer vervolgens het pad dat deze kan veranderen. Audit geen geverifieerde implementatiepagina terwijl de proxykoppeling ongecontroleerd blijft. Een latere implementatie kan eerdere gedragsaannamen ongeldig maken.
Deze les leert geen upgrade-uitvoering. Ze leert hoe je het aangeleverde autorisatiepad alleen-lezen beschrijft. Markeer interne regels van de beheerder als onbekend als ze niet beschikbaar zijn, ook wanneer het externe bevoegdheidsadres bekend is.
Onderscheid Solana-programmaupgrades van mintrollen
Onder Solana loader-v3 hangen programmaupgrades af van programma-upgradebevoegdheid; verwijdering daarvan maakt dat programma onveranderlijk [S08-DEPLOY]. Dit is niet het mint-authority-veld van de mint. Het geldt voor het beoordeelde programma en loadermechanisme, niet voor elk verbonden contract of elke off-chaindienst.
Een mint die onder een standaard Token Program valt, mag niet achteloos zelfstandig upgradebaar worden genoemd omdat een aangepaste toepassing haar gebruikt. Benoem het aangepaste programma en verklaar de relevantie. In de oefengegevens is PROGRAM-X een aanvullende toepassing, niet het Token Program dat eigenaar is van MINT-F.
Onveranderlijkheid is beperkt tot het codeobject. Ze bewijst geen eerlijke gebruikers, onveranderlijke metadata, voldoende liquiditeit of veilige omliggende systemen. Ook bewijst actieve upgradebevoegdheid een mogelijkheid onder voorwaarden, niet dat de code kwaadwillig zal veranderen.
Rapporteer een gelaagd resultaat
Een verdedigbare zin noemt context en grenzen: “Op S0 is het eigenaarsveld opgegeven, terwijl PAUSER toegewezen blijft en de proxy-upgradebeheerder is aangeleverd maar diens interne drempel onbekend is.” Dit is informatiever dan een categorisch label “gedecentraliseerd”.
Vraag of een claim door één resterende rij kan worden weerlegd. “Geen geprivilegieerde controles” wordt tegengesproken door één bewezen actieve mogelijkheid. Een beperkte claim zoals “de Ownable-eigenaarsrol ontbreekt” kan ondersteund blijven ook wanneer de brede uitspraak faalt. Behoud beide.
Begrippen
- Freeze-toestand: bewerkingsbeperking op een tokenaccount.
- Ownable-eigenaar: bevoegdheid onder een bepaald eigenaarscontrolepatroon.
- Rolhouder: account dat aan een specifieke lidmaatschapscontrole voldoet.
- Upgradebeheerder: bevoegdheid die een codewijzigingspad bestuurt.
- Beacon: mechanisme voor koppeling van proxylogica.
- Timelock: voorwaarde die vertraging aan bepaalde bewerkingen oplegt.
Historisch voorbeeld
ILLUSTRATIVE — FIX-P08-04. Afzonderlijke fictieve objecten op S0.
| Record | Object | Aangeleverde controle/toestand |
|---|---|---|
| F1 | SIM-SOL-A / MINT-F | mintbevoegdheid ontbreekt; freezebevoegdheid F |
| F2 | ACCOUNT-U van MINT-F | niet bevroren, saldo 100 |
| F3 | ACCOUNT-V van MINT-F | bevroren, saldo 50; geen gebeurtenistoeschrijving aangeleverd |
| P1 | SIM-EVM-A / PROXY-Q | delegeert aan LOGIC-Q op S0 |
| P2 | PROXY-Q-toepassingstoestand | Ownable-eigenaar ontbreekt; PAUSER=P; rolbeheerder G |
| P3 | PROXY-Q-upgradepad | beheerder C; drempel/vertraging van C niet beschikbaar |
| X1 | SIM-SOL-A / PROGRAM-X | aanvullende loader-v3-toepassing; upgradebevoegdheid U |
PROGRAM-X is niet het Token Program dat MINT-F bestuurt. De oefengegevens leveren niet de code-effecten die deze aanvullende toepassing aan de mint verbinden.
Wat het bewijs aantoont
OBSERVED in oefengegevens: F blijft, V is bevroren, P/G blijven en C/U zijn aangeleverde upgradebevoegde partijen.
INFERRED: “Alle controles verwijderd” wordt door deze afzonderlijke mogelijkheden tegengesproken. Opgegeven eigendom is een beperktere ondersteunde uitspraak over P2.
Wat het bewijs niet aantoont
UNKNOWN: De interne regels van C, menselijke beheerders, wie V bevroor en de precieze toepassingseffecten van PROGRAM-X.
INSUFFICIENT EVIDENCE: Freeze betekent niet dat het saldo van V is vernietigd. Een ontbrekende eigenaar bewijst niet dat er geen rollen of upgrades zijn. U bewijst niet dat U het standaard Token Program controleert.
Veelgemaakte fouten
Eigenaar zonder bijbehorend object gebruiken; bevroren saldo verwarren met nul; aannemen dat een lege proxy-adminslot alle upgrades uitsluit; een multisiglabel als geverifieerde onafhankelijke controle interpreteren; en aanvullende programmabevoegdheid met mintbevoegdheid vermengen.
Praktische oefening
Maak vier controlelagen: accounttoestand, mintrollen, EVM-toepassingsrollen en implementatiewijzigingspaden. Herschrijf “alle eigendom is opgegeven dus alles is onveranderlijk”. Noem het volgende benodigde bewijs voor C en V.
Uitgewerkte correctie tonen
Uitgewerkte correctie en verwachte redenering
Accounttoestand: U is niet bevroren met 100; V bevroren met 50. Mintrollen: mintbevoegdheid ontbreekt, freeze F aanwezig. EVM-toepassing: eigenaar ontbreekt, PAUSER P aanwezig, rolbeheerder G. Codewijzigingen: PROXY-Q-beheerder C en aanvullend PROGRAM-X U, met afzonderlijke reikwijdtes.
Een begrensde herschrijving is: “Op S0 ontbreekt de Ownable-eigenaarsrol van PROXY-Q, maar pauze-/rolbeheer en upgradecontrole blijven aangeleverd. MINT-F behoudt F, en V is bevroren zonder toegeschreven gebeurtenis. PROGRAM-X heeft een afzonderlijke upgradebevoegdheid; de effecten op dit activum zijn onopgelost.”
Vraag voor C beheerderscode/-configuratie, ondertekenaars/drempel of vertraging en toepasselijke omzeilpaden. Vraag voor V de geslaagde freeze-gebeurtenis, context en autorisatiebewijs. Behoud50; registreer geen burn.
Score op tien: vierlagenkaart (vier), beperkte herschrijving (drie), C/V-bewijsverzoeken (twee), programma-/mintsplitsing (één).
Controlelijst
- Benoem het object van elk eigenaarsveld.
- Onderscheid bevoegdheid van huidige toestand.
- Inspecteer rollen na afstand van eigendom.
- Bepaal logica en upgradepaden op dezelfde context.
- Verifieer drempels/vertragingen in plaats van labels.
- Begrens onveranderlijkheid tot het beoordeelde object.
Samenvatting
Controle is gelaagd. Een verwijderde rol stelt een beperkt feit vast; actieve rollen en codewijzigingspaden vergen afzonderlijke beoordeling.
Samenvatting
Freeze is een beperking, geen verwijdering. Afstand van eigendom is geen afstand van alle controle. Proxy-, programma- en mintbevoegdheden zijn verschillend.
Visuele specificaties
Een rechtenkaart met vier banen en F1–F3,P1–P3,X1-verwijzingen; toon het onveranderde bevroren saldo 50. Teken PROXY-Q→LOGIC-Q en afzonderlijke beheerder C; isoleer PROGRAM-X/U van MINT-F. Markeer C-configuratie als onbekend.
Illustratieve gelaagde controles; afwezige eigenaar is een beperkte claim.
Gebruik deterministische SVG/HTML of grafieken met tekstalternatieven, donker marineblauw/zwart en terughoudend cyaan, elektrisch blauw en violet. Label elke hoeveelheid en onzekerheid. Stapel bij 390px de panelen; verificatie voor 768px/desktop en Arabische RTL blijft toekomstig assetwerk. Houd identificatoren LTR en feitelijke assen/richtingen van verbindingen ongewijzigd. Gebruik uitsluitend het officieel aangeleverde BlockAssay-merk als branding wordt toegevoegd. Beide records zijn specificaties, geen geleverde assets.
Hulpmiddelen
Gebruik RADAR voor het beperkte educatieve doel van deze les alleen als netwerkondersteuning, exacte identiteit, velden en herkomst zijn geverifieerd. Deze inhoud doet geen uitspraak over een runtime-eindpunt of mogelijkheden van een aanbieder. Gebruik de ingebedde offline oefengegevens zonder betaalde toegang. Ontbrekende data blijven onbekend; er zijn geen walletverbinding, transactiehandtekening, tokenlancering of live transactie vereist. Academy-voortgang, betalingen en verwijzingen veranderen Radar-bewijs nooit. Een diagnostisch paspoort bewaart waarnemingen en grenzen, geen prijsvoorspelling of veiligheidscertificaat.
Bronnen en grenzen van claims
- OpenZeppelin 5.x proxy — Transparante, beacon- en implementatiegebaseerde UUPS-upgrademechanismen; werkelijke autorisatie vereist inspectie. Gecontroleerd 2026-09-30.
- Solana-account bevriezen — Accounttoestandsbeperkingen onderscheiden van bedrag of eigendom. Gecontroleerd 2026-09-30.
- Solana-bevoegdheid instellen — Rolspecifieke wijzigingen en intrekking; geen algemeen veiligheidsoordeel. Gecontroleerd 2026-09-30.
- OpenZeppelin 5.x toegangscontrole — Ownable- en rolgebaseerde privilegepatronen; inspecteer de werkelijk geïmplementeerde autorisatie. Gecontroleerd 2026-09-30.
- ERC-1967 proxyopslagslots — Implementatie-, beacon- en optionele adminslots; inspectie per mechanisme. Gecontroleerd 2026-09-30.
- Solana-programma implementeren — Upgradebevoegdheid voor een loader-v3-programma; geen tokenmintrol. Gecontroleerd 2026-09-30.
Documentatie onderbouwt mechanismen, geen fictieve datasetwaarden. Alle voorbeelden en oefenrecords zijn oorspronkelijk ILLUSTRATIVE materiaal, vastgezet in dit bestand. S0/S1 zijn synthetische contextlabels; observedAt is null omdat geen live of historische registermeting is verzameld. Herbeoordeel documentatie en werkelijk geïmplementeerd gedrag vóór publicatie of integratie.
Volgende les
P08-L05 na de uitgewerkte oefening en quizbeoordeling.
Visuele specificaties
P08-L04-V01
Welke controle blijft op elke laag over?
Illustratieve gelaagde controles; afwezige eigenaar is een beperkte claim.
Een rechtenkaart met vier banen en F1–F3,P1–P3,X1-verwijzingen; toon het onveranderde bevroren saldo 50. Teken PROXY-Q→LOGIC-Q en afzonderlijke beheerder C; isoleer PROGRAM-X/U van MINT-F. Markeer C-configuratie als onbekend.
De mint-freeze blijft; EVM-eigenaar afwezig maar P,G,C blijven; het afzonderlijke aanvullende programma heeft U.
390px gestapelde panelen met tekstequivalent; verifieer later 768px en desktop
RTL-labels en navigatie; identificatoren geïsoleerd LTR; behoud numerieke assen, gebeurtenisvolgorde en feitelijke verbindingsrichting.
FIX-P08-04
P08-L04-V02
Welke claim is ondersteund, voorwaardelijk, onbekend of niet onderbouwd?
Illustratieve bewijsgrenzen; geen veiligheids- of investeringsoordeel.
Vier rijen met labels OBSERVED/INFERRED/UNKNOWN/INSUFFICIENT EVIDENCE gekoppeld aan de claims en record-ID’s van deze les. Waarnemingen zijn aangeleverde fictieve records, geen live metingen.
Vier rijen met bewijsstatus, recordverwijzingen en volgende verificatiestappen.
390px gestapelde panelen met tekstequivalent; verifieer later 768px en desktop
RTL-labels en navigatie; identificatoren geïsoleerd LTR; behoud numerieke assen, gebeurtenisvolgorde en feitelijke verbindingsrichting.
FIX-P08-04
Bronnen en grenzen van claims
S08-FREEZE · official_documentation_or_standard
Solana-account bevriezen
- Ondersteunde claim
- Accounttoestandsbeperkingen onderscheiden van bedrag of eigendom.
- Verificatiegrens
- Primaire pagina geïnspecteerd om mechanismen redactioneel te onderbouwen; geen geïmplementeerd activum of registeroefengegevens onafhankelijk gemeten.
- Controledatum
- 2026-09-30
https://solana.com/docs/tokens/basics/freeze-account
S08-SET · official_documentation_or_standard
Solana-bevoegdheid instellen
- Ondersteunde claim
- Rolspecifieke wijzigingen en intrekking; geen algemeen veiligheidsoordeel.
- Verificatiegrens
- Primaire pagina geïnspecteerd om mechanismen redactioneel te onderbouwen; geen geïmplementeerd activum of registeroefengegevens onafhankelijk gemeten.
- Controledatum
- 2026-09-30
https://solana.com/docs/tokens/basics/set-authority
S08-ACCESS · official_documentation_or_standard
OpenZeppelin 5.x toegangscontrole
- Ondersteunde claim
- Ownable- en rolgebaseerde privilegepatronen; inspecteer de werkelijk geïmplementeerde autorisatie.
- Verificatiegrens
- Primaire pagina geïnspecteerd om mechanismen redactioneel te onderbouwen; geen geïmplementeerd activum of registeroefengegevens onafhankelijk gemeten.
- Controledatum
- 2026-09-30
https://docs.openzeppelin.com/contracts/5.x/access-control
S08-PROXY · official_documentation_or_standard
ERC-1967 proxyopslagslots
- Ondersteunde claim
- Implementatie-, beacon- en optionele adminslots; inspectie per mechanisme.
- Verificatiegrens
- Primaire pagina geïnspecteerd om mechanismen redactioneel te onderbouwen; geen geïmplementeerd activum of registeroefengegevens onafhankelijk gemeten.
- Controledatum
- 2026-09-30
https://eips.ethereum.org/EIPS/eip-1967
S08-DEPLOY · official_documentation_or_standard
Solana-programma implementeren
- Ondersteunde claim
- Upgradebevoegdheid voor een loader-v3-programma; geen tokenmintrol.
- Verificatiegrens
- Primaire pagina geïnspecteerd om mechanismen redactioneel te onderbouwen; geen geïmplementeerd activum of registeroefengegevens onafhankelijk gemeten.
- Controledatum
- 2026-09-30
https://solana.com/docs/core/programs/program-deployment
S08-UUPS · official_documentation
OpenZeppelin 5.x proxy
- Ondersteunde claim
- Transparante, beacon- en implementatiegebaseerde UUPS-upgrademechanismen; werkelijke autorisatie vereist inspectie.
- Verificatiegrens
- Primaire documentatie geïnspecteerd; geen geïmplementeerde proxy onderzocht.
- Controledatum
- 2026-09-30
https://docs.openzeppelin.com/contracts/5.x/api/proxy
Herkomst van gegevens
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.