Antwoorden>Leer de basisprincipes van blockchain>On-chain versus off-chain gegevens: wat is het verschil?
On-chain versus off-chain gegevens: wat is het verschil?
// Tags
on-chain versus off-chainopslag van blockchain-gegevens
TL;DR: Onchain-gegevens staan rechtstreeks op de blockchain, waardoor ze permanent, transparant en voor iedereen verifieerbaar zijn. Offchain-gegevens worden buiten de blockchain opgeslagen, meestal op traditionele servers, gedecentraliseerde opslagnetwerken zoals IPFS of privé-databases. De meeste praktische toepassingen maken gebruik van een combinatie van beide: kritieke gegevens worden onchain bewaard, terwijl grotere of minder essentiële gegevens offchain worden opgeslagen om kosten te besparen en de prestaties te verbeteren.
De eenvoudige uitleg
Elke blockchain heeft beperkte opslagruimte. Gegevens on-chain opslaan betekent dat ze worden vastgelegd in een transactie of de status van een smart contract, die permanent wordt geregistreerd op elk knooppunt in het netwerk. Hierdoor zijn de gegevens fraudebestendig en voor iedereen toegankelijk, maar daar hangt wel een prijskaartje aan. Op Ethereum kan het opslaan van slechts 32 bytes aan gegevens, afhankelijk van de gasprijzen, al enkele dollars kosten. Het on-chain opslaan van een volledige afbeelding of een document zou onbetaalbaar zijn.
Daar komen off-chain gegevens om de hoek kijken. In plaats van een volledige afbeelding op de blockchain op te slaan, kan een ontwikkelaar de afbeelding opslaan op IPFS een gedecentraliseerd netwerk voor bestandsopslag) en vervolgens alleen de hash IPFS op de blockchain opslaan. Het blockchain-record bewijst wat de gegevens zouden moeten zijn, en de off-chain opslag bewaart ze daadwerkelijk. Deze hybride aanpak biedt je de verifieerbaarheid van de blockchain in combinatie met de schaalbaarheid van traditionele of gedecentraliseerde opslagsystemen.
Zie het als een eigendomsakte. De akte zelf (een klein, cruciaal document dat het eigendom vastlegt) wordt geregistreerd bij het kantoor van de county clerk. Maar het daadwerkelijke huis, de bouwtekeningen, de inspectierapporten en de foto’s bevinden zich allemaal elders. De akte verwijst naar het onroerend goed. De blockchain werkt op dezelfde manier: deze slaat de cruciale bewijzen en verwijzingen op, terwijl grotere datasets buiten de blockchain worden bewaard.
Wat valt onder on-chain-gegevens?
Onchain-gegevens omvatten alles wat permanent is vastgelegd in de status of de transactiegeschiedenis van de blockchain. Dit omvat transactiegegevens (afzender, ontvanger, bedrag, tijdstempel), de code van slimme contracten en statusvariabelen (tokensaldi, eigendomsgegevens, stemmen over governance), gebeurtenislogboeken die door slimme contracten worden gegenereerd, en metagegevens van blokken, zoals tijdstempels en informatie over validators.
Wanneer een gebruiker tokens ruilt op een gedecentraliseerde beurs, wordt de volledige transactie – inclusief de bedragen, de betrokken adressen en de daaruit voortvloeiende statuswijzigingen – op de blockchain vastgelegd. Wanneer een NFT wordt geslagen, worden de token-ID, het adres van de eigenaar en de URI van de metagegevens allemaal opgeslagen in de on-chain-status van het smart contract. Deze gegevens zijn immutable bevestiging immutable , wat betekent dat niemand ze achteraf kan wijzigen.
On-chain-gegevens vormen de kern van de meerwaarde van blockchain: verificatie zonder tussenkomst van derden. Iedereen die een node beheert of een endpoint raadpleegt, endpoint elk stukje on-chain-gegevens onafhankelijk verifiëren, zonder afhankelijk te zijn van een derde partij. Het is de enige bron van waarheid voor het netwerk.
Wat valt onder off-chain-gegevens?
Offchain-gegevens zijn alle gegevens die buiten de blockchain bestaan, maar waarnaar wordt verwezen door of die relevant zijn voor onchain-activiteiten. Hieronder vallen NFT-afbeeldingen en metadatabestanden die zijn opgeslagen op IPFS gecentraliseerde servers, grote datasets die door dapps worden gebruikt (gebruikersprofielen, bestelgeschiedenis, analyses), oracle-datafeeds die informatie uit de echte wereld (prijzen, het weer, sportuitslagen) naar de blockchain brengen, Layer 2-transactiegegevens voordat deze worden gebundeld en afgewikkeld op Layer 1, en applicatie-front-ends en API’s die communiceren met smart contracts.
De meest voorkomende werkwijze is het opslaan van een hash van de inhoud of een URI op de blockchain die verwijst naar gegevens buiten de blockchain. Zo slaan de meeste NFT-smartcontracten bijvoorbeeld een tokenURI op die verwijst naar een JSON-metadatabestand dat wordt gehost op IPFS een webserver. Dat JSON-bestand bevat de URL van de afbeelding, de beschrijving en de kenmerken. De blockchain kent de verwijzing. Het systeem buiten de blockchain bevat de daadwerkelijke gegevens.
Oracles zoals Chainlink vormen een cruciale brug tussen de on-chain- en off-chain-wereld. Smart contracts hebben van nature geen toegang tot externe gegevens. Ze kunnen geen aandelenkoersen opvragen, geen weersomstandigheden verifiëren of een verzending in de echte wereld bevestigen. Oracles halen deze off-chain-gegevens op en leveren deze op een verifieerbare manier aan de on-chain-omgeving, waardoor smart contracts kunnen reageren op gebeurtenissen in de echte wereld.
De afwegingen
De keuze tussen opslag on-chain of off-chain hangt af van kosten, snelheid, duurzaamheid en vertrouwensvereisten. Opslag on-chain is duur, maar duurzaam en vertrouwensloos. Off-chain opslag is goedkoop en snel, maar brengt afhankelijkheden van externe systemen met zich mee. Als de afbeelding van een NFT op een gecentraliseerde server is opgeslagen en die server uitvalt, bestaat de NFT nog steeds on-chain, maar is de kunst die hij vertegenwoordigt niet meer toegankelijk. Als de afbeelding op IPFS staat IPFS niemand deze vastzet, kan hetzelfde gebeuren.
Gedecentraliseerde opslagprotocollen zoals IPFS Arweave willen dit oplossen door bestanden te verspreiden over een netwerk van knooppunten in plaats van te vertrouwen op één enkele server. IPFS ‘content-addressed storage’, wat betekent dat bestanden worden aangeduid aan de hand van hun cryptografische hash in plaats van een serverlocatie. Zolang ten minste één knooppunt in het netwerk het bestand ‘pint’, blijft het toegankelijk. Arweave gaat hierin nog een stap verder door permanente opslag te stimuleren via een model met een eenmalige vergoeding.
Voor ontwikkelaars die productieapplicaties bouwen, houdt de architectuur doorgaans in dat alle financieel cruciale gegevens op de blockchain worden bewaard (saldi, eigendomsrechten, goedkeuringen), dat grotere assets worden opgeslagen op gedecentraliseerde opslagplatforms zoals IPFS, dat veelgevraagde gegevens ter verbetering van de prestaties in off-chain databases worden gecachet, en dat indexers en datapijplijnen worden gebruikt om de gegevens op de blockchain doorzoekbaar te maken.
Wat is het verschil tussen on-chain- en off-chain-gegevens?
On-chain- en off-chain-gegevens verschillen wat betreft hun opslaglocatie en de garanties die ze bieden. On-chain-gegevens worden in het grootboek van een blockchain vastgelegd en door elk knooppunt gevalideerd, terwijl off-chain-gegevens worden opgeslagen in externe systemen waarnaar de blockchain alleen verwijst. In de onderstaande tabel worden deze gegevens vergeleken op basis van de belangrijkste kenmerken.
Kenmerk
On-chain-gegevens
Off-chain gegevens
Locatie
Opgeslagen in blokken en contractstatus
Servers, IPFS of databases
Kosten
Hoog, betaald in gas per byte
Lage, standaardprijzen voor opslag
Snelheid
Beperkt door bloktijden
Snelle, near lees- en schrijfbewerkingen
Blijvendheid
Immutable bevestigd
Kan worden gewijzigd, tenzij vastgezet of gearchiveerd
Transparantie
Openbaar en door iedereen te controleren
Privé of met toegangsbeperking
Vertrouwensmodel
Zonder vertrouwen, beveiligd door consensus
Dat hangt af van de host of het opslagnetwerk
Het meest geschikt voor
Saldi, eigendom, bewijzen
Afbeeldingen, grote bestanden, in de cache opgeslagen analysegegevens
Wanneer moet je gegevens on-chain opslaan en wanneer off-chain?
De vuistregel is simpel: houd alles wat ‘trustless’, definitief en openbaar verifieerbaar moet zijn op de blockchain, en verplaats al het andere naar buiten de blockchain om kosten te besparen en de snelheid te verhogen. In de onderstaande tabel worden veelvoorkomende gegevenstypen gekoppeld aan de opslaglaag die daar doorgaans het beste bij past.
Gegevenstype
Aanbevolen locatie
Waarom
Token-saldi en eigendom
Onchain
Moet ‘trustless’ en definitief zijn
Logica van slimme contracten
Onchain
De uitvoering moet controleerbaar zijn
NFT-media en metagegevens
Offchain (IPFS)
Te groot en te duur om op de blockchain op te slaan
Analytics en zoekindexen
Off-chain
Er zijn snelle zoekopdrachten nodig, op basis van ketengegevens
Datafeeds uit de praktijk
Off-chain via orakels
Kettingen kunnen geen externe gegevens ophalen
De logica die deze regels afdwingt, is ondergebracht in slimme contracten, en de off-chain-kant is doorgaans afhankelijk van blockchain-indexering om ruwe on-chain-gebeurtenissen om te zetten in snelle, doorzoekbare records. Als je moet beslissen hoe je de status op grote schaal kunt uitlezen, kijk dan eens hoe teams het opvragen van blockchain-gegevens aanpakken.
Vinden Layer 2- en rollup-transacties on-chain of off-chain plaats?
Layer 2-transacties beginnen off-chain en worden on-chain zodra ze zijn afgewikkeld. Een Layer 2-blockchain voert transacties uit op een aparte laag om de snelheid te verhogen; vervolgens bundelt een rollup een groot aantal daarvan en stuurt gecomprimeerde gegevens plus een bewijs terug naar Layer 1. De uitvoering vindt dus off-chain plaats, maar de definitieve gegevens en de beveiliging zijn verankerd on-chain. De twee belangrijkste ontwerpen, optimistische en ZK-rollups, verschillen in de manier waarop ze aantonen dat het gebundelde off-chain-werk geldig is.
Hoe koppelen orakels off-chain-gegevens aan de blockchain?
Slimme contracten hebben zelf geen toegang tot het internet; daarom zijn ze afhankelijk van orakels om informatie van buiten de blockchain in de blockchain op te nemen. Een orakelnetwerk haalt externe gegevens op, zoals activaprijzen of uitkomsten van gebeurtenissen, bereikt overeenstemming over de waarde en schrijft deze in een contract dat door andere contracten kan worden gelezen. Op deze manier kan een DeFi-protocol reageren op een marktprijs of kan een verzekeringscontract reageren op een gebeurtenis in de echte wereld, terwijl de uiteindelijke waarde waarop wordt gehandeld op de blockchain blijft staan en verifieerbaar is.
Veelgestelde vragen
Zijn off-chain gegevens veilig?
Dat kan, maar de garanties zijn anders. Off-chain gegevens nemen de beveiliging over van de plek waar ze zijn opgeslagen; een gecentraliseerde server vormt dus een enkel storingspunt, terwijl in inhoudsgeoriënteerde netwerken zoals IPFS Arweave kopieën over vele knooppunten worden verspreid. Door een cryptografische hash van de off-chain gegevens on-chain op te slaan, kan iedereen controleren of de off-chain gegevens niet zijn gemanipuleerd.
Wat gebeurt er met een NFT als de off-chain afbeelding ervan offline gaat?
Het token zelf bestaat nog steeds op de blockchain, maar het kunstwerk waarnaar het verwijst, kan onbereikbaar worden als de host verdwijnt en niemand het bestand vastzet. Daarom slaan serieuze projecten NFT-media op IPFS Arweave op en bewaren ze de hash van de inhoud op de blockchain in plaats van een kwetsbare web-URL.
Kunnen slimme contracten gegevens buiten de blockchain rechtstreeks uitlezen?
Nee. Slimme contracten zijn deterministisch en geïsoleerd van de buitenwereld, waardoor ze geen netwerkverzoeken kunnen uitvoeren. Ze zijn afhankelijk van orakels om off-chain gegevens in een verifieerbare vorm op de blockchain aan te leveren, voordat ze deze kunnen gebruiken.
Is IPFS of off-chain?
IPFS off-chain. Het is een gedecentraliseerd opslagnetwerk waarin bestanden buiten de blockchain worden bewaard, terwijl de blockchain doorgaans alleen de hash IPFS opslaat die naar die bestanden verwijst.
Hoe krijg je toegang tot historische on-chain-gegevens?
De huidige status is vanaf elk knooppunt eenvoudig af te lezen, maar voor de volledige geschiedenis zijn vaak archiefknooppunten of een backfill-pijplijn nodig. Zie „Toegang tot historische blockchain-gegevens” voor de gangbare benaderingen en de bijbehorende voor- en nadelen.
Quicknode van Quicknode
Om zowel met on-chain- als off-chain-gegevens te kunnen werken, is een betrouwbare infrastructuur nodig. De Core API Quicknode biedt je RPC-toegang met lage latentie tot meer dan 80 blockchains voor het lezen en schrijven van on-chain-gegevens. Quicknode Streams kunt u realtime blockchain-gebeurtenissen vastleggen en deze doorsturen naar off-chain bestemmingen zoals webhooks, PostgreSQL-databases of S3-buckets, waardoor het eenvoudig wordt om datapijplijnen te bouwen die de on-chain- en off-chain-werelden met elkaar verbinden. Voor gedecentraliseerde opslag biedt QuicknodeIPFS pinning-service en speciale gateways kunt u off-chain-inhoud opslaan en ophalen zonder dat u uw eigen IPFS hoeft te beheren.