Antwoorden>Leer de basisprincipes van blockchain>Onchain- versus offchain-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 van de IPFS-inhoud 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 bestuurskwesties), 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 onwijzigbaar zodra ze zijn bevestigd, 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 RPC-eindpunt raadpleegt, kan 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 wordt beschouwd als 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 of 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 inhoudshash of 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 of 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 geen verzendingen 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 valt uit, bestaat de NFT nog steeds on-chain, maar is de kunst die hij vertegenwoordigt niet meer toegankelijk. Als de afbeelding op IPFS staat en niemand deze vastzet, kan hetzelfde gebeuren.
Gedecentraliseerde opslagprotocollen zoals IPFS en Arweave willen dit oplossen door bestanden te verspreiden over een netwerk van knooppunten, in plaats van te vertrouwen op één enkele server. IPFS maakt gebruik van ‘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 hier 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, eigendom, 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 zich in externe systemen bevinden waarnaar de keten 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, standaard opslagtarieven
Snelheid
Beperkt door bloktijden
Snelle, vrijwel onmiddellijke lees- en schrijfbewerkingen
Blijvendheid
Onwijzigbaar zodra 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 op de blockchain opslaan en wanneer daarbuiten?
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 snelheid te winnen. 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
Offchain
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 blijft.
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 netwerken met inhoudsgebaseerde adressering, zoals IPFS of Arweave, kopieën over vele knooppunten verspreiden. 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 of 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, dus ze kunnen geen netwerkverzoeken uitvoeren. Ze zijn afhankelijk van orakels om off-chain gegevens in een verifieerbare vorm op de blockchain te brengen, voordat ze deze kunnen gebruiken.
Is IPFS on-chain of off-chain?
IPFS werkt off-chain. Het is een gedecentraliseerd opslagnetwerk waarin bestanden buiten de blockchain worden bewaard, terwijl de blockchain doorgaans alleen de hash van de IPFS-inhoud 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.
De rol van Quicknode
Het werken met zowel on-chain als off-chain gegevens vereist een betrouwbare infrastructuur. De Core API van Quicknode biedt je RPC-toegang met lage latentie tot meer dan 80 blockchains voor het lezen en schrijven van on-chain gegevens. Met Quicknode Streams kun je realtime blockchain-gebeurtenissen vastleggen en deze doorsturen naar off-chain bestemmingen zoals webhooks, PostgreSQL-databases of S3-buckets, waardoor je eenvoudig datapijplijnen kunt bouwen die de on-chain- en off-chain-werelden met elkaar verbinden. Voor gedecentraliseerde opslag kunt u met de IPFS-pinning -service en de speciale gateways van Quicknode off-chain-inhoud opslaan en ophalen zonder dat u uw eigen IPFS-knooppunten hoeft te beheren.