Ich lese Satoshis Artikel durch, und in Abschnitt 2. Transaktionen beginnt er mit den Worten:
Wir definieren eine elektronische Münze als eine Kette digitaler Signaturen. Jeder Besitzer überträgt die Münze an den nächsten, indem er einen Hash der vorherigen Transaktion und den öffentlichen Schlüssel des nächsten Besitzers digital signiert und an das Ende der Münze anfügt. Ein Zahlungsempfänger kann die Unterschriften verifizieren, um die Eigentumskette zu verifizieren.
Dann gibt es ein gutes Diagramm, das dies in der Zeitung zeigt
Wenn also BTC0 die vorherige Transaktion ist, ist die neue Transaktion:
Kp(Eigentümer1)
Hash := H(BTC0,Kp(Eigentümer1))
S( Hash ,Ks(Owner0))
wo
Kp(Owner1) ist der öffentliche Schlüssel des Empfängers (Owner1)
hash := H(BTC0,Kp(Owner1)) ist der Hash der vorherigen Transaktion zusammen mit dem Pub Key des Empfängers
und
Ich habe ein paar Fragen:
Hier habe ich angegeben, dass die „vorherige Transaktion“ BTC0 ist – ist dies die vorherige Transaktion für diese Münze oder die vorherige Transaktion in der Kette? Danielle Drainville schlägt in ihrem Artikel vor, dass „die vorherige Transaktion, bei der diese Münze verwendet wurde, zusammen mit dem öffentlichen Schlüssel des Empfängers gehasht wird“ ( An Analysis of the Bitcoin Electronic Cash System ) .
Wenn ja, muss zuerst irgendwie nach der vorherigen Transaktion gesucht werden?
Und wenn ich das richtig verstehe, gibt es keine 'Münzen' in Ihrer Brieftasche ... die Brieftasche speichert die Blockkette, dh das Transaktionsprotokoll, und Ihre Pub/Pri-Schlüssel. Wenn Ihnen Ihre Brieftasche die Anzahl der darin enthaltenen Bitcoins anzeigt, ist dies tatsächlich das Ergebnis einer Suche in der Blockkette?
Ich verstehe deine Frage nicht ganz, erst mal eine Reaktion auf deine Vermutung.
Es ist in der Tat so, dass Ihre Brieftasche keine tatsächlichen Münzen enthält. Beachten Sie jedoch die Unterscheidung zwischen den Begriffen Wallet und Client. Dies ist keine offizielle Unterscheidung, aber es ist nützlich, die beiden unterschiedlichen Prinzipien zu verstehen.
Ein Bitcoin-Client speichert die komplette Blockchain. Wenn Sie Informationen über eine Adresse oder eine Transaktion anfordern, kann es die Blockchain untersuchen und die angeforderten Informationen abrufen. Salden werden also tatsächlich durch eine Abfrage an die Blockchain abgerufen. Die meisten Kunden führen einen Index aller Transaktionen Ihrer Adressen, so dass diese Abfragen sehr effizient durchgeführt werden können.
Ein Wallet bezieht sich oft auf den Satz privater Schlüssel Ihrer eigenen Adressen. Für den Standard-Bitcoin-Client ist dies die Datei wallet.dat. Es enthält eine Liste der Adressen, die Sie besitzen, und die entsprechenden privaten Schlüssel, die Sie benötigen, um Transaktionen mit Ihren Adressen durchzuführen.
Allerdings wird der Begriff Wallet auch oft für einen Bitcoin-Client verwendet, z. B. auf der Bitcoin-Homepage . Ein Vorbehalt hier ist, dass einige dieser Wallets zwar nicht die komplette Blockchain speichern, aber andere Techniken haben, um die Blockchain auf andere Weise implizit abzufragen. Diese Art von Clients werden als Lightweight-Clients bezeichnet.
Nun, was eine Transaktion im Prinzip ist, ist nur die Übergabe der Kontrolle über einen bestimmten Wert in der Blockchain an eine andere Adresse.
Für jede Adresse gibt es null oder mehr Transaktionen, die die Adresse als Ausgabe haben. Wenn Sie sie nicht an jemand anderen gesendet haben, werden sie als nicht ausgegebene Bitcoins oder nicht ausgegebene Transaktionsausgaben bezeichnet. Die Summe davon ergibt den Saldo der Adresse.
Wenn Sie diese Münzen oder einen Teil davon senden möchten (beachten Sie, dass es keinen Begriff einer Münze gibt, sondern nur einen Wert der Währung, den Sie senden, der eine beliebige Dezimalzahl bis zur Satoshi-Präzision sein kann), führen Sie eine Transaktion durch die Sie einige der nicht ausgegebenen Ausgaben für Ihre Adresse (als Eingaben für Ihre Transaktion) beanspruchen und den Wert, den sie haben, auf andere Adressen verteilen (die die Ausgaben für Ihre Transaktion sind). So können die nicht ausgegebenen Ausgaben für eine Adresse als Eingaben für eine Transaktion verwendet werden.
Wenn Sie die Transaktion signieren und sie in einem Block verifiziert wird, werden die nicht ausgegebenen Ausgaben nun ausgegeben und neue nicht ausgegebene Ausgaben wurden den Adressen zugewiesen, die Sie in den Transaktionsausgaben für die Transaktion angegeben haben.
Stéphane Gimenez
Gen M.