Module 4A- Bouwstenen van de blockchaintechnologie Flashcards

1
Q

Concept blockchain

A
  • Een blockchain kan beschreven worden als een combinatie van een aantal technieken uit de computerwetenschappen en cryptografie om informatie op te slaan, te delen en vertrouwen te creëren omtrent die informatie.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wat is een hashfunctie?

A
  • Hashfuncties zijn wiskundige berekeningen die een gegeven set aan data, ongeacht haar grootte, omzetten naar een “string” (reeks getallen/letters, binair/hexadecimaal of anders) van vaste lengte.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Wat is de mechaniek van een hashfunctie?

A
  • Praktisch uitermate moeilijk om uit de output (string) de input van de hashfunctie te berekenen. Omgekeerd is het relatief eenvoudig om vanuit de input de hashfunctie toe te passen en een string te berekenen.
  • Het is ook onvoorspelbaar welke input leidt tot een output → geen patroon te vinden tussen de waarde van de input en waarde van de output dus daaruit kan je niets afleiden.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wat is het voordeel van de mechaniek van hashfuncties?

A
  • = eenrichtingsverkeer → voordeel dat je niet de volledige dataset hoeft te beveiligen, maar louter de hash die van die dataset kan gemaakt worden om zeker te zijn dat er aan de gehele dataset niets is gewijzigd.
  • Als je namelijk op een later tijdstip dezelfde dataset als input neemt, dan moet je ook dezelfde hash als uitkomst bekomen. Zo niet, dan heeft er iemand iets verandert aan de dataset.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Wat is er nodig opdat hashfuncties voldoende uniek en onvoorspelbaar zouden zijn?

A
  • Het mag niet te makkelijk zijn om vanuit 2 verschillende inputs 1 hash te genereren:
    • Indien dit eenvoudig is, dan zou een fraudeur de originele dataset al te makkelijk kunnen vervangen door een kopie met exact dezelfde hash en de eenrichtingseigenschap onderuithalen.
  • Er mag geen overlappende outputs zijn.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Illustratie duivenkoten bij hashfuncties?

A
  • Stel dat je een duivenhok hebt met 100 kotjes, maar je hebt 101 duiven. Dan is je output (kotjes) net kleiner dan je input (duiven) en ben je zeker dat er minstens voor éénzelfde kot twee duiven zullen zijn. Bij hashfuncties zijn er op veel grotere schaal ook meer mogelijke inputs (duiven) dan hashes (kotjes).
  • Bijgevolg kan je er zeker van zijn dat door het beperkte aantal mogelijke hashes, aangezien die altijd in éénzelfde format moeten staan, er sowieso wel twee of meer bestanden bestaan die dezelfde hash als uitkomst hebben.
    • De sterkte van een hashfunctie is echter dat het praktisch erg moeilijk tot onmogelijk is om vanuit een hash (output/kotje) de inputs (duiven) terug te vinden die tot die hash leiden.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Waarom is de hashfunctie belangrijk voor de blockchain?

A
  1. Lange documenten samen te vatten in 1 hash
  2. Proof-of-work systeem op basis van hashpuzzels
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Lange documenten samen te vatten als hash?

A
  • Een string is uniek voor het document -> als men dezelfde hash als resultaat heeft als degene die het origineel heeft samengevat in een hash, dan zijn we zeker dat beide documenten exact hetzelfde zijn, aangezien het bijna onmogelijk is om vanuit het document zelf dezelfde hash te proberen te genereren.
  • Gevolg: Op die manier laten hashfuncties toe om niet volledige databanken te moeten beveiligen, maar één enkele string om te controleren dat in die databanken niets gewijzigd is.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Proof-of-work systeem op basis van hashpuzzels

A
  • Voor bepaalde blockchains is het proof-of-work systeem op basis van hashpuzzels: Bitcoin.
    • Aangezien het onvoorspelbaar is welke hash voortvloeit uit een input is de enige manier om een specifieke hash te vinden door allerlei verschillende opties te testen (lees: uit te rekenen).
  • Een hash-puzzel kan bijgevolg enkel opgelost worden doordat een computer voldoende inputvariaties heeft getest, een bepaalde mate van rekenwerk heeft gepresteerd (en een stukje geluk heeft gehad) dat hij op de juiste oplossing is gestoten binnen een redelijke tijd.
    • Afhankelijk van rekenkracht + geluk
  • Resultaat: zo het is het veel moeilijker voor 1 entiteit om voldoende rekenmacht te bezitten om fraude te plegen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Waarom hebben we deze techniek van Merkle boom nodig?

A
  • Via hashfuncties: grote stukken informatie in 1 unieke string. Wanneer we veel informatie in 1 hashfunctie moeten verwerken → liever informatie opdelen met elk hun eigen hash om gecontroleerd te worden.
  • Om al die verschillende hashes samen te vatten, combineert men telkens twee hashes tot een nieuwe hash, die dan op haar beurt wordt gehasht met een andere hash, enz.
  • Op deze manier kan men een Merkle boom opbouwen waarbij uiteindelijk één hash aan de basis ligt die kan ontrafeld worden tot elke hash.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Waarom zou je timestamping willen gebruiken?

A
  • Stel dat je niet één keer een contract afsluit met een partij, maar dit verschillende keren doet. Je wil echter al je contracten met die partij telkens kunnen samenvatten in één hash.
  • Dit kan door een hashketting te creëren. Bij het samenstellen van je nieuwste blok (je Merkle boom) voeg je een zogenaamde hash-pointer toe die verwijst naar de locatie van de data van de vorige Merkle boom.
    • → Zo creëer je een ketting van blokken die telkens naar elkaar verwijzen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Hoe kan je zo de volgorde vastleggen via timestamping?

A
  • Door telkens de uitkomst van de Merkle boom op een bepaald moment te hashen met de uitkomst van de Merkle boom op een later moment kan de volgorde van verschillende stukken informatie vastgelegd worden.
  • Je hebt namelijk telkens de hash van de volgende Merkle bomen nodig om de hash van een eerdere Merkle boom boven te halen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wat kan je doen door timestamping?

A
  • Als je dan van tijd tot tijd de uitkomst van de huidige combinatie van hashes publiceert of op één of andere manier formaliseert (i.e. publiek maken dat op moment N0 hash X het resultaat is van je databank), dan kan je achteraf aantonen welke versie van de informatie op dat moment bestond.
  • Bijgevolg kan je door de combinatie van timestamping, Merkle bomen en hashfuncties grote hoeveelheden informatie doorheen de tijd met hashes samenvatten en achteraf controleerbaar maken.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Wat is symmetrische cryptografie?

A
  • Bij symmetrische cryptografie wordt dezelfde sleutel (bv. A = B, B = C, etc.) gebruikt om informatie te coderen en te decoderen. Men kan dus met de sleutel zowel weten dat A uit een origineel B is, maar ook dat B in code uit A komt in het origineel.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wat is asymmetrische cryptografie

A
  • Daarbij wordt niet telkens dezelfde sleutel gebruikt om informatie te coderen en te decoderen, maar maakt men gebruik van twee sleutels.
    • Bv. digitale handtekeningen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Publieke en private sleutel

A
  • Deelnemers aan of leden van een blockchain (maar ook in toepassingen waar geen blockchain wordt gebruikt) hebben een publieke sleutel en een private sleutel.
  • Publieke sleutel: Enkel toegankelijk voor het lid via een wachtwoord of een andere beveiligingstechniek.
  • Private sleutel: Is voor iedereen zichtbaar
17
Q

Hoe werkt asymmetrische cryptografie in de praktijk?

A
  • Als A een stuk tekst met zijn private sleutel ondertekent, dan kan B met de publieke sleutel van A controleren of dit stuk tekst en de bijhorende sleutel weldegelijk degene is die bij het publieke sleutelpaar van A hoort.
  • Op die manier kan enkel A een tekst ondertekenen, aangezien deze de private sleutel heeft, maar kan eender welke andere persoon B controleren of het wel A was die een tekst heeft ondertekend via de publieke sleutel van A.
  • B kan op die manier ook controleren of de tekst die A ondertekent heeft, wel de exacte tekst is die initieel ondertekent moest worden zodanig dat A niet zomaar daarin wijzigingen kan aanbrengen. B kan echter zelf niet op basis van de publieke sleutel van A iets ondertekenen in naam van A.
18
Q

Hoe wordt het systeem van asymmetrische cryptografie gebruikt bij Bitcoin?

A
  • De publieke sleutel vormt daar een reeks getallen en cijfers die als het ware het adres van je rekening weergeven. Als A een transactie op de blockchain wil plaatsen, bijvoorbeeld door Bitcoins van de eigen rekening naar die van B te sturen, dan gaat A deze versturen naar de publieke sleutel van B. A kan de toestand van de eigen rekening die achter de publieke sleutel zit enkel wijzigen via de eigen private sleutel.
  • → Om dus iets over te dragen van A naar B, moet A haar eigen private en publieke sleutel hebben en de publieke sleutel van B.
19
Q

Toepassing: Belgische ID-kaart van asymmetrische cryptografie?

A
  • Gebruikt hetzelfde systeem, maar niet op een blockchain.
  • Deze identiteitskaart bevat zowel informatie op een fysieke drager (de kaart zelf) als op een digitale drager (de chip in je kaart), vandaar dat we spreken van “electronic identification” of eID. De informatie op deze laatste is een heel stuk uitgebreider dan deze die je op het eerste zicht ziet.
20
Q

Wat zijn de 3 sleutelparen bij Belgische Id-kaart?

A
  1. Digitale handtekeningen door de burger
  2. In te loggen met je ID-kaart: bv. MyMinFin
  3. Informatie op je kaart te beheren door de overheid: bv. burgerlijke stand wijzigen
  • Voor twee van de drie sleutelparen heeft de burger de private sleutel, terwijl voor de derde de overheid de private sleutel bezit. Op die manier kan een derde wel de publieke sleutel van dit paar lezen, maar tegelijk er zeker van zijn dat de informatie die op die publieke sleutel staat enkel kan toegevoegd of gewijzigd zijn door tussenkomst van de overheid die de private sleutel bezit.
21
Q

Hoe kan een derde met zekerheid weten dat wanneer iemand met zijn combinatie van private en publieke sleutel zich probeert te identificeren, dat dat effectief die persoon is die die combinatie zou moeten bezitten?

A
  • Certificaten: deze geven aan dat aan een een publieke sleutel een welbepaalde identiteit (naam of andere gegevens) hoort. Je hebt geen derde partij nodig om na te gaan dat een private sleutel bij een publieke sleutel hoort.
  • Wanneer een burger op basis van zijn publieke sleutel, die deze heeft geactiveerd met een bepaalde private sleutel, een document probeert te handtekenen, dan zal de derde partij aan een betrouwbare derde partij (bv. de overheid die de lijst bijhoudt van de sleutelcombinaties) vragen om het sleutelpaar te controleren en te bevestigen (i.e. een certificaat af te leveren).
  • Wanneer dit gebeurd is, dan kan de derde in principe vertrouwen dat de er achter de zichtbare publieke sleutel de juiste persoon met de private sleutel zit zonder dat er enig zicht is op de private sleutel.