Is dit de grootste onopgemerkte technische prestatie van ICP? — ALLE Internet Computer tx's, inclusief financiële, gegevensverwerking en webverzoeken, kunnen direct gevalideerd worden via een "chain key signature" ZONDER de noodzaak om blokken te downloaden, een node te draaien of iemand te vertrouwen... 🧵
Bijvoorbeeld, toen ik begon met het gebruiken van Bitcoin, zou mijn wallet de hele Bitcoin-keten (al zijn blokken) downloaden om mijn saldo en overboekingen te valideren. Het opstarten van de wallet duurde uren. Mijn laptop werd heet en de ventilatoren gingen draaien... 🧵
De enige manier om dit soort dingen te vermijden was om je eigen Bitcoin-client/nofe te draaien die in sync bleef met de laatste blokken, en dat te gebruiken om snel saldi op te vragen. Maar natuurlijk was dat een gedoe... 🧵
Toen Ethereum werd gelanceerd, was het idee dat degenen die dapps bouwden de UX en rekenkracht in de cloud zouden plaatsen, zeg maar, naast een toegewijde node die deze offchain infrastructuur kon gebruiken om in sync te blijven met onchain "smart contract" software en data, waardoor de behoefte aan meer gecentraliseerd vertrouwen werd vermeden, maar.. 🧵
In de praktijk werd het natuurlijk steeds duurder en tijdrovender om Ethereum-nodes te draaien en te onderhouden, vooral naarmate de keten in omvang groeide. De "meest" gedecentraliseerde architectuur mogelijk voor dapps & wallets (voordat volledig onchain/ICP) raakte uit de mode... 🧵
Dapp-operators ontdekten al snel dat het veel gemakkelijker was om nodes te gebruiken die door anderen werden beheerd, die ze VERTROUWEN, zoals Infura, beheerd door ConsenSys op AWS. Dit was de reden waarom, toen AWS ooit uitviel, een groot segment van het Ethereum-ecosysteem ook uitviel. Een beveiligingsinbreuk bij Infura zou veel erger zijn... 🧵
Met nieuwe high-throughput ketens zoals Solana is het niet praktisch om je eigen node te draaien, aangezien nodes speciale hardware vereisen en enorme bandbreedtekosten met zich meebrengen (zelfs professioneel beheerde nodes kunnen alleen recente blokken bijhouden). In feite MOETEN gebruikers en dapp-ontwikkelaars een node-operator vertrouwen... 🧵
Bij DFINITY geloven we in decentralisatie en veiligheid. We hebben de Internet Computer ontworpen zodat wanneer je een transactie indient (typisch doet je app dit voor je in de browser) je het resultaat kunt valideren ZONDER de noodzaak om een node te vertrouwen, met behulp van magische internetwiskunde... 🧵
In het hart van het Internet Computer-netwerk bevindt zich een 48-byte publieke sleutel, die behoort tot de volledig on-chain en autonome NNS (het Network Nervous System), die voor altijd hetzelfde zal blijven. De keten zelf fungeert als de privésleutel, vandaar de term "chain key technology"... 🧵
Elke subnet (in wezen een speciale soort keten die wordt gebruikt om te schalen) heeft zijn eigen sleutel, die wordt ondertekend/gevalideerd door de NNS. Via een systeem van Merkle-paden wordt het resultaat van elke tx die door een subnet wordt verwerkt, ondertekend met de sleutel van het subnet... 🧵
Dus, elk tx-resultaat is ondertekend met de chain key. Iedereen die de 48-byte publieke sleutel van de NNS kent (die van tevoren bekend is en constant blijft) kan elke tx-handtekening valideren. Geldige handtekeningen vertellen je zowel dat de tx is uitgevoerd, als dat het het ontvangen resultaat heeft opgeleverd... 🧵
Bijvoorbeeld, een internetverbonden koelkast (IoT) kan een service op de IC vragen of er een software-upgrade beschikbaar was. Als er nieuwe software werd teruggestuurd, kon de koelkast zijn oproep/tx-handtekening valideren om te verifiëren dat deze van de on-chain service kwam en dat er geen manipulatie had plaatsgevonden.. 🧵
Natuurlijk kan een offchain wallet of financiële dienst ook de resultaten van zijn oproepen naar onchain software valideren, aangezien de verificatiecode voor de ketensleutelhandtekening de publieke 48-byte sleutel van de NNS ingebakken heeft. Beveiliging en VERTROUWENLOOSHEID eindelijk.. 🧵
Wanneer je browser een webasset (bijv. index.html) aanvraagt van de IC, wordt de handtekening van de ketensleutel ingebed in een HTTP-responsheader. Momenteel heb je wat software op je telefoon of laptop nodig om dit transparant te verifiëren (dfinity/http-proxy), maar verwacht innovatie die dit overbodig maakt... 🧵
De wetenschap en implementatie van chain key is complex, maar het werkt, en heeft gezorgd voor ECHTE decentralisatie, vertrouwenloosheid en veiligheid — en toont aan wat hardcore crypto R&D kan bereiken, en ontgrendelt meer kracht uit het volledig on-chain / internet cloud paradigma 💥
35,41K