Wo werden die Bitcoins des Benutzers tatsächlich gespeichert?

Auf dem Computer der Person?

Auf bitcoin.org? :)

Wo befinden sich diese Informationen, die anderen und mir sagen, wie viele Bitcoins ich habe?

Ich nehme an, es kann nicht auf meinem PC sein, weil ich die Datei, die diese Daten enthält, leicht hacken und mir mehr Bitcoins besorgen könnte, richtig?

Alle Krypto-Assets wie Bitcoin, Ether usw. werden in ihren jeweiligen Blockchains gespeichert. Die Informationen wie Ihr Guthaben werden in einem bestimmten Block mit anderen Details wie der Erstellungszeit usw. gespeichert, die nicht geändert werden können. Die Seiten wie live.blockcypher.com/btc zeigen Ihr Guthaben mit Ihrer öffentlichen Adresse an. Jeder, der Ihre öffentlichen Schlüssel kennt, kann auch Ihren Kontostand und den Transaktionsverlauf kennen. Mit dem Zugriff auf die privaten Schlüssel behaupten Sie jedoch, dass eine bestimmte öffentliche Adresse Ihnen gehört, was bedeutet, dass Sie die "Rechte" haben, Ihre Gelder zu kontrollieren (Überweisung usw.).

Antworten (8)

Es scheint, als wäre hier eine grundlegende Erklärung von zwei der großen Konzepte von Bitcoin erforderlich: der Brieftasche und der Blockchain:

  • Ein "Wallet" ist eine Sammlung von ECDSA-Schlüsselpaaren. Für diejenigen, die mit Kryptographie nicht vertraut sind, besteht ein Schlüsselpaar aus einem „öffentlichen Schlüssel“ und einem „privaten Schlüssel“, die zum Verschlüsseln oder Signieren von Datenbits verwendet werden können. Der öffentliche Schlüssel ist, wie der Name schon sagt, jedem bekannt und kann verwendet werden, um Nachrichten so zu verschlüsseln, dass nur der Inhaber des privaten Schlüssels sie entschlüsseln kann. Der private Schlüssel kann auch verwendet werden, um Nachrichten so zu signieren, dass jeder, der den öffentlichen Schlüssel besitzt, überprüfen kann, ob die Nachricht wirklich von Ihnen stammt. Jede Bitcoin-Adresse besteht aus einem solchen Schlüsselpaar – die „Adresse“, die Sie den Leuten schicken, ist die öffentliche Hälfte und die private Hälfte befindet sich in Ihrer wallet.dat-Datei.
  • Die „Blockchain“ ist eine ständig wachsende Datenbank mit Transaktionsinformationen, die an alle Knoten im Bitcoin-Netzwerk gesendet werden. Wenn Sie eine Transaktion durchführen, wird diese Transaktion an das Netzwerk verteilt und unter der Annahme, dass die Transaktion gültig ist, in den nächsten "Block" aufgenommen. Hier werden die Coins selbst gelagert. Wenn Sie eine Transaktion einleiten, werden alle vorherigen Transaktionen zu oder von dieser Adresse gescannt und ein Saldo wird berechnet. Wenn Ihre Transaktion dieses verfügbare Guthaben überschreitet, wird sie vom Netzwerk abgelehnt und nicht in einen Block aufgenommen.

Es ist auch wichtig zu beachten, dass die Blockchain technisch gesehen keine „Münzen“ speichert, sondern Transaktionsinformationen. Die Coins selbst sind keine diskreten Dinge, die gespeichert werden müssen – wenn Coins abgebaut werden, wird das Guthaben des Miners über eine „Generate“-Transaktion gutgeschrieben, die sein verfügbares Guthaben erhöht. Wenn Coins von A nach B gesendet werden, wird diese Transaktion vom Guthaben von A abgezogen und dem Guthaben von B hinzugefügt. Dies ähnelt der Art und Weise, wie Ihr Arbeitgeber per EFT „Geld“ an Ihre Bank senden kann und Sie Ihre Debitkarte verwenden können, um dieses „Geld“ in einem Geschäft auszugeben, ohne dass jemals jemand einen diskreten physischen Dollarschein sieht. Das meiste Geld auf der Welt existiert heute lediglich als Transaktionshistorie und Guthaben – Bitcoin ist keine Ausnahme.

Super Erklärung, danke. Sie können also wirklich nur ein Offline-Backup Ihrer Brieftasche auf einem Flash-Laufwerk speichern und müssen den Brieftaschen-Client nicht wirklich aktiv ausführen, bis Sie eine Transaktion durchführen möchten?
Wollen Sie damit sagen, dass jeder Knoten im Bitcoin-Netzwerk die gesamte Historie aller Transaktionen enthält, die jemals von Bitcoin-Besitzern durchgeführt wurden? Zweitens, was ist ein "Knoten"? Irgendein Computer mit einer Bitcoin-Wallet?
Es hängt tatsächlich davon ab, welche Software Sie verwenden. Vor langer Zeit, als ich diese Antwort schrieb, gab es wirklich nur eine Wallet-Software und ja, sie speicherte jede einzelne Transaktion aller Zeiten. Heute gibt es mehrere Möglichkeiten und nicht alle speichern alle Daten. Electrum zum Beispiel betreibt Thin Clients, die sich mit Servern verbinden, die die gesamte Blockchain speichern, und viele Telefon-Wallets speichern nur Blöcke, die Transaktionen enthalten, die sie betreffen. Im Allgemeinen wird es jedoch als bevorzugt angesehen, dass jeder Knoten (Computer, auf dem Software ausgeführt wird) alles speichert.
David, danke, aber es gibt einige vage Dinge, die ich nicht verstehen kann. Ich werde auflisten: 1) Falls alle Transaktionen in einem einzelnen Knoten / PC gespeichert wurden, kann diese Person (PC-Inhaber) diese Daten öffnen (ansehen) und ändern? (ja oder nein) 2) wenn er die Daten ändern kann, was passiert dann? das System prüft, ob diese Daten mit den Daten übereinstimmen, die andere Tausende von Knoten speichern? Wie es validiert wird, kann ich nicht verstehen, wenn Einzelpersonen die Daten ändern könnten ... 3) Wo ist der Kernhost (Server) oder die Appliance, die Ihnen die Erlaubnis gibt, Transaktionen abzulehnen oder Ihrem Konto hinzuzufügen ("generieren")? wer entscheidet das?
4) Wenn eine Transaktion stattfindet, wo wird sie zuerst gespeichert/aktualisiert? dh auf jemandes Knoten? und irgendwo auf der anderen Seite der Erde, auf einem Knoten, könnte diese Transaktionsaktualisierung nach X Sekunden/Minuten stattfinden, und wenn während dieser Zeit eine weitere Transaktion durch denselben Inhaber stattfindet??
@T.Todua, hast du eine Antwort auf deine 4 oben aufgeführten Fragen gefunden? Wenn ja kannst du das bitte hier posten.
@VishalSingh Ich bezweifle, dass selbst der Bitcoin-Ersteller kaum weiß, wie das alles funktioniert :)
@David - Können Sie bitte näher darauf eingehen: "Wenn Sie eine Transaktion einleiten, werden alle vorherigen Transaktionen zu oder von dieser Adresse gescannt und ein Saldo berechnet." ? Wie werden sie gescannt? Gibt es einen laufenden Kontostand, der durch Betrachten des letzten Blocks mit dieser Adresse bestimmt werden kann, oder müssen alle Blöcke gescannt werden?
Angenommen, der Besitzer des Bitcoin-Kontos stirbt, wohin geht das Geld dann? Ich meine, in Altfällen ist das Geld bei der Bank sicher und kann an einen Nominee weitergegeben werden

Die Informationen sind aufgeteilt. Einige Informationen werden auf Ihrem PC in der Wallet-Datei gespeichert. Einige Informationen werden in der öffentlichen Blockchain gespeichert .

In Ihrer Brieftaschendatei ist die Liste der von Ihnen kontrollierten Konten und der geheime Schlüssel gespeichert, der zum Ausgeben der an diese Konten gesendeten Münzen erforderlich ist. In der öffentlichen Blockchain (die auf jedem Computer gespeichert ist, auf dem der Bitcoin-Client läuft) ist die Aufzeichnung jeder Transaktion gespeichert, die jemals durchgeführt wurde, einschließlich aller Transaktionen, die Ihnen Coins geschickt haben.

Wenn Sie Ihre Münzen ausgeben möchten, überprüfen Sie die Blockchain, um nicht ausgegebene Münzen zu finden, die an Sie gesendet (oder von Ihnen abgebaut) wurden. Sie verfassen eine Transaktion , die angibt, welche nicht ausgegebenen Münzen in der Blockkette Sie ausgeben möchten und an welche(s) Konto(s) Sie diese Münzen senden möchten. Sie können jede „Änderung“ an ein Konto zurückgeben, das Sie kontrollieren. Sie verwenden die Schlüssel in Ihrer Brieftasche, um die Transaktion zu signieren.

Sie übertragen diese Transaktion dann an die Miner. Sie bestätigen, dass Ihre Transaktion gültig ist, und stellen sicher, dass nur vorhandene Münzen ausgegeben werden, die nicht ausgegeben wurden und dass sie die richtigen Signaturen hat. Sie stellen sicher, dass die Anzahl der Coins, die aus der Transaktion hervorgehen, kleiner oder gleich der Anzahl der Coins ist, die von der Transaktion beansprucht werden. Sie schreiben diese Transaktion dann in einen neuen Block, der mit der Hash-Kette verknüpft ist, und die Übertragung ist abgeschlossen.

Ihre Coins werden in Adressen in der Blockchain gespeichert. Somit werden Ihre Münzen und meine Münzen und die Münzen aller in jedem Computer gespeichert, der das Bitcoin-Netzwerk bildet. Die Blockchain enthält jede verwendete und jede jemals verwendete Adresse sowie die Anzahl der Münzen, die sich derzeit an dieser Adresse befinden.

Aus diesem Grund ist es nicht sinnvoll, Ihre eigene client- oder wallet.dat zu hacken. Ihre Münzen sind nicht da, sie sind überall.

Beispielsweise können Sie hier jede Ihrer (oder jeder anderen) Adressen nachschlagen und den aktuellen Wert sehen. http://blockexplorer.com/

Was hält also andere davon ab, IHRE Coins auszugeben?
Das Ausgeben von Bitcoins bedeutet, eine Transaktion zu erstellen, die es von einer Adresse zu einer anderen bewegt.

Um eine Transaktion zu erstellen, müssen Sie die Transaktion kryptografisch mit dem privaten Schlüssel der Adresse signieren, die die Münzen enthält (dem öffentlichen Schlüssel). Da es eine mathematische Beziehung zwischen öffentlichen und privaten Schlüsseln gibt, kann der Rest des Bitcoin-Netzwerks überprüfen, ob die Transaktion ordnungsgemäß signiert ist. Die "Coins" (technisch gesehen öffentliche Schlüsseladressen und deren aktueller Wert) sind für jedermann einsehbar, aber diese Coins können nur von den Personen bewegt werden, die im Besitz des privaten Schlüssels sind.

Ihre wallet.dat-Datei enthält alle Ihre öffentlichen privaten Schlüsselpaare. Jeder, der im Besitz Ihrer wall.dat-Datei (und der Verschlüsselungs-Passphrase) ist, kann Transaktionen als Eigentümer dieser öffentlichen Adressen signieren und hat somit die Kontrolle über die Coins. Dies unterstreicht, warum Sie Ihre wallet.dat und die Passphrase für die Verschlüsselung immer schützen müssen.

Diese Methode zum Speichern von Werten ist einzigartig für Bitcoin (und nachfolgende Nachahmermünzen). Um es in zwei Sätzen zusammenzufassen:

Ihre Münzen werden in Adressen (öffentlichen Schlüsseln) gespeichert, Kopien werden veröffentlicht und in jeden Knoten des Bitcoin-Netzwerks aufgenommen. Die Sicherheit dieser Münzen ist jedoch gewährleistet, da nur die Person, die im Besitz des passenden privaten Schlüssels ist, eine gültige Transaktion erstellen kann, um sie zu verschieben.

Tolle Erklärung. Senden!
Was passiert, wenn Sie Ihre wallet.dat-Datei verlieren?
@DeathAndTaxes "Münzen" sind keine in der Blockchain gespeicherten Entitäten; Sie sind nur eine Abstraktion auf Transaktionsinformationen wie Salden. Es sind die TX-Informationen und -Salden, die in der Blockchain gespeichert und mit Adressen verknüpft sind.

Ihre wallet.dat enthält Ihre Schlüsselpaare, mit denen Sie Ihre Münzen verwenden können. Wenn Sie diese verlieren, verlieren Sie den Zugriff auf Ihr Geld.

Die eigentlichen Coins sind jedoch in der Blockchain verschlüsselt . Jedes Mal, wenn Sie eine Zahlung mit Ihren Coins tätigen, müssen Sie sich auf das letzte Mal beziehen, als Sie eine solche Zahlung getätigt haben, damit jeder überprüfen kann, ob Ihr Kontostand stimmt. Bei einer Zahlung geben Sie an, wie viele Coins Sie ausgeben und wie viele Coins Sie noch haben. Wenn Sie Ihre Transaktion manipulieren und einen falschen Wert angeben, werden Personen, die Ihre Transaktion überprüfen, dies wissen und ablehnen.

Es gibt keinen Ort, an dem die Münzen so aufbewahrt werden, wie Sie physische Währung aufbewahren würden. Es ist eher wie ein Kontostand – nur eine Zahl. Aber da alle Transaktionen transparent sind, würde jeder wissen, ob Sie versuchen zu betrügen.

Wo wird diese Blockchain-Datenbank gespeichert?
Eine Kopie davon wird auf jedem Computer gespeichert, auf dem die Bitcoin-Software läuft.
Blockchain wird verteilt von Computern gespeichert, auf denen die Bitocoin-Software läuft. Die meisten Clients speichern nicht die vollständige Blockchain (da sie in der Größenordnung von 1 GB liegt), aber sie speichern die Transaktionen, an denen sie interessiert sind (z. B. diejenigen, die Coins haben, die ihnen gehören, und die neuesten Blöcke). Einige Clients speichern jedoch die gesamte Blockchain. Jeder hat also einige Blöcke, manche Leute haben alle Blöcke, und es gibt mehrere Kopien desselben Blocks, die im Internet gespeichert sind.
ThePiachu, Sie sprechen von einem leichtgewichtigen Client, der meines Wissens noch nicht implementiert wurde. Derzeit speichern alle Clients die gesamte Blockchain.
Oh, ich schätze, ich muss meine Informationen irgendwo falsch verstanden haben. Das tut mir leid.
Meni, es wurde implementiert, aber nicht im Hauptclient. Wovon ThePiachu spricht, ist ein „egoistischer Client“, wie er hauptsächlich auf mobilen Geräten implementiert wird. BitcoinJ, die Java-Portierung von Bitcoin, die derzeit auf Mobilgeräten verwendet wird, speichert tatsächlich nur Blockheader und Blöcke, die interessante Transaktionen enthalten. Dies war Gegenstand mindestens einer Frage, obwohl ich gerne mehr sehen würde - es ist ein interessantes Thema.

Informationen darüber, wie viele Bitcoins zu jeder Adresse gehören, werden in einer Datenstruktur namens „Blockchain“ gespeichert. Eine Kopie dieser Daten existiert auf jedem Knoten im Bitcoin-Netzwerk (das heißt, jeder Computer, auf dem die Bitcoin-Client-Software installiert ist, hat Informationen über alle existierenden Bitcoins). Die Blockchain folgt bestimmten Regeln, die sicherstellen, dass selbst wenn es einem gelingt, die meisten der gespeicherten Kopien davon zu hacken, er sich keine weiteren Coins gutschreiben kann.

Die Informationen, die erforderlich sind, um Ihnen Zugriff auf die Bitcoins zu gewähren, die Ihren Adressen gehören, werden in der Datei wallet.dat auf Ihrem Computer gespeichert. Wenn Sie eine unverschlüsselte Version davon stehlen, können Sie Ihre Coins stehlen, daher sollte sie bewacht werden (eine Wallet-Verschlüsselungsfunktion wurde kürzlich zum Client hinzugefügt, und noch bessere Sicherheitsfunktionen sind in Arbeit).

Bitcoin-Token „gehören“ eigentlich nicht zu Adressen. Die Idee einer Adresse ist lediglich eine bequeme Abstraktion. Adressen haben nicht wirklich einen Saldo (noch versteht die Bitcoin-Blockchain überhaupt, dass Adressen existieren), aber die Bezugnahme auf einen Adresssaldo ist einfach eine schnelle Möglichkeit, sich auf die Gesamtsumme der Token zu beziehen, die in nicht ausgegebenen Ausgaben gespeichert sind, die der Besitzer einer bestimmten Person hat Adresse hat die Fähigkeit zu verbringen.

In Bitcoin (und ähnlichen UTXO-basierten Blockchains) werden Token in nicht ausgegebenen Ausgaben „gespeichert“. Der Sender einer Transaktion legt die Anforderungen fest, die erfüllt sein müssen, damit die Ausgaben der Transaktion ausgegeben werden. Token, die an eine Adresse "gesendet" werden, werden eigentlich nur in einer Ausgabe gespeichert, die den Spender auffordert, den Besitz seiner Adresse nachzuweisen, indem er den öffentlichen Schlüssel, von dem seine Adresse abgeleitet ist, zusammen mit einer gültigen Signatur der neuen Transaktion, die er erstellen möchte, bereitstellt die ursprüngliche Ausgabe ausgeben.

Die geringfügige Unterscheidung zwischen Adressen, die Token "speichern", und Adressen, die in Ausgaben gespeicherte Token ausgeben können, ist wichtig und ermöglicht die Erstellung fortschrittlicherer Transaktionstypen (z atomare Swaps und Zahlungskanäle funktionieren usw.)

Zusätzlich zu der eigentlichen Frage und den geposteten Antworten ist es wichtig zu beachten, dass das Eigentumskonzept bei Bitcoin etwas anders ist. Sie „besitzen“ die Münzen, die Sie haben, nicht wirklich, Sie haben lediglich das Recht, sie nach Belieben zu „kontrollieren“, da nur Sie den Schlüssel dazu „besitzen“.

Ein Bitcoin (BTC) ist kein physisches Objekt. Konzeptionell können wir sagen, dass BTC (in der digitalen Welt) irgendwie wie Wasser in der physischen Welt ist. So wie es eine begrenzte Menge Wasser auf der Erde gibt, gibt es eine begrenzte Menge BTC auf der Blockchain. So wie eine Wassermenge in ihr kleinstes Quant (ein H2O-Molekül) zerlegt werden kann, kann eine BTC-Menge in ihr kleinstes Quant, ein Satoshi (0,00000001 BTC), zerlegt werden. Eine BTC-Menge wird durch eine Zahl dargestellt, z. B. 3.728 BTC. Wenn also eine Zahl BTC darstellen kann, dann ist alles, was zum Speichern von BTC erforderlich ist, die Fähigkeit, eine Zahl aufzuzeichnen. In der digitalen Welt speichert man Informationen in Dateien. Daher werden Bitcoins buchstäblich in Dateien gespeichert. Was diese Dateien enthalten, sind (neben anderen Informationen) eine ganze Reihe von Adressen, an die fortlaufend eine Nummer angehängt ist,

Ein Block ist eine Reihe von Adressen mit der entsprechenden Nummer (die Menge an BTC), die von Bergleuten verifiziert wurde. Der Block ist "gesperrt", genehmigt und über alle Blockchain-Knoten auf der ganzen Welt verteilt. Dieser neu erstellte (genehmigte) Block wird dann am Ende der Blockchain in jedem Knoten angehängt. Sobald diese Aktion ausgeführt ist, ist sie irreversibel (gemäß dem Bitcoin-Algorithmus, der der Konsens zwischen allen Knoten ist).

Wo werden die Bitcoins des Benutzers tatsächlich gespeichert? Sie werden im genehmigten Blocks-Teil der einzigen Blockchain-Version gespeichert, von der eine Kopie in jedem Computer existiert, auf dem ein Knoten auf der ganzen Welt läuft.

Wenn Sie einige BTC für einen Kauf "ausgeben" möchten, benötigen Sie Ihre eindeutige Privatnummer, um die Möglichkeit zu eröffnen, den BTC-Betrag, der einer bestimmten Adresse zugeordnet ist, so zu ändern, dass dieser Betrag an eine andere Adresse überwiesen werden kann ( die Empfängeradresse). All diese Nummern werden im kommenden neuen Block aufgezeichnet, der Ihre neu erstellte Transaktion enthalten wird.

Diese ganze Strategie wird mit Wörtern beschrieben, die Parallelen in der physischen Welt finden, wie Brieftasche, Geld, Konto und mehr. Alle diese Konzepte werden digital in den Zahlen dargestellt, die in diesen Dateien namens Blöcke gespeichert sind.

Während das allgemeine Wesentliche richtig ist, ist diese Antwort zu stark vereinfacht. „BTC-Mengen“ werden in utxo gespeichert , sie sind ein bisschen mehr als nur eine Adresse und eine Zahl, vor allem gibt es eine kryptografische Sperre für Ausgaben. Außerdem sind Sperrungen nicht irreversibel. Die Kettenspitze ist immer probabilistisch. Ein Block könnte von einer konkurrierenden Kettenspitze überholt werden und am Ende nicht Teil der besten Kette sein. Sehen Sie sich die Reorganisation der Tag -Kette an, um mehr zu erfahren.
Guter Punkt Murch. Danke für den Kommentar. Meine Absicht war es, eine Ansicht zu bieten, die mir damals geholfen hätte, als ich zum ersten Mal mit Kryptowährungen in Berührung kam. Ich wünschte, jemand hätte es so erklären können. Hätte mir Stunden der Recherche erspart.