Discussie: Blockchain
Los bericht bekijken
Oud 16 oktober 2019, 06:20   #31
patrickve
Secretaris-Generaal VN
 
patrickve's schermafbeelding
 
Geregistreerd: 24 februari 2009
Locatie: Grenoble, Frankrijk
Berichten: 111.429
Standaard

Beste N-Vb:

In uw tekst mist men totaal het essentiele van een blockchain, en gaat in op dingen die wel toevallig met blockchains te maken hebben maar daar geen essentie van zijn, noch blockchains nodig hebben.

De essentie van een blockchain is NIET de decentralisatie. Het is NIET het gedistribueerd zijn. Het is NIET het "eeuwig bewaard zijn".

De essentie van een blockchain is "trustlessness". Tot op zekere hoogte. Maar zelfs die eigenschap vereist niet eens strikt een block chain.

De essentie van een blockchain is dat het een database is die kan groeien, zonder dat men enig vertrouwen moet hebben in de bron van de database. Niet meer, en niet minder. Maw, een blockchain is een database als je omringt bent door antagonisten-bedriegers, en je zelf een bedrieger bent.

Als dusdanig is het gebruik van blockchains door overheden een belachelijke zaak. Als er centrale punten van vertrouwen (gedwongen of gekozen) zijn, dan zijn blockchains pure bullshit. Blockchains zijn enkel maar bruikbare cryptografische middelen in een wereld van antagonisten waar men totaal geen idee heeft van wie of wat te vertrouwen, en iedereen potentieel een leugenaar is.

Maar zelfs in die omstandigheden werken blockchains niet perfect, maar zijn wel een cryptografisch middel dat het dichtste komt bij wat men kan hopen te bereiken in zo een omgeving.

Bovendien zijn blockchains niet eens het essentiele cryptografische middel dat ervoor zorgt dat die trustlessness er is. Dat cryptografische middel is onafhankelijk van de notie van een blockchain. Wat een blockchain brengt, is gewoon het feit dat men redelijk gemakkelijk gegevens kan TOEVOEGEN aan zo een trustless ding.

De twee grote cryptografische middelen (ik ken er geen ander) om een "vertrouwensloze" zekerheid te bekomen van een stuk data, zijn:

*) de cryptografische handtekening

*) een "proof of work"


Die twee dingen hebben NIKS te maken met de notie van een blockchain. De cryptografische handtekening wordt heel veel gebruikt, en bewijst U dat de auteur van een zekere tekst, exact zoals hij er staat, de kennis had van een geheime sleutel waarvan jij de publieke verificatie sleutel hebt. Niet meer en niet minder. Dat bewijst niet dat die data JUIST zijn, dat bewijst gewoon dat de entiteit die de kennis had van die geheime sleutel zijn handtekening gezet heeft op die data.

Het kanaal langs hetwelke die data + handtekening tot bij U zijn gekomen, mag totaal onbetrouwbaar zijn. Maar de waarde van de data hangen wel af van het vertrouwen dat je hebt in de handtekening van de tekenaar.

Het proof of work is iets helemaal anders. Daarvan weet je dat de auteur van de data een geweldige hoop berekeningen heeft moeten maken, wat hem veel geld gekost heeft. Je kent de auteur niet, maar je weet dat het iemand is die veel moeite gedaan heeft om die data te maken. Je weet dus dat er niet veel zulke zullen zijn. Hier moet je totaal geen vertrouwen hebben in niks. Je weet gewoon dat het veel geld gekost heeft om het te maken, geld dat totaal verspild werd om dat te doen.

Dat zijn de twee enige "ankers" van cryptografische trustlessness die er zijn: weten dat een zekere data door iemand getekend werd ; of weten dat een zekere data veel geld gekost hebben. Meer is er niet.

En wat is een "block chain" ? Dat is niks anders dan een linked list, waarbij de links hashes zijn van de gelinkte data. Als men een lineaire lijst opstelt waar A wijst naar B, en B wijst naar C, en C wijst naar D .... en uiteindelijk wijst X naar een laatste block Y dat nergens naar wijst, dan heeft men een "block chain". Als men een boomstructuur bouwt, ttz, A wijst naar B en C, B wijst naar D en E, en C wijst naar F en G, enz... dan heeft men wat men noemt een Merkle tree. Die noties bestonden allang voor enige bitcoin of andere block chain op de proppen kwam.

git, het software versie systeem, is totaal op die concepten gebaseerd, bijvoorbeeld.

Wat is er cryptografisch zo interessant aan block chains en Merkle trees ? Het is het gegeven dat, als men het "warme einde" in hand heeft (de top van de Merkle tree, of de laatste block van de chain), en men op een of andere manier "zeker" is van dat warme einde, men KAN VERIFIEREN dat alle andere blokken de authentieke zijn, die ook gebruikt werden om naar het warme einde toe te werken.

Merk dus op dat een Merkle tree of een block chain op zich geen "vertrouwensloosheid" hebben: ze koppelen enkel maar de betrouwbaarheid van alle blokken aan de betrouwbaarheid van het "warme" block.

Als men een statische hoeveelheid data heeft, dan brengt een Merkle tree of een blockchain U niks bij. Men kan dan een "proof of work" doen op gans die data, of een cryptografische handtekening plaatsen op gans die data, en je hebt dezelfde "betrouwbaarheid".

Daar waar die dingen interessant worden, is als men groeiende data heeft. Men moet dan niet telkens GANS het data pakket tekenen, men doet het gewoon met het nieuwe stuk data, en voegt een verwijzing naar de "oude data" toe. Maw, Merkle trees en block chains zijn gewoon maar een EFFICIENTIE MIDDEL, geen fundamenteel cryptografisch element dat ergens "zekerheden" aflevert.

Wat heeft dat alles nu met de magische eigenschappen te maken van "gedecentraliseerdheid, gedistribueerdheid, en eeuwigheid van opslag" ?

In de grond: NIKS.

Een block chain is noch intrinsiek gedecentraliseerd, noch gedistribueerd. DATA kan gedistribueerd zijn, als vele mensen op vele computers er vele copieen van hebben. Maar het maken van die copieen heeft niks te maken met het "block chain zijn". Bittorrent is een protocol dat U gedistribueerde copieen laat maken van gepirateerde films en zo, en is evengoed gedistribueerd. Nergens block chains.
Gedecentraliseerdheid wil ook niet speciaal iets zeggen: het wil gewoon zeggen dat er geen centrale authoriteit is die de data maakt. Iedereen kan data bijvoegen. Het spreekt ergens vanzelf dat de notie van "vertrouwen" totaal zoek lijkt te zijn als iedereen zomaar data kan toevoegen op anonieme wijze *en die data ter beschikking stellen* voor anderen via een of ander netwerk.
En een block chain is niet "eeuwiger" dan gelijk welke andere data: als de laatste copie van een block chain gewist wordt, dan is die data evengoed weg als elke andere data ; en data kan evengoed bijgehouden worden zonder een block chain te zijn. Ceasar's Oorlog in Gallie gaat al 2000 jaar mee, zonder een block chain te zijn. En er zijn block chains die verdwenen zijn, omdat geen kat ze copieerde.

Die eigenschappen gedecentraliseerdheid, gedistribueerdheid, en eeuwigheid hebben niks met block chains te maken. Het is goed mogelijk dat de data die in een block chain gaan, ergens gewoon centraal bijgehouden worden op een server die "baas" is. Dan is er geen sprake van gedecentraliseerdheid: de producent van de block chain is een gegeven autoriteit. Ten tweede, het is goed mogelijk dat de toegang tot de block chain data sterk beperkt is, dan is er ook geen sprake van gedistribueerdheid (tenzij voor redenen van back up).

Maw, al die "magische eigenschappen" die men aan block chains toekent hebben niks met de notie van een block chain te maken, en bestaan daarbuiten. Block chains krijgen die eigenschappen als ze gebruik maken van wat daarbuiten ook al voor die eigenschappen beschikbaar was, maw:
- als men een blockchain gaat copieren op vele computers, dan heeft men gedistribueerdheid.
- als men een block chain heeft waar vele onbekenden dingen kunnen aan toevoegen, dan heeft men gedecentraliseerdheid (maar stelt zich tevens de vraag van WAT er nu precies bedoeld wordt met vertrouwensloosheid)
- als men een block chain lang bewaart, dan is ze "een langdurige opslag"
- als men een block chain een cryptografisch element geeft die vertrouwensloosheid op een of andere manier implementeert, dan wordt ze op dezelfde manier vertrouwensloos

Waarom was een block chain een geniaal gedacht bij bitcoin, en waarom zijn die eigenschappen eerder nutteloos bij vele andere toepassingen ?

Bitcoin was een systeem van "overdracht van een eindig aantal tokens" en de "creatie van dat eindig aantal tokens". Hiervoor was het nodig dat men over een UNIEKE datastructuur beschikte, maar voor de rest was er geen enkele eigenschap nodig van "vertrouwensloosheid". Men moest gewoon maar zeker weten dat men de UNIEKE bitcoin database vast had.

Om die uniek te maken, heeft men "proof of work" aan die database gekoppeld: het kost gewoon veel geld, moeite, en energie, om die proof of work te leveren. Zodanig veel geld, moeite en energie, dat geen enkele onnozelaar er een tweede gaat maken. Om de simpele reden dat het ENIGE dat de bitcoin database heeft, monetaire waarde voorstelt. En je gaat natuurlijk in principe niet veel meer waarde verknoeien, om minder monetaire waarde te bekomen.

Als dusdanig is de bitcoin database uniek gemaakt door een "proof of work" cryptografische "handtekening". We weten niet wie dat werk geleverd heeft, maar dat het veel geld gekost heeft, en veel energie opgedaan heeft, kunnen we WEL nagaan. En dus weten we dat we de "unieke" database vast hebben.

Bovendien is de bitcoin database als een block chain georganiseerd, omdat het iets is dat constant data erbij krijgt en dat het nogal veel data is. Men wil dus niet telkens een ganse copie van alle data "hertekenen", maar gewoon "het laatste stuk". Dat is gewoon een kwestie van netwerk efficientie, meer niet. Men had evengoed een groeiende excell file kunnen doorgeven, die telkens met een proof of work getekend zou worden. Maar men heeft gekozen om die excell file in "blokken" op te splitsen, en er een block chain van te maken, zodat je de file kan behouden, en enkel telkens het laatste blok moet toevoegen.

Bovendien was bitcoin iets waar transacties in de tijd geordend dienen te zijn: je kan geen coin uitgeven voor je hem ontvangen hebt. Dat maakte dat de "discrete" tijd gemakkelijk in die blokken geimplementeerd werd: elke block was een "tick van de clock".

Het verspillen van veel energie, en veel waarde was bij bitcoin een voordeel: immers, het maakte dat geld creatie sociaal aanvaardbaar was, omdat het nieuwe geld geen seigniorage opleverde: je verspilde de waarde van het nieuwe geld in energie verbranden.

Maar die eigenschappen zijn slechts zelden nodig in andere toepassingen, en zijn eerder nadelen.

Enorm veel energie verspillen om gewoon zeker te zijn dat een database "uniek" is, is vaak heel dwaas ; als het niet genoeg energie is die verspeeld wordt, is het bewijs van uniciteit maar zwak, en als het genoeg is, kost het enorm veel geld en verspeelt veel energie. Maar bovendien is de uniciteit van een database vaak zinloos, als men verder geen vertrouwen kan hebben in de waarachtigheid van de inhoud. Bij bitcoin speelt dat geen rol: de waarachtigheid van een transactie staat op zichzelf en heeft verder geen betekenis, behalve de transactie in kwestie. Maar bij elke andere sociale toepassing zal de inhoud van de data wel iets betekenen, en is er daar helemaal geen garantie over omdat het toevallig in een unieke database door een totaal onbekende werd gestopt.

In elk van die gevallen moet men ergens vertrouwen hebben in een PERSOON of een organisatie. En dan volstaat de cryptografische handtekening van die persoon of organisatie.

Daar is misschien 1 uitzondering op: het kunnen bewijzen van het geproduceerd hebben van een zekere data *op een gegeven moment in het verleden*.

Maar daarvoor volstaat de BITCOIN block chain. Het volstaat van een bitcoin transactie door te voeren die tevens een hash bevat van die data, en uw bewijs is "vastgelegd" in de tijd. Daarvoor is geen ANDERE blockchain nodig.

Er was echter een oude andere techniek om iets gelijkaardigs te bewerkstelligen: die hash publiceren in een krant of zo. Of op een of andere manier bekend maken in een openbaar medium met grote verspreiding.

Maw, het sociale nut van een blockchain, op die van bitcoin na, ontgaat mij totaal.

Laatst gewijzigd door patrickve : 16 oktober 2019 om 06:24.
patrickve is offline   Met citaat antwoorden