Bitcoin technische Grundlagen

Das Geld für das Internet

Stephan Oeste / @emzy

Fragen Vorweg

Wer hat schon von Bitcoin gehört?

Everyone excited about Bitcoins. Bit hav no fucking clue what it is.

Wer besitzt schon Bitcoins?

bitcoin owners meme

Wer weiß schon wie Bitcoin funktioniert?

bitcoin mining meme

Was ist Bitcoin

  • Bitcoin ist ein Protokoll
  • Dezentral ohne Herausgeber oder Hersteller
  • Opensource (MIT License)
  • Senden von Geld überallhin in beliebiger Höhe
  • Nicht Umkehrbar oder Aufhaltbar
  • Herausgabe mathematisch festgelegt. Max. 21 Milionen bis 2140
  • Es basiert auf öffentlicher Buchführung Blockchain
  • Nicht Anonym sondern Pseudonym
  • Die Miner sichern das Netz und werden mit Bitcoins belohnt

Die Blockchain

  • Aufgabe
    • Die Reihenfolge der Transaktionen festlegen
    • Verhindern von double-spends
  • Umsetzung
    • Globale Liste aller Kontostände, die Blockchain
    • Die Blockchain besteht aus einzelnen Blocks in denen Transaktionen stehen
    • Jeder Block enthält den Hash des vorherigen Block
    • Damit ist die Reihenfolge vorgegeben und man kann keinen Block einfügen

Die Blockchain

Blockchain

Mining

  • Es ist Rechenleistung nötig um einen Block zu Signieren und in die Blockchain zu hängen
  • Das sichert die Blockchain gegen spätere Änderungen
  • Anreiz für das Mining sind Bitcoins die man für das Finden eines Blocks bekommt
  • Blocks mussen eine gewisse Difficulty erfüllen.
  • Diese wird automatisch angepasst, damit alle 10 Minuten ein Block gefunden wird

Difficulty

Bitcoin Difficulty

Gesamtmenge Bitcoins

Bitcoin Zuwachs
Mining Block Reward wird alle 210.000 Blöcken halbiert, ca. alle 4 Jahre

Blockchain Demo

anders.com Blockchain Demo

Bob will Alice Bitcoins senden

  1. Alice installiert sich eine Wallet-Software
  2. Diese erzeugt einen privaten Schlüssel, öffentlichen Schlüssel und die Adresse
  3. Bob sendet die Bitcoins an die Adresse von Alice

Alice installiert eine Wallet

  • Bitcoin-core
  • Electrum (Python)
  • Breadwallet (iOS)
  • Mycelium (Android)

Schlüssel und Adressen

Schlüssel und Adressen
Mnemonic Code Converter

Privater Schlüssel

  • Es wird ein zufälliger 256 Bit privaten Schlüssel generiert
  • HEX: e3b0c44298fc1c149afbf4c8996fb9242...

Öffentlicher Schlüssel

  • Aus dem privaten Schlüssel wird der öffentliche Schlüssel berechnet
    öffentlicher Schlüssel = privater Schlüssel * Generatorpunkt
    (k = K * G)
  • HEX: 03a34b99f22c790c4e36b2b3c2c35a36d...

Bitcoin Adresse

  • daraus wird die Bitcoin Adresse berechnet
    Hashing des öffentlichen Schlüssel mit SHA256 und RIPEMD160
    (A = RIPEMD160(SHA256(K))
  • HEX: 9a1c78a507689f6f54b847ad1cef1e614ee23f1e

Base58Check Bitcoin Adresse

  • zum Darstellen wird noch Base58Check verwendet
  • 1F3sAm6ZtwLAUnj7d38pGFxtP3RVEvtsbV

Bitcoin Adresse als QR-Code

Bitcoin Adresse

Bitcoin Adress Map

Inhalt einer Transaktion

  • Input(s)
    enthält den proof of ownership eines unspend Outputs einer alten Transaktion mit der digitale Signatur des privaten Schlüssels von Bob
  • Output(s)
    ein Script das nur mit dem zugehörigen privaten Schlüssel der Empfängeradresse gelöst werden kann.
  • Betrag
    z.B. 0,02 BTC
  • Weitere Inputs und Outputs können enthalten sein
  • Gebühr
    z.B. 0,0001 BTC

Eine Beispiel-Transaktion

blockchain.info
blockchain.info

Bob sendet Alice Bitcoins

  1. Bob kopiert die Adresse per Copy+Paste oder scannt den QR-Code
  2. Bob klickt Bitcoins-Senden in seiner Wallet
  3. Alice und Bob warten, dass die Transaktion Bestätigungen erhält
    das die Transaktion in die Blockchain aufgenommen wird

Bobs Wallet sendet die Transaktion in das Bitcoin P2P Netz

  1. Die fertige Transaktion wird im P2P Netz verteilt
    Die Wallet sendet sie an alle aktuell verbundenen P2P Nodes
  2. Alice sieht eine Transaktion ohne Bestätigungen
    Die Wallet hat die Transaktion vom P2P Netz empfangen
  3. Ein Miner sammelt die Transaktion ein und packt sie in einen Block
  4. Er sendet den gefunden Block über P2P Netz
  5. Andere P2P-Clients kontrollieren den Block und bauen ihn in ihre Kopie der Blockchain ein
  6. Alice sieht das die Transaktion ihre erste Bestätigung erhält

Links