ENGLISH - Hedendaags kunnen wij het internet niet meer wegdenken. Het wordt gebruikt om te kunnen communiceren met vrienden of familie, voor social media, je studie en het regelen van je financiën. Maar zoals velen al weten heeft het het huidige internet één groot probleem: de informatie die wij uitwisselen is gecentraliseerd. De data wordt opgeslagen in grote databases die vaak gecontroleerd worden door een enkel bedrijf.
Heb je er ooit over nagedacht gedacht wat er zou gebeuren als een website als YouTube of Wikipedia offline gaat? Waar bekijk je de totorials die je nodig hebt voor het behalen van je wiskundetentamen? Waar vind je de uitgebreide geschiedenis van zestiende eeuw Amsterdam?
Datacenter imgix
Aangezien de content van grote tech-giganten zoals een Facebook, Google en YouTube worden gehost op slechts een beperkt aantal servers, is het vrij gemakkelijk voor een overheid om toegang tot een server te blokkeren.
“Threat to national security” (Turkey, 2017)
In 2017 gaf Turkije het bevel aan internetproviders op Wikipedia te blokkeren omdat het een dreiging voor de nationale veiligheid zou vormen.
Zoals je ziet zitten er nadelen aan een gecentraliseerd systeem. Maar waarom blijven wij dit systeem dan toch gebruiken?
InterPlenetary File Storage wil het web volledig distribueren door middel van een peer-to-peernetwerk. Een peer-to-peer netwerk is een netwerk waarin twee of meer pc's bestanden delen en toegang krijgen tot apparaten zonder dat een aparte servercomputer of serversoftware nodig is. We gaan zo dieper in op IPFS maar eerst is het van belang om te begrijpen hoe momenteel toegang wordt verleend tot content.
Dit is een voorbeeld van “location based addressing”: Stel je wilt een foto downloaden van het internet. Om dit te kunnen bewerkstelligen vertel je de computer exact waar je de foto kan vinden. In dit voorbeeld is de locatie van de foto een IP-adres of een domeinnaam.
Maar stel: Je vertelt de computer waar hij de locatie kan vinden van een foto, maar zodra deze locatie niet toegankelijk is – bijvoorbeeld doordat de server offline is – zal je geen toegang krijgen tot de foto.
Als dit gebeurt is er een grote kans dat iemand anders de foto al een keer heeft gedownload en nog steeds een kopie op zijn computer heeft. Maar helaas is jouw computer niet in staat om die kopie te pakken van een ander persoon. Maar hier heeft IPFS een oplossing voor!
Elk bestand heeft nu een Content Identifier (inkort: CID), wat kan worden gezien als een vingerafdruk. Wanneer jij een bepaald bestand wilt downloaden vraag je eigenlijk aan het netwerk: Wie heeft het bestand met de vingerafdruk “QmdUXVtRxKhdVhjPXCUxZGyXNHn5e2oS6pt8enPXo7X”? Iemand op het IPFS-netwerk die beschikt over dit bestand zal het vervolgens aan je overdragen.
Content Based Addressing
Door middel van hashen kan jij vervolgens verifiëren of de CID’s met elkaar overeenkomen. Extra zekerheid is dus ingebouwd. Er kunnen dus niet twee verschillende bestanden in het netwerk met exact dezelfde CID zijn!
Een ander mooi voordeel van IPFS is dat op het moment waarop meerdere mensen hetzelfde bestand op IPFS plaatsen, dit bestand slechts één keer gecreëerd dient te worden wat het netwerk erg efficiënt maakt.
Wij gaan nu iets dieper in op hoe IPFS de bestanden opslaat en op welke manier het systeem de toegang verleent aan gebruikers. Bestanden worden opgeslagen in IPFS-objects.
IPFS Object
Deze objecten kunnen tot 256 kb opslaan. Daarnaast kunnen IPFS-objecten over links beschikken die naar andere IPFS-objecten linken. Het tekstbestand “Hello Authic” is een klein bestand en kan dus in een enkel object worden opgeslagen. Maar wat gebeurt er nou als je een bestand hebt dat veel groter is zoals bijvoorbeeld een NFT van 2 mb?
Deze bestanden worden opgesplitst in meerdere IPFS-objecten met allemaal een grootte van 256 kb en daarna zal het systeem een leeg IPFS-object koppelen aan alle opgesplitste stukken van het bestand. Het systeem werkt vrij eenvoudig maar is ontzettend krachtig!
Aangezien IPFS gebruikmaakt van “content based addressing” kan iets dat eenmaal is toegevoegd niet meer worden gewijzigd. Hij is een onveranderbare dataopslag die vergelijkbaar is met de blockchain.
Maar hoe zou je een bestand kunnen wijzigen? Hiervoor wordt versiebeheer gebruikt. Versiebeheer van software is het proces van het toewijzen van unieke versienamen of unieke versienummers aan unieke toestanden van computersoftware.
Stel jij hebt je scriptie in een bestand geüpload maar je hebt een aantal aanpassingen gedaan. Je kan dan gewoon je geüpdatet bestand uploaden en de software zal een nieuw bestand voor je creëren wat gelinkt wordt aan het vorige bestand. Dit proces kan je zo vaak herhalen als je wilt.
Een probleem waar IPFS tegen aan loopt is ervoor zorgen dat er genoeg bestanden beschikbaar zijn. Elke node – dit is een computer die deelneemt aan het netwerk – bezit de bestanden die hij heeft gedownload en deelt deze wanneer andere mensen een bestand nodig hebben.
Maar wanneer een specifiek bestand door bijvoorbeeld slechts 4 nodes in bezit is en zij allemaal offline zijn, dan is het bestand niet meer beschikbaar gedurende die tijd en is er nergens een kopie verkrijgbaar.
Er zijn twee mogelijke oplossingen voor dit probleem:
Filecoin is een soort van blockchain die gebouwd is bovenop IPFS dat een gedecentraliseerde markt voor opslag biedt. Filecoin zegt een oplossing te bieden die ervoor moet zorgen dat er altijd genoeg nodes online zijn.
Wanneer je ruimte over hebt op je harddrive, kun je bestanden sturen naar anderen en daar geld aan verdienen. FileCoin moedigt nodes aan om de bestanden zo lang mogelijk online aan te bieden omdat er anders geen beloning wordt geboden. Het systeem zorgt er ook voor dat de bestanden gerepliceerd worden over genoeg nodes zodat het bestand te allen tijde beschikbaar is.
Filecoin
Er zijn een paar belangrijke eigenschappen die een NFT definiëren.
Ten eerste heeft elk token een unieke ID die zich onderscheidt van alle andere tokens. Dit is het tegenovergestelde van een fungibel token zoals Ether (ETH), waar elke ETH gelijk aan elkaar is. Elke NFT is uniek en wordt afzonderlijk verhandeld, waarbij een smart contract de bezitter bijhoudt.
Een ander belangrijk kenmerk van een NFT is de mogelijkheid om te linken naar gegevens die buiten een smart contract zijn opgeslagen. Het opslaan van gegevens buiten een smart-contract staat bekend als off-chain opslag. Aangezien gegevens die on-chain zijn opgeslagen moeten worden verwerkt, geverifieerd en gerepliceerd over het hele blockchain-netwerk kan het erg duur zijn om grote hoeveelheden gegevens op te slaan.
Dit is een probleem dat veelvuldig voorkomt bij NFT’s, met name tokens die digitale verzamelobjecten of kunstwerken vertegenwoordigen waarbij het opslaan van een volledig werk miljoenen euro’s zou kunnen kosten.
Wanneer een NFT wordt gemaakt en gekoppeld aan een digitaal bestand dat op een ander systeem staat, is de manier waarop de gegevens worden gekoppeld erg belangrijk. Er zijn een aantal redenen waarom traditionele HTTP-links geen goed alternatief zijn.
Met een HTTP-adres zoals https://cloud-bucket.provider.com/my-nft.jpg kan iedereen de inhoud van my-nft.webp ophalen, zolang de eigenaar van de server zijn rekeningen maar betaalt. Er is echter geen manier om te garanderen dat de inhoud van my-nft.webp hetzelfde is als het moment dat de NFT werd gemaakt. De servereigenaar kan my-nft.webp op elk moment gemakkelijk vervangen door iets heel anders, waardoor de NFT zijn betekenis verandert.
Dit probleem werd gedemonstreerd door een kunstenaar met een NFT’s collectie. Hij veranderde het adres van de afbeeldingen nadat ze waren opgeslagen en aan anderen waren verkocht. Lees het artikel hier.
IPFS lost dit probleem op dankzij “content based addressing” waar wij het eerder over hebben gehad. Het toevoegen van gegevens aan IPFS levert een CID op die rechtstreeks is afgeleid uit de gegevens en is gekoppeld aan het IPFS-netwerk.
Aangezien een CID altijd maar naar één stuk inhoud kan verwijzen, weten we dat niemand de inhoud kan vervangen of wijzigen zonder de CID te verbreken. Zoals eerder gezegd, deze CID is dan ook de link naar de inhoud in de IPFS-netwerk.
Met behulp van de node kan iedereen een kopie van de gegevens van het IPFS-netwerk ophalen als tenminste één kopie op het netwerk bestaat. Dit is ook het geval als de oorspronkelijke provider is verdwenen. Dit maakt nodes perfect voor NFT-opslag. Het enige wat je hoeft te doen is de CID in een ipfs:// URI te plaatsen zoals https://ipfs.io/ipfs/QmdUXVtRxKhdVhjPXCUxZGyXNHn5e2oS6pt8enPXo7X4Hk (spoiler: dit is de IPFS link naar kunstwerk #0 van de Bored Apes Yacht Club) en we hebben een onveranderbare link van de blockchain naar de gegevens van een token.
Natuurlijk kunnen er gevallen zijn waarbij je de metadata van een NFT na publicatie wilt wijzigen. Dat is geen probleem, hiervoor kun je dus versiebeheer gebruiken!
Met IPFS worden NFT’s veilig opgeslagen op het Authic platform. Ik hoop dat jullie dit artikel interessant vonden!
Lees ook dit artikel over web3 en decentralisatie: https://authic.io/content/blog/wat-is-web-3.0-en-wat-wordt-er-bedoeld-met-decentralisatie
Bekijk ook dit YouTube filmpje over IPFS: https://www.youtube.com/watch?v=5Uj6uR3fp-U
With web 3.0 the world is starting to move from pages to places. Therefore, we have to change the way we look at art.