Naar inhoudBlockAssay

Freeze, eigendom en bevoegdheid

P08-L04 · P08 · P08-M01

Identificeer geprivilegieerde controles, inclusief proxies en upgradebevoegdheid

ILLUSTRATIVE · needs_review

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.

RecordObjectAangeleverde controle/toestand
F1SIM-SOL-A / MINT-Fmintbevoegdheid ontbreekt; freezebevoegdheid F
F2ACCOUNT-U van MINT-Fniet bevroren, saldo 100
F3ACCOUNT-V van MINT-Fbevroren, saldo 50; geen gebeurtenistoeschrijving aangeleverd
P1SIM-EVM-A / PROXY-Qdelegeert aan LOGIC-Q op S0
P2PROXY-Q-toepassingstoestandOwnable-eigenaar ontbreekt; PAUSER=P; rolbeheerder G
P3PROXY-Q-upgradepadbeheerder C; drempel/vertraging van C niet beschikbaar
X1SIM-SOL-A / PROGRAM-Xaanvullende 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

SPECIFICATION_ONLY · ILLUSTRATIVE

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

SPECIFICATION_ONLY · ILLUSTRATIVE

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
Primaire bron openen
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
Primaire bron openen
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
Primaire bron openen
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
Primaire bron openen
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
Primaire bron openen
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
Primaire bron openen
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.

Toets je redenering

P08-L04-Q1 · Wat is het aangeleverde saldo van V terwijl het bevroren is?
P08-L04-Q2 · Wat volgt uit ontbrekende Ownable-eigenaar en PAUSER=P?
P08-L04-Q3 · C heeft een multisiglabel maar geen configuratie. Wat is vastgesteld?
P08-L04-Q4 · Wat identificeert U van PROGRAM-X?
P08-L04-Q5 · Een ERC-1967-adminslot is leeg. Wat volgt nu?