Bitcoin, blockchain of toch BitTorrent? – Deel I

Laatste Update 19/11/2018

‘Hocus pocus pilatus pas ik wou dat er een cryptomunt was’. Nee, dat is natuurlijk niet de zin waar de white paper van bitcoin mee begint. Toch lijkt het voor steeds meer ‘experts’ wel de realiteit, bitcoin (of eigenlijk de blockchaintechnologie) is hot en is ‘een totaal nieuwe revolutie techniek die elke sector gaat veranderen’. Maar hoe nieuw is de techniek eigenlijk?

Dit artikel gaat in op het recente fenomeen van ‘blockchain experts’ en heeft als doel jou als lezer te laten begrijpen dat bitcoin (of blockchain) een combinatie is van bestaande concepten en technologieën. Dat maakt het niet minder interessant of revolutionair, het maakt het alleen erg lastig om er een ‘expert’ in te zijn. De termen bitcoin en blockchain worden in dit artikel door elkaar gebruikt.

Experts in wat eigenlijk?

In Nederland zijn er honderden ‘experts’ op het gebied van blockchain, zelf ben ik pas sinds 2013 bezig met bitcoin en een expert zou ik mezelf nooit durven noemen. Dat ‘pas’ is trouwens relatief, voor de een ben je dan een early adopter en voor de ander hoor je bij de late majority. Reden waarom ik mezelf geen ‘expert’ noem? Omdat ik niet alle aspecten van bitcoin volledig begrijp.

Wie de white paper van bitcoin leest (en vooral de referenties onderaan het document) begrijpt dat de techniek niet uit het niets is ontstaan, het is geen hocus pocus spreuk. Bitcoin is een combinatie van bestaande concepten en technologieën. Denk aan peer-to-peernetwerk protocollen als BitTorrent, asymmetrische cryptografie en hashing. Daarnaast dien je over een basis van economische kennis te beschikken om begrippen als inflatie en waarde te begrijpen. Hoewel velen die dit lezen begrijpen wat deze termen inhouden en een verbeelding kunnen maken bij een peer-to-peernetwerk, maakt je dit natuurlijk nog geen expert.

Naar mijn mening ben je een expert als je intensief met verschillende technologieën bezig bent geweest. Bram Cohen is een expert op het gebied van peer-to-peernetwerk en Adam Back een expert in hashing. Beide zijn intensief aan de slag geweest met deze concepten en hebben er op voortgeborduurd. De blockchain experts praten bedrijven en andere type van organisaties maar al te graag de revolutionaire techniek aan. Zelfs banken, de as van al het kwaad, zijn bezig met blockchain. All jokes aside, eerder schreef Bèr Kessels een uitstekend en goed te begrijpen artikel getiteld ‘The Private Blockchain Fallacy’. In de meeste gevallen slaat een blockchain implementatie nergens op en wordt een een peer-to-peernetwerk steeds vaker gezien als ‘een blockchain’.

We nemen een kijkje naar het BitTorrent protocol en doen een poging deze op een eenvoudige manier uit te leggen.

Blockchain of BitTorrent?

In de volksmond staat de techniek achter BitTorrent gelijk aan het ‘illegaal’ downloaden van content. Een website als The Pirate Bay (afgekort TPB) is misschien wel bekend onder liefhebbers van films en muziek in combinatie met een programma als μTorrent. Voordat diensten als Netflix en Spotify in Nederland zijn intreden deden, werden technische neefjes en nichtjes lastiggevallen door familieleden voor het verkrijgen van de nieuwste content.

Inmiddels is dat verleden tijd en worden de technische neefjes en nichtjes nu om ‘beleggingsadvies’ gevraagd door ooms en tantes, want wat eerst nog ‘een munt voor nerds’ heetten is nu ‘de technologie van de toekomst’. Nee, de BitTorrent technologie die wordt gebruikt voor het downloaden van content is niet hetzelfde als de blockchaintechnologie maar lijkt veel op elkaar. De technische neefjes en nichtjes zullen het begrip ‘blockchain’ sneller begrijpen omdat ze al jaren gebruik maken van het BitTorrent netwerk.

Wie dan ook verder kijkt dan alleen content, ziet dat de BitTorrent technologie eigenlijk voor verschillende soorten informatieoverdracht gebruikt kan worden. Satoshi Nakamoto (de bedenker achter de bitcoin) begreep dit maar al te goed. Zou het ‘bit’ in bitcoin stiekem voor BitTorrent staan?

Wat is BitTorrent?

BitTorrent is een protocol waarmee snel grote bestanden kunnen worden gedownload uit verschillende locaties (ofwel bronnen). In tegenstelling tot andere downloadmethoden, maximaliseert BitTorrent de overdrachtssnelheid door stukjes van het bestand te verzamelen en deze tegelijkertijd te downloaden van mensen die ze al hebben. Door dit proces worden populaire en grote bestanden, zoals video’s en televisieprogramma’s, veel sneller gedownload dan met andere protocollen mogelijk is.

Traditioneel downloaden via een server

Om te begrijpen hoe BitTorrent werkt en waarom het anders is dan andere bestands distributiemethoden, laten we eens kijken wat er gebeurt als je een bestand download van een website. Het werkt ongeveer als volgt:

  • Je opent een webpagina en klikt op een koppeling om een ​​bestand naar jouw computer te downloaden.
  • De webbrowser op je computer (de client) vertelt de server (een centrale computer met de webpagina en het bestand dat je wilt downloaden) om een ​​kopie van het bestand naar jouw computer over te zetten.
  • De overdracht wordt afgehandeld door een protocol (een reeks regels), zoals FTP (File Transfer Protocol) of HTTP (HyperText Transfer Protocol).

De overdrachtssnelheid wordt beïnvloed door een aantal variabelen, waaronder het type protocol, de hoeveelheid verkeer op de server en het aantal andere computers dat het bestand downloadt. Als het bestand zowel groot als populair is, zijn de eisen aan de server groot en zal de download trager zijn.

Downloaden via een peer-to-peernetwerk

Het peer-to-peer delen van bestanden is anders dan het traditioneel downloaden van bestanden. Bij peer-to-peer downloaden, gebruik je een softwareprogramma (in plaats van je webbrowser) om computers te zoeken die het gewenste bestand hebben. Omdat dit gewone computers zijn zoals de jouwe, worden ze peers genoemd. Het proces werkt als volgt:

  • Je hebt een BitTorrent programma als μTorrent geïnstalleerd op je computer en verstuurt een verzoek voor het bestand dat je wilt downloaden.
  • Om het bestand te lokaliseren, ondervraagt de software andere computers die verbonden zijn met internet en waarop de software voor het delen van bestanden wordt uitgevoerd.
  • Wanneer de software een computer vindt met het gewenste bestand op de harde schijf, begint het downloaden.
  • Anderen die de software voor het delen van bestanden gebruiken, kunnen de gewenste bestanden op de harde schijf van jouw computer verkrijgen.

De belasting bij bestands distributie wordt verdeeld tussen de computers die bestanden uitwisselen, maar bestandsdoorzoekingen en overdrachten van je computer naar andere kunnen knelpunten veroorzaken. Sommige mensen downloaden bestanden en ontkoppelen onmiddellijk zonder anderen toe te staan bestanden van hun systeem te verkrijgen, dat leeching wordt genoemd. Dit beperkt het aantal computers dat de software naar het gevraagde bestand kan zoeken.

Hoe werkt BitTorrent?

In tegenstelling tot sommige andere peer-to-peer downloadmethoden, is BitTorrent een protocol dat een deel van het bestandstrackingswerk naar een centrale server (een tracker genaamd) offloadt. Een ander verschil is dat het een principal genaamd tit-for-tat gebruikt. Dit betekent dat je ze moet geven (uploaden) om bestanden te ontvangen (downloaden). Dit lost het probleem van leeching op – een van de hoofddoelen van ontwikkelaar Bram Cohen.

Met BitTorrent, hoe meer bestanden je met anderen deelt, hoe sneller jouw downloads zijn. Tenslotte, om de beschikbare bandbreedte (de pijplijn voor datatransmissie) beter te benutten, downloadt BitTorrent verschillende delen van het bestand dat je tegelijkertijd wilt downloaden van meerdere computers.

Zo werkt het:

  • Je opent een webpagina en klikt op een koppeling voor het gewenste bestand.
  • BitTorrent-clientsoftware communiceert met een tracker om andere computers met BitTorrent te vinden die het volledige bestand (seed-computers) en die met een deel van het bestand hebben (andere die het bestand gewoonlijk downloaden).
  • De tracker identificeert verbonden computers die het hele bestand of een deel ervan bezitten en bezig zijn met het verzenden of ontvangen ervan.
  • De tracker helpt de clientsoftware stukken van het bestand te ordenen die je wilt delen met andere computers in het netwerk. Jouw computer ontvangt meerdere delen van het bestand tegelijkertijd.
  • Als je de BitTorrent-clientsoftware blijft draaien nadat je download is voltooid, kunnen anderen .torrent-bestanden van je computer ontvangen; je toekomstige downloadsnelheden verbeteren omdat je hoger gerangschikt bent in het “tit-voor-tat” -systeem.

Het gelijktijdig downloaden van stukjes van het bestand helpt een veel voorkomend probleem met andere peer-to-peer download methoden op te lossen: peers uploaden in een veel langzamer tempo dan ze downloaden. Door meerdere stukken tegelijkertijd te downloaden, wordt de algehele snelheid aanzienlijk verbeterd. Hoe meer computers er bij het netwerk betrokken zijn, hoe sneller de bestandsoverdracht plaatsvindt omdat er meer bronnen van elk bestand zijn. Om deze reden is BitTorrent vooral handig voor grote, populaire bestanden.

Een blockchain is altijd BitTorrent

Het is je misschien opgevallen dat het BitTorrent protocol en de werking daarvan veel weg heeft van de werking van een blockchain. Dat is niet vreemd want beide distribueren data over een netwerk aan computers (nodes of seeders). Het netwerk achter bitcoin is ook een peer-to-peernetwerk. Het verschil zit hem in dat Bitcoin een waardenetwerk is.

Een blockchain is een combinatie van een peer-to-peernetwerk met daaraan gekoppeld een timestamp systeem. Het maakt het inzichtelijk wanneer een transactie (of mutatie) heeft plaatsgevonden en wie beschikt over het ‘recht’ om iets te versturen. Satoshi Nakamoto loste als eerste het double-spending probleem op en maakt hierdoor mede digitale schaarse mogelijk.

Zie dit artikel niet als uithaal naar de blockchain experts maar als een aanmoediging. Ik wil namelijk iedereen aanmoedigen om zich te verdiepen in de verschillende technieken waar bitcoin (en dus blockchain) uit bestaat. Het verdelen van bestanden over een peer-to-peernetwerk is niets nieuws. De combinatie met cryptografie en een politieke lading is de natte droom van elke crypto-anarchist.

Nawoord

Zo dat was een laptekst hè? Vond ik bij het schrijven ervan ook. Ik hoop door technologieën als het BitTorrent protocol uit te leggen, de blockchain ook begrijpbaar te maken en vooral te laten zien dat we Satoshi dankbaar moeten zijn voor het combineren van verschillende technieken.

Heb je op- of aanmerkingen op dit artikel? Vind je het een onsamenhangend geheel? Of wil je graag een deel II? Laat dan gerust een reactie hieronder achter. Ik dacht als er interesse is in een tweede deel om te kijken naar asymmetrische cryptografie.