Da speziell hier im 'Anfänger und Hilfe'- Bereich in regelmäßigen Abständen die selben Fragen zu den Blockchain Basics gestellt werden,
möchte ich hier eine etwas detailliertere FAQ erstellen, um die am häufigsten gestellten Fragen zu beantworten.
Ganz nach dem KISS- Prinzip ('keep it simple, stupid') möchte ich die Antworten so einfach und verständlich wie möglich halten.
FAQ (klickbar)
Wie ist der Ablauf einer Blockchain Transaktion?1. Transaktion wird definiert'Sender' erstellt eine Transaktion, bestehend aus öffentlicher Adresse des Senders, des Empfänger, sowie dem Betrag.
Anschließend wird die Transaktion mit dem Private Key signiert und die Signatur (und der Public Key) der Transaktion angehängt.
Auf diese Weise kann die Authentizität sichergestellt werden. (Das der Sender auch derjenige ist, der er vorgibt zu sein)
2. Transaktion verifizierenDurch Entschlüsselung der digitalen Signatur (durch den public key) können die Knoten nun die Gültigkeit der Transaktion authenthifizieren.
Anschließend landet die Transaktion in einem "Pool ausstehender Transaktionen".
3. Block- ErstellungDie Miner fassen die Transaktionen aus diesem Pool nun zu einem Block zusammen (weitere Details siehe Konsensmechanismen) und senden den Block ins Netzwerk, wo dieser von den anderen Netzwerkteilnehmern validiert werden muss.
4. Block- ValidierungIn diesem Schritt erfolgt die eigentliche Validierung des Blocks, was einen Konsens der Mehrheit des Netzwerks erfordert.
5. Block 'chaining'Zum Schluss wird der Block der Kette angehängt und alle Knoten aktualisieren ihre lokale Kopie der Blockchain.
Was sind Konsensmechanismen?Konsensmechanismen sind im Grunde nichts anderes als Algorithmen, um eine Einigung zwischen den Blockchain- Knoten zu erzielen.
Alle Knoten im Netzwerk sollen sich dabei über die Änderungen im verteilten Ledger einigen.
Von den zahlreichen verfügbaren Konsensmechansimen (PoW, PoS, DPoS, PoA, BFT, PoB usw.) werden wir uns aber nur die zwei bekanntesten ansehen:
Proof of Work (PoW):1. Transaktionen werden in einem Block gebündelt
2. Miner überprüfen die Legitimität der Transaktionen in einem Block
3. hash (block + nonce) < difficulty
Hier versuchen die Miner einen Hash- Wert zu errechnen der kleiner oder gleich einem bestimmten Zielwert, der soganannten Difficulty, ist.
4. Eine Belohnung wird an den ersten Miner vergeben der dieses Rätsel löst (Belohnung = Blockbelohnung + Transaktionsgebühren)
Proof of Stake (PoS):1. Transaktionen werden in einem Block gebündelt
2. Validatoren werden pseudozufällig ausgewählt (pseudozufällig deshalb, da die Wahrscheinlichkeit gewählt zu werden, vom 'Coinalter' und der Anzahl der im Wallet gehaltenen Coins abhängt)
3. hash (hash(Bprev), U, t) <= d x balance(U) x age(U)
4. Validatoren erhalten Transaktionsgebühren des Blocks
Bei PoS sind alle Coins pre- mined, deshalb werden hier ausschließlich die Transaktionsgebühren an die Validatoren verteilt.
Welche unterschiedlichen Blockchain- Typen gibt es?Blockchains kann man einmal nach Art des Zugriffs (Wer kann Daten lesen?) und einmal nach Validierung (Wer darf validieren/Transaktionen verarbeiten?) einteilen.
nach Zugriff:- Public: jeder kann Daten lesen
- Private: nur bestimmte Teilnehmer können Daten lesen
nach Validierung:- Permissionless: Alles Clients haben die selben Rechte, jeder darf Transaktionen verarbeiten
- Permissioned: Nur festgelegte Clients dürfen Transaktionen verarbeiten.
Nun gibt es natürlich
verschiedene Kombinationen:Public Permissionless: Jeder darf Daten lesen und validieren, z.B. Bitcoin
Public Permissioned: Jeder darf Daten lesen aber nur auserwählte dürfen validieren, z.B. Ripple
Private Permissioned: Nur auserwählte dürfen Daten lesen und validieren, z.B. Libra (sollte es kommen)
Private Permissionless: Nur auserwählte dürfen lesen aber jeder darf validiern => macht für mich wenig Sinn, deshalb auch ohne Beispiel
Welche Informationen sind über die Bitcoin Adresse ersichtlich?Am Besten einfach Blockexplorer öffnen und selber nachsehen.
Für BTC:
https://btc.com/Liste guter Bitcoin-Blockexplorer (mit Abstimmung)Für ETH:
https://etherscan.io/Unterschied zwischen Public Key, Private Key und Bitcoin Adresse?Generell unterscheidet man in der Kryptographie zwei Arten:
symmetrische Kryptographie: Derselbe Schlüssel wird verwendet um Botschaften zu ver- und zu entschlüsseln. (muss Sender und Empfänder bekannt sein)
asymmetrische Kryptographie: 2 Schlüssel - ein Verschlüsselungsschlüssel (public key) und ein Entschlüsselungsschlüssel (private key) - auch 'Public Key Kryptographie' genannt
Public Key Kryptographie kommt jetzt zum Beispiel bei der Erstellung eines Wallets zum Einsatz oder wenn eine Transaktion signiert wird.
Bitcoin selbst verwendet digitale Signaturen, genannt ECDSA (Elliptic Curve Digital Signature Algorithmus) um ein public/private Schlüsselpaar zu erstellen bzw. aus einem
private key den dazugehörigen
public key abzuleiten.
Wichtig: die andere Richtung ist NICHT möglich, also von public auf private key.
Auf diesem Public key wird dann zweimal die SHA-256 Hash- Funktion angewendet und die
Public Addresse erstellt.
Wichtig: auch hier ist die andere Richtung NICHT möglich, man kommt also von der Public Addresse NICHT auf den Public Key.
Nun wird mit Hilfe der Base58Check-Codierung diese Adresse noch 'leichter lesbar' gemacht.
Hier werden auch folgende Zeichen ausgenommen: '0', 'O', 'I', 'l', '+', '/ '
>> Eine
Bitcoin-Adresse ist also nur eine Kurzschreibweise für den Public Key.
Willst du dir jetzt mit bitcoin ein Bier kaufen, musst du die Transaktion (also wieviele btc du senden möchtest und an wen) mit deinem private key signieren.
Die Signatur und dein Public key werden der Transaktion angehängt, damit jeder sie überprüfen kann.
Welche Adressformate gibt es?Es gibt unterschiedliche Adressformate und teilweise resultiert dies in unterschiedlichen Adressanfängen:
Präfix | Bezeichnung | Format |
________ | ___________________ | _______________________________________________________________________________ _____________ |
1… | Legacy-Adresse | P2PKH (pay to public key hash) |
3… | nested SegWit-Adresse | P2WPKH-P2SH (pay to witness public key hash - pay to script hash) / P2WSH-P2SH (pay to witness script hash - pay to script hash) |
3… | Multisignatur-Adresse | P2SH (pay to script hash) |
bc1q… | native Segwit-Adresse | P2WPKH-bech32 (pay to witness public key hash) / P2WSH-bech32 (pay to witness script hash) |
Sämtliche Details dazu gibs hier:
Wie erkennt man SegWit Adressen?Was ist ein HD Wallet?ECDSA erlaubt auch Schemata wie BIP32/BIP44 HD wallets. (Ein Ledger Nano oder Electrum sind HD Wallets)
HD steht hier für "hierarchisch und deterministisch".
Die Schlüssel sind also in einer Hierarchie angeordnet und folgen festen Regeln.
Hier wird aus der Seed Phrase (12, 18 oder 24 Wörter) zuerst ein parent key pair generiert, aus dem anschließend alle child key pairs abgeleitet werden.
Es ist daher wichtig, die Seed Phrase sicher aufzubewahren!
Ich habe BTC auf mehreren Adressen meines HD Wallets erhalten, muss ich die BTC der einzelnen Adressen nun einzeln verschicken oder reicht ein Sendeauftrag?Nein, du musst nur einen Sendeauftrag erstellen.
Eine Transaktion kann mehrere Inputs und mehrere Outputs besitzen.
Wenn du z.B: am Ledger auf 10 unterschiedlichen Adressen je 0,1 btc empfangen hast und du anschließend eine Transaktion in der Höhe von 1 btc erstellst, werden zuerst mit den einzelnen private keys sämtliche Inputs der Transaktion signiert.
Anschließend wird die Transaktion ins Bitcoin- Netzwerk geschickt.
Wie konvertiert man WIF compressed Private Keys (Start mit 'L' oder 'K') in WIF Private Keys (Start mit '5')?Präfix | Format |
____________ | _______________________________________________________________________________ _____________ |
5... | WIF (Wallet import format) |
L... oder K... | WIF compressed (Wallet import format compressed) |
Beispiel____________________________ | ___________________________________________________ | ______________ | ________________________________ |
Private Key WIF: | 5K9qCsz17Bd1UxtS7HQWc2rKz6ssNaBHMzK8pJvYiDGVYvUSEWg | Resultiert in: | 1testgTQyiDMvtN67kj1w6R6J9dbo6bwd |
Private Key WIF compressed: | L37ymS2bUHsw8Rg1pjQmfdAio2wXLDSPDdy3Vp7Lxu9P1bnqnz6g | Resultiert in: | 1LKd9CDvgHKCV8qZCMVv55tiKT22871XMi |
Diese private keys können z.B. in Electrum importiert werden, jedoch erzeugt der unkomprimierte private key nur den unkomprimierten public key und der komprimierte private key nur den komprimierten public key. Daher kann es manchmal Verwirrung geben, wenn man einen privaten Schlüssel importiert und man bekommt dann eine andere Adresse angezeigt.
Um die jeweils anderen private key-Varianten (5... / K... oder L...) zu bekommen, kann man Bitaddress.org nutzen (am besten die
aktuelle Version von GitHub herunterladen und offline ausführen):
Wie signiert man eine Nachricht??"Nachricht signieren" ist eine Funktion des Bitcoin-Clients, um jemandem zu beweisen, dass man die Kontrolle über eine Bitcoin-Adresse hat.
Anleitung am Beispiel von Electrum:
Signieren einer NachrichtText:In der Menüleiste auf Werkzeuge -> Nachricht signieren / verifizieren klicken.
Im neuen Fenster oben die Nachricht und in der Mitte die Adresse eingeben.
Danach auf Signieren klicken.
Bilder:Verifizieren einer SignaturText:In der Menüleiste auf Werkzeuge -> Nachricht signieren / verifizieren klicken.
Im neuen Fenster oben die Nachricht, in der Mitte die Adresse und unten die Signatur eingeben.
Danach auf Verifizieren klicken.
Es öffnet sich eine Meldung entweder:
"Signatur bestätigt" oder
"Fehler: Falsche Signatur"
Bilder: Tutorials für andere Clients sind hier zu finden:
So könnt ihr eine Nachricht signierenWie das Ganze mit einem Ledger funktioniert hat Lakai01 hier beschrieben:
Ledger Nano S Nachricht signierenSind Quantencomputer eine Gefahr für Bitcoin?zuerst eine kurze Einführung zum Thema Quantencomputer:Grundsätzlich geht es hier um die Zustände der Bits / Qubits (quantum bits) bzw. um das Rechnen mit diesen.
Bits können folgende Zustände haben: 0, 1
und Qubits: 0, 1 , Superposition (Zustand zwischen 0 und 1)
In weiterer Folge können dann bestimmte Operationen ausgeführt werden.
klassische Operationen: AND, OR, XOR usw.
Quantenoperationen:
hier eine Übersicht
Vereinfacht ausgedrückt geht es also um die Operationen, die mit Hilfe von Quantengattern auf den Qubits ausgeführt werden.
Inwiefern wäre Bitcoin davon betroffen?Generell muss man die verwendeten Algorithmen unterscheiden,
nämlich
ECDSA - der Algorithmus der zum Signieren verwendet wird
und
SHA256 - der Algorithmus der einerseits dazu verwendet wird um einen Block- Hash zu berechnen und andererseits dazu verwendet wird um die Public Adresse zu erstellen (Public key -> SHA256 -> Public Adresse -> Base58 -> Bitcoin Adresse)
Betroffen wäre hier sowieso "nur" ECDSA.
Hätte man also ein Wallet ohne einer einzigen ausgehenden Transaktion, gibts für den Quantencomputer auch keinen public key mit dem er den private key 'errechnen' kann.
Und sollten Hash- Funktionen wie SHA256 in Zukunft 'gebrochen' werden können, dann hätten wir auch weitaus schlimmere Probleme als unseren Bitcoin.
SHA256 wird nämlich nicht nur im Bitcoin Netzwerk, sondern auch quasi für alle Zertifikate im Internet verwendet.
Ich möchte Solo Minen, wie stehen meine Chancen einen gültigen Block- Hash zu finden?Die Difficulty wird folgendermaßen berechnet:
new_difficulty = old_difficulty X (2016 blocks X 10 minutes) / (the time took in minutes to mine the last 2016 blocks)
Alle 2016 Blöcke wird ja bekanntlich die Difficulty angepasst: war die durchschnittliche Block- Zeit zu kurz wird sie erhöht, war sie zu lang wird sie reduziert.
Die Difficulty wird angepasst indem der target_value (256 bit Nummer) im Block Header entsprechend angepasst wird:
new_target = old_target / new_difficulty
Je kleiner der target value (mehr führende Nullen) desto schwieriger einen gültigen Block- Hash zu finden.
Die Aufgabe der Miner ist es ja einen Block- Hash zu finden der kleiner oder gleich dem Ziel Wert ist.
Wenn man sich nun z.B. 10 PH/s mietet und die aktuelle Difficulty bei z.B. 91 EH/s liegt
1 Exa- Hash sind 10^18 H/s
1 Peta- Hash sind 10^15 H/s
ist man im Besitz von ...
(91 * 10^18) / (10 * 10^15) = 9100
... 1/9100 des gesamten Netzwerks
bei 10 Blocks / Minute = 6 Blocks / Stunde = 144 Blocks / Tag = 1008 Blocks/Woche
muss man im Schnitt 63,19 Tage warten, bis man einen gültigen Block- Hash findet.
Sinkt die Hashrate weiter ist der Anteil an der Gesamt- Hashrate des Netzwerks größer und man findet im Schnitt früher einen gültigen Block- Hash.
Die Difficulty regelt nur, dass im Schnitt alle 10 Minuten ein Block gefunden wird.
>> Als
zusätzliche Lektüre möchte ich noch auf die
Liste volkstümlicher Bitcoin Irrtümer - FAQ von qwk verweisen. <<