Author

Topic: Blockchain Basics - FAQ (Read 13056 times)

hero member
Activity: 714
Merit: 1010
Crypto Swap Exchange
June 11, 2023, 04:42:21 AM
#13
Da diese FAQ sich primär an Anfänger wendet, sollte man meiner Meinung nach noch klarstellen, daß man mit Private Keys und Wiederherstellungswörtern nur und ausschließlich in einer sicheren Offline-Umgebung hantieren sollte!

Ich wüsste jetzt spontan nicht, warum Anfänger überhaupt Private Keys außerhalb von Wallets "anfassen" sollten, aber den Teilpunkt der FAQ möchte ich hiermit nicht infrage stellen.

Wiederherstellungswörter von HD-Wallets gehören ausschließlich analog "verarbeitet" und gut dokumentiert, also manuell aufgeschrieben und/oder in Metall gestempelt. Kein Foto machen, keine digitale Speicherung auf Computern, die mal später online gehen könnten oder werden!

Man tut sich auch einen Gefallen, wenn man weitere Details mitdokumentiert:
  • welche Software- oder Hardware-Wallet hat die Wiederherstellungswörter generiert
  • wann erstellt
  • zu welchem Zweck erstellt
  • Ableitungspfad(e)
  • ggf. "versteckter" Hinweis auf verwendete Mnemonic Passphrase (letztere natürlich getrennt und sicher dokumentieren)

Alle Details auch von nicht mehr verwendeten alten Wallets besser niemals vollständig entsorgen, man weiß ja nie, ob die Keys von alten Wallets nicht doch irgendwann noch einmal gebraucht werden müssen.
legendary
Activity: 1232
Merit: 1247
March 27, 2020, 06:59:22 PM
#12
Da die Frage erst vor kurzem gestellt wurde und ich nicht möchte, dass die Antwort in der Versenkung verschwindet, habe ich heute mal wieder einen neuen Abschnitt hinzugefügt:

Ich möchte Solo Minen, wie stehen meine Chancen einen gültigen Block- Hash zu finden?
legendary
Activity: 1232
Merit: 1247
March 10, 2020, 03:33:58 PM
#11
Da die Frage im Forum auch immer wieder mal gestellt wird, habe ich die FAQ heute um den Abschnitt
Sind Quantencomputer eine Gefahr für Bitcoin?
ergänzt.
Eventuell werde ich das künftig noch etwas detaillierter behandeln, aber zu kompliziert solls auch nicht werden.  Smiley
legendary
Activity: 1232
Merit: 1247
February 17, 2020, 12:52:21 PM
#10
Da es sich ja um die Blockchain Basics handelt hier würde ich eventuell auch kurz die sache mit dem Mempool erklären.
Hab hier mal kurz (wirklich ganz kurz  Cheesy) darüber geschrieben, dass die Transaktionen in einem Pool landen.
Anschließend landet die Transaktion in einem "Pool ausstehender Transaktionen".

Oder dies kurz anschneiden wiso und warum einige transaktionen dort sind und manchmal hängen bleiben.
Alle Transaktionen landen dort.
Jede Transaktion mit Status 'pending' befindet sich im Mempool.

Vermehrt sind das die fragen von neuen Usern wenn sie ihre erste Transaktion gemacht haben und diese nicht nach einigen Minuten fertig ist.
Und hier gehts dann eigentlich um die Transaction Fees und darum, dass die Miner auswählen können, welche Transaktionen sie validieren.
Oder wolltest du darauf hinaus, dass der Mempool wenn er zu voll wird Transaktionen wieder hinauswirft?

Aber grundsätzlich vielleicht wirklich keine schlechte Idee, wenn ich den ganzen Ablauf mal etwas detaillierter in die FAQ hier aufnehme.
legendary
Activity: 2940
Merit: 3030
February 13, 2020, 04:01:36 PM
#9
Da es sich ja um die Blockchain Basics handelt hier würde ich eventuell auch kurz die sache mit dem Mempool erklären.
Oder dies kurz anschneiden wiso und warum einige transaktionen dort sind und manchmal hängen bleiben.
Vermehrt sind das die fragen von neuen Usern wenn sie ihre erste Transaktion gemacht haben und diese nicht nach einigen Minuten fertig ist.

Unter anderem hier zu sehen :

https://www.blockchain.com/de/charts/mempool-size

https://jochen-hoenicke.de/queue/#0,24h

https://cryptomonday.de/bitcoin-mempool-einfach-erklaert/



legendary
Activity: 1232
Merit: 1247
January 31, 2020, 04:40:03 AM
#8
Vielleicht noch, wie man eine Nachricht signiert? Oder wird das dann etwas zu viel?

Ja gute Idee!
Da der Beitrag von shorena sowieso recht schwer zu finden ist, hab ich das Signieren einer Nachricht am Beispiel von Electrum zitiert.
Schadet nicht, wenn das etwas mehr Aufmerksamkeit bekommt.
Auch den Guide von Lakai01 wie das Signieren mit einem Ledger Nano s funktioniert hab ich verlinkt.

Also jetzt neu:
Wie signiert man eine Nachricht?
legendary
Activity: 2114
Merit: 6618
Currently not much available - see my websitelink
January 30, 2020, 08:40:21 PM
#7
Danke dafür, wenn mir noch etwas einfällt, schreibe ich es hier rein.

Vielleicht noch, wie man eine Nachricht signiert? Oder wird das dann etwas zu viel?
Also gerade nur einen blauen Unterpunkt in der Übersicht, der dann zum Textteil führt und der hat einen Verweis zum Post von shorena, etwa so:

Wie signiert man eine Nachricht?

...

Wie signiert man eine Nachricht?

Um den Besitz einer Bitcoin-Adresse mit dem zugehörigen private Key zu verifizieren, kann man eine beliebige Nachricht "signieren".
Hier eine gute Anleitung dazu: So könnt ihr eine Nachricht signieren
legendary
Activity: 1232
Merit: 1247
January 30, 2020, 07:37:51 PM
#6
legendary
Activity: 1232
Merit: 1247
January 18, 2020, 07:28:48 PM
#5
@1miau

Danke für den zusätzlichen Input.
Werde ich die Tage auf jeden Fall noch mit aufnehmen in die FAQ.

Edit: und danke mole fürs anpinnen.
legendary
Activity: 2114
Merit: 6618
Currently not much available - see my websitelink
January 17, 2020, 10:05:43 PM
#4
Schöne Übersicht, bei der auch die wichtigen Teile einfach verständlich sind, wenn jemand bei der Thematik ratlos ist.

Gerne kannst du meine Liste mit einfügen, wenn du magst: Liste guter Bitcoin-Blockexplorer (mit Abstimmung)

Optional die englische Variante, die ist detaillierter: List of useful Bitcoin block explorers



Ich würde noch auflisten, welche Adressformate es gibt:

Es gibt unterschiedliche Adressformate und teilweise resultiert dies in unterschiedlichen Adressanfängen:

PräfixBezeichnungFormat
__________________________________________________________________________________________________________ _____________
1…Legacy-AdresseP2PKH (pay to public key hash)
3…nested SegWit-AdresseP2WPKH-P2SH (pay to witness public key hash - pay to script hash) / P2WSH-P2SH (pay to witness script hash - pay to script hash)
3…Multisignatur-AdresseP2SH (pay to script hash)
bc1q…native Segwit-AdresseP2WPKH-bech32 (pay to witness public key hash) / P2WSH-bech32 (pay to witness script hash)
Wie erkennt man SegWit Adressen?



Nach HD wallet kannst du am besten für die private keys auch noch die verschiedenen Sorten für das gängige Wallet Import Format (WIF) mit rein nehmen:

PräfixFormat
___________________________________________________________________________________________ _____________
5...WIF (Wallet import format)
L... oder K...WIF compressed (Wallet import format compressed)


Beispiel

_____________________________________________________________________________________________________________________________
Private Key WIF:5K9qCsz17Bd1UxtS7HQWc2rKz6ssNaBHMzK8pJvYiDGVYvUSEWgResultiert in:1testgTQyiDMvtN67kj1w6R6J9dbo6bwd
Private Key WIF compressed:L37ymS2bUHsw8Rg1pjQmfdAio2wXLDSPDdy3Vp7Lxu9P1bnqnz6gResultiert 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):




Dann haben wir auch Beispiele für einen privaten Schlüssel, dass man diese nicht mit den öffentlichen vertauscht, wenn irgendwer einem etwas schicken soll und der hat dann den privaten Schlüssel mit dem er an das wertvolle BTC kommt.

Und immer Vorsicht, wenn man irgendwo private keys eingibt! Immer hinterfragen, ob es wirklich legit und sicher ist.  Smiley
Niemals ein Foto von euren private Keys hier posten, wenn ihr die Adresse nutzen wollt, den private Key vom Foto verwende ich nur für Testzwecke.
staff
Activity: 2310
Merit: 2632
Join the world-leading crypto sportsbook NOW!
January 17, 2020, 09:35:17 PM
#3
Vielen Dank für die tolle FAQ Smiley
Werde sie direkt anpinnen... hat sich der Thread verdient und wird sicher noch oft helfen!
legendary
Activity: 1232
Merit: 1247
January 17, 2020, 07:43:07 PM
#2
Changelog

- 18.01.2020:
anfängliche FAQ erstellt
- 31.01.2020:
Welche Adressformate gibt es?
Wie konvertiert man WIF compressed Private Keys (Start mit 'L' oder 'K') in WIF Private Keys (Start mit '5')?
Wie signiert man eine Nachricht?
legendary
Activity: 1232
Merit: 1247
January 17, 2020, 07:42:54 PM
#1
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 verifizieren
Durch 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- Erstellung
Die 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- Validierung
In 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  Wink



Welche Informationen sind über die Bitcoin Adresse ersichtlich?


Am Besten einfach Blockexplorer öffnen und selber nachsehen.  Wink

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äfixBezeichnungFormat
__________________________________________________________________________________________________________ _____________
1…Legacy-AdresseP2PKH (pay to public key hash)
3…nested SegWit-AdresseP2WPKH-P2SH (pay to witness public key hash - pay to script hash) / P2WSH-P2SH (pay to witness script hash - pay to script hash)
3…Multisignatur-AdresseP2SH (pay to script hash)
bc1q…native Segwit-AdresseP2WPKH-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äfixFormat
___________________________________________________________________________________________ _____________
5...WIF (Wallet import format)
L... oder K...WIF compressed (Wallet import format compressed)


Beispiel

_____________________________________________________________________________________________________________________________
Private Key WIF:5K9qCsz17Bd1UxtS7HQWc2rKz6ssNaBHMzK8pJvYiDGVYvUSEWgResultiert in:1testgTQyiDMvtN67kj1w6R6J9dbo6bwd
Private Key WIF compressed:L37ymS2bUHsw8Rg1pjQmfdAio2wXLDSPDdy3Vp7Lxu9P1bnqnz6gResultiert 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 Nachricht
Text:
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 Signatur
Text:
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 signieren
Wie das Ganze mit einem Ledger funktioniert hat Lakai01 hier beschrieben:  Ledger Nano S Nachricht signieren


Sind 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:
Quote
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:
Quote
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. <<
Jump to: