De basis van Web3- en DApp-ontwikkeling · Les

Cryptografie voor blockchains

Begrijp hashfuncties, cryptografie met publieke sleutels en digitale handtekeningen zoals toegepast in blockchaintechnologie.

Les 1 van 311 stappen

Cryptografie voor blockchains is een gratis De basis van Web3- en DApp-ontwikkeling-les op CoddyKit. Dit is les 1 van 3. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject De basis van Web3- en DApp-ontwikkeling. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus De basis van Web3- en DApp-ontwikkeling bevat in totaal 3 lessen.

Crypto: het geheime ingrediënt van blockchain

Welkom bij cryptografie voor blockchains! Cryptografie vormt de basis van blockchaintechnologie en zorgt voor beveiliging, integriteit en vertrouwen.

In deze les ontdek je de geheimen van hashfuncties, cryptografie met openbare sleutels en digitale handtekeningen: belangrijke concepten die gedecentraliseerde systemen mogelijk maken.

Hashing: een digitale vingerafdruk

Stel je voor dat je een willekeurige hoeveelheid gegevens, zoals tekst, een afbeelding of een heel boek, omzet in een unieke tekenreeks met een vaste lengte. Dat doet een hashfunctie!

Het is als een digitale vingerafdruk van je gegevens. Zelfs een kleine wijziging in de oorspronkelijke gegevens levert een volledig andere vingerafdruk op.

Superkrachten van cryptografische hashes

Cryptografische hashfuncties hebben speciale eigenschappen die ze ideaal maken voor blockchains:

  • Eenrichtingsverkeer: de hash is eenvoudig te berekenen, maar het is vrijwel onmogelijk om de oorspronkelijke gegevens uit de hash terug te halen.
  • Deterministisch: dezelfde invoer levert altijd precies dezelfde hash als uitvoer op.
  • Bestand tegen botsingen: het is buitengewoon moeilijk om twee verschillende invoeren te vinden die dezelfde hash als uitvoer opleveren.
  • Lawine-effect: een kleine wijziging in de invoer leidt tot een sterk afwijkende hash als uitvoer.

Hashing-demonstratie: zie het in actie!

Laten we het lawine-effect bekijken met een veelgebruikt hashalgoritme, SHA-256 (Secure Hash Algorithm 256-bit). Let erop hoe een kleine wijziging de hash volledig verandert.

import java.security.MessageDigest;
import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class Main {
  public static String applySha256(String input) {
    try {
      MessageDigest digest = MessageDigest.getInstance("SHA-256");
      byte[] hash = digest.digest(input.getBytes(StandardCharsets.UTF_8));
      StringBuilder hexString = new StringBuilder();
      for (byte b : hash) {
        String hex = Integer.toHexString(0xff & b);
        if (hex.length() == 1) hexString.append('0');
        hexString.append(hex);
      }
      return hexString.toString();
    } catch (Exception e) {
      throw new RuntimeException(e);
    }
  }

  public static void main(String[] args) {
    String data1 = "Hello CoddyKit!";
    String data2 = "hello CoddyKit!"; // Note: 'h' vs 'H'

    System.out.println("Data 1 Hash: " + applySha256(data1));
    System.out.println("Data 2 Hash: " + applySha256(data2));
  }
}

Hashes: blokken en gegevens verbinden

In blockchains zijn hashes onmisbaar:

  • Blokken verbinden: elk blok bevat de hash van het vorige blok. Zo ontstaat een onbreekbare keten, waardoor het vrijwel onmogelijk is om eerdere transacties aan te passen zonder volgende blokken ongeldig te maken.
  • Gegevensintegriteit: de hash van een blok wordt berekend op basis van al zijn gegevens (transacties, tijdstempel enzovoort). Als er ook maar één gegeven wordt gemanipuleerd, verandert de hash van het blok en wordt de wijziging onmiddellijk zichtbaar.

Cryptografie met openbare sleutels: twee sleutels, één slot

Cryptografie met openbare sleutels (ook asymmetrische cryptografie genoemd) gebruikt een paar wiskundig aan elkaar gekoppelde sleutels: een openbare sleutel en een privésleutel.

Zie het als een bijzondere brievenbus: iedereen kan er een brief in doen (versleutelen met de openbare sleutel), maar alleen degene met de unieke sleutel kan hem openen (ontsleutelen met de privésleutel).

Je digitale identiteit: sleutels

Dit sleutelpaar is cruciaal:

  • Privésleutel: dit is jouw geheim. Het is als je wachtwoord en handtekening in één. Deel de sleutel nooit! Je gebruikt hem om berichten te ontsleutelen of digitale handtekeningen te maken.
  • Openbare sleutel: deze wordt uit je privésleutel afgeleid en mag je openbaar delen. Anderen gebruiken hem om berichten voor jou te versleutelen of je digitale handtekeningen te controleren.

Met deze sleutels kun je veilig communiceren zonder ooit rechtstreeks een geheim te delen.

Digitale handtekeningen: authenticiteit bewijzen

Een digitale handtekening is een cryptografische techniek om de authenticiteit en integriteit van een digitaal bericht of document te controleren.

Het lijkt op een handgeschreven handtekening, maar is veel veiliger! De handtekening bevestigt dat het bericht echt van de ondertekenaar afkomstig is en sinds de ondertekening niet is gewijzigd.

Digitaal ondertekenen en controleren

Zo werkt het in grote lijnen:

  1. De afzender maakt een hash van het bericht.
  2. De afzender versleutelt deze hash met zijn of haar privésleutel om de digitale handtekening te maken.
  3. De ontvanger ontvangt het bericht en de handtekening.
  4. De ontvanger maakt zelf een hash van het ontvangen bericht.
  5. De ontvanger ontsleutelt de handtekening van de afzender met diens openbare sleutel om de oorspronkelijke hash te verkrijgen.
  6. Als de twee hashes overeenkomen, is de handtekening geldig en is het bericht echt en niet gemanipuleerd!

Korte controle: cryptografie

Welke van de volgende eigenschappen is GEEN basiseigenschap van een cryptografische hashfunctie?

Samenvatting: de rol van crypto in Web3

Goed gedaan! Je hebt de cryptografische basisprincipes geleerd waarop Web3 steunt:

  • Hashfuncties: maken unieke vingerafdrukken met een vaste lengte voor gegevens, zodat de integriteit wordt gewaarborgd en blokken kunnen worden verbonden.
  • Cryptografie met openbare sleutels: gebruikt sleutelparen (openbaar en privé) voor veilige communicatie en identiteit.
  • Digitale handtekeningen: bieden authenticiteit en onweerlegbaarheid voor transacties en zijn essentieel voor de beveiliging van blockchains.

Deze concepten zijn cruciaal om te begrijpen hoe cryptovaluta en gedecentraliseerde toepassingen veilig en betrouwbaar blijven. Hierna gaan we dieper in op het beheer van deze sleutels in portemonnees!

Gratis beginnen

Leer De basis van Web3- en DApp-ontwikkeling met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
29
Lessen
105

Veelgestelde vragen

Is de les “Cryptografie voor blockchains” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad De basis van Web3- en DApp-ontwikkeling, waaronder “Cryptografie voor blockchains”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus De basis van Web3- en DApp-ontwikkeling bevat in totaal 3 lessen.

Wat leer ik in “Cryptografie voor blockchains”?

Begrijp hashfuncties, cryptografie met publieke sleutels en digitale handtekeningen zoals toegepast in blockchaintechnologie. Je oefent met De basis van Web3- en DApp-ontwikkeling door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met De basis van Web3- en DApp-ontwikkeling te beginnen?

Ervaring vooraf is niet nodig. De basis van Web3- en DApp-ontwikkeling op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 3.

Hoe lang duurt de les “Cryptografie voor blockchains”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over De basis van Web3- en DApp-ontwikkeling?

Ja. Elke les over De basis van Web3- en DApp-ontwikkeling bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Cryptografie voor blockchains
  2. Publieke en private sleutels en wallets
  3. Inleiding tot MetaMask
← Terug naar De basis van Web3- en DApp-ontwikkeling