Wie kann ich die wiederherstellen blockchain.info wallet ohne wallet-id oder die Eselsbrücke?

Mein Sohn machte uns beide jeweils unsere eigenen bitcoin-wallet und zeigte mir, wie mit den Armaturen. Bei mir deaktiviert und manchmal nicht in der Lage, aus dem Bett zu kriegen, weil der Schmerz; Er dachte, es würde mir etwas zu tun, während er in der Schule war, den ganzen Tag.

So spielte ich mit 3 oder 4 von den Armaturen der letzten Woche und mindestens 2 von Ihnen sagten, Sie ausgezahlt Sa/so, solange Sie mindestens 5500 Satoshi in Ihrem Konto, was ich auch Tat.

So, ich wollte sehen, wie viel in meiner Geldbörse (und wenn die Wasserhähne tatsächlich ausgezahlt, wie Sie sagen, Sie tun), das nach dem Wochenende. Ich ging zu Blockchain.info (wobei mein Sohn sagte, er ging zu machen/Holen Sie sich das Portemonnaie) und versucht einzuloggen. Es ist ein Ort, der fordert, "Id" und in das Feld es sagt Identifier oder Alias. Nun ich habe er lang, Alphanumerisch, "Nummer", die ich bin mir nicht sicher, ob das ist, eine Adresse oder Kennung, oder was, aber ich habe versucht, dass in der box, und es sagt "Unbekannter Wallet-id. Bitte prüfen Sie, ob Sie es richtig eingegeben wurde" ich weiß, dass ich Sie korrekt eingegeben bc habe ich kopiert und eingefügt, es das Letzte mal, um sicher zu gehen.

Ich weiß, dass auf der anderen Geldbeutel (den ich NICHT benutze) mein Sohn in Erinnerung zu schreiben, eine Art Gedächtnisstütze sein soll für die Wiederherstellung der Brieftasche, wenn Sie verlieren, Sie die lange Zeichenfolge aus Buchstaben und zahlen? (Denke ich), aber nicht für diese ein. Ich weiß, dass der E-Mail-Adresse und Passwort zu erstellen, die Brieftasche, aber Sie nicht Fragen, für diese.

Außerdem lese ich durch ein paar nicht so ähnliche Fragen und Antworten, wo Sie Sprach den Download der Brieftasche, die ich sicher wissen wir das NICHT tun würden. Ist das etwas, was Sie zu tun haben?

Ich kann den Typ der lange alphanumerische Zahl in die main-Seite und sehen, hat es 2 Einlagen in Höhe 0.00033813 BTC, damit ich weiß, es ist da. Aber, ich weiß nicht, was ich falsch mache.

Bitte jemand mir sagen, wie ich den Zugriff auf meine Brieftasche und was ich falsch mache.

DANKE.

+655
hamza belmellouki 24.05.2019, 04:58:11
24 Antworten

Der rpc-Aufruf ist getblocktemplate. Dieses Protokoll kann verwendet werden, indem pools zu helfen, der Bergbau mehr dezentralisiert, indem die Bergleute in der Steuerung Ihrer eigenen block Erstellung. Der Nachteil ist, dass dies nicht verhindern, dass die pools von blacklisting, wie pools können noch begrenzen Bergarbeiter Kontrolle über die Auslassung von gültigen Transaktionen.

+982
Eric Marsh 03 февр. '09 в 4:24

Kann jemand nehmen Sie die Transaktion tx0 habe ich unterschrieben und veröffentlichen Sie es, damit zu verbringen, die neuen Münzen mit der alten Transaktion?

Nein.

Erstens, die Transaktion Eingänge bereits bekannt sind, verwendet worden. Jeder Knoten prüft der block wird wissen, dass die Transaktion erneut ausführen hat ungültige Eingaben.

Zweitens erwarte ich (aber noch nicht geprüft) die Eingänge zu der Signatur gehören beide Adressen. Dies verhindert, dass die Signatur missbraucht, in der Weise, die Sie vorschlagen. (Siehe Murch ist eine Klarstellung im Kommentar unten)

Es kann helfen, (wenn nicht für Sie, einige andere Leser) daran zu erinnern, dass bitcoins existieren nicht außerhalb oder innerhalb der blockchain. Das einzige was existiert sind die Transaktion ein-und Ausgänge. Sie nicht verwenden können, eine signierte Transaktion mit den Eingängen A,B und C zu verwenden-Eingänge D und E. Die Signatur verhindert, dass Sie die änderung der signierten Inhalte, ohne die Signatur ungültig zu machen.

wie kommt es, dass-Adresse Wiederverwendung ist nicht direkt verboten? wenn nicht, können Sie die Details warum?

Adressen wiederverwendet werden können. Das offensichtlichste problem ist der Datenschutz. Wenn Sie geben jemand eine Adresse, so können Sie kaufen $0,01 Zelt-Heringe aus, Sie können dann sehen, auf die blockchain, die Sie auch erhielt $300,000,000 vor kurzem auf diese Adresse, und gehen Sie kaufen einen großen hammer und Sie besuchen kommen um 3 Uhr morgens

+956
Emily Tucker 26.06.2012, 03:47:56

Insbesondere war ich pool-mining scrypt-Algorithmus, der mit meiner GPU (war nicht bitcoin, sondern eine andere Münze benannt gamecredits, bei gmc.acidpool.com).

Ich würde wie zu kaufen Billig mining hawdware (das wäre nutzlos mit bitcoin aber vielleicht gut mit dem relativ "neuen" Münzen). Sollte es mich kümmern, ob ein hardware-unterstützt "scrypt" in diesem Fall? Oder macht die hardware-Versorgung über eine eher "primitive" Ebene, ohne sich um den Algorithmus?

+941
VRU 04.10.2013, 14:22:14

Ein binärer Baum aufgebaut ist, an einem bestimmten Punkt in der Zeit, so dass Sie die Konto-ID und account-balance eines jeden Nutzers aufgezeichnet wird ein Blatt-Knoten, und jeder übergeordneten Knoten enthält die Summe des Kontos Werte seiner Kinder, dann wird der root-Knoten ist die Summe Kontostand in dieser Zeit.

Der exchange dann die hashes der Daten in jeder Blatt-Knoten, wobei für jeden übergeordneten Knoten berechnet den Hashwert der Verkettung von Hash für seine Kinder (wie eine merkel-Baum), und veröffentlicht schließlich die merkel root-hash.

Wenn jeder Benutzer will, um die Herausforderung, die Authentizität der hash, den Tausch, dann zeigt dem Benutzer alle hashes und der node-Gleichgewicht (nicht aber die Konto-IDs), die die Knoten auf dem Pfad des binären Baumes zwischen der Wurzel und dem Blatt-Knoten, verbunden mit dem Konto des Benutzers, und die hashes der unmittelbaren Geschwister-Knoten, so kann der Benutzer überprüfen, dass das merkle-hash ist in der Tat korrekt berechnet, mit seinen wahren Kontostand.

+932
Naxim 28.11.2013, 15:35:21

Ich versuche zu verstehen, die Bitcoin-überprüfung.
Was passiert, wenn ein neuer block wurde nicht gefunden und es gibt genug Transaktionen, die darauf warten, zu füllen, die aktuellen block-size-limit???

Wird ein neuer block werden automatisch erstellt, oder werden wir alle warten auf den neuen block?

+930
TheIrishBaffoon 03.01.2017, 17:41:21

Nun, zunächst, wenn Sie uns eine Freigabe, es wird validiert durch die BTC/LTC client/daemon. Wenn es ist die richtige Lösung für einen block, dann poof, der eine eingehende Transaktion von 25BTC / 50LTC erscheint in den pools Transaktion Geschichte. Dies wird als "unreif" Transaktion.

Die meisten der Schwimmbäder ausführen PPS / PPLNS als Belohnung system. Bedeutung der mehr Aktien, die Sie Einreichen, desto mehr Auszahlung erhalten Sie im Verhältnis zu der Gesamtzahl der Aktien, die während einer Runde. Die meisten pool-software verwenden Sie eine Art von Datenbank zum einfügen der gültigen Aktien zu verfolgen, die Arbeit für jeden Arbeitnehmer/miner.

Soweit ich weiß, bekommst du keine "Besondere" Belohnung für die Suche nach einen block... Wenn Sie das tun, dass einige pool-einseitige Einstellung. Einige pools die Nutzung der PC-Spiele als Belohnung für das finden von Blöcken, etc etc. Aber Sie nicht bekommen, eine Art von erhöhten LTC/BTC.

Wenn du meinst, dass Sie die Zurückhaltung der gültigen teilen, und dann legt Sie lokal, so dass nur Sie bekommen die volle Prämien? Das wird nicht funktionieren, da müssen Sie Ihre lokalen bitcoin - /litecoin-daemon zu laufen, und hol arbeiten aus. Wenn Sie uns einen teilen, Sie haben keine Arbeit, zum anderen litecoin/bitcoin-daemon, es wird nicht akzeptiert, da der server weiß, dass Sie noch nicht ausgestellt, die diese Arbeit für Sie.

Hoffe, das beantwortet einige Fragen.

+924
user3754153 01.07.2010, 00:50:57

Mit dem standard-client Bitcoin-Qt, v0.8.1: (win10x64)

Ich möchte die blockchain-Daten aus seiner Standard-Speicherort zu einem anderen Ort (vielleicht sogar eine externe Festplatte oder NAS - Laufwerk). Was sollte ich tun, um diese arbeiten beim verschieben von Daten?

+894
Micha Mazaheri 03.10.2016, 10:17:56

Elektrum zu haben scheint, zwei Münze Auswahl von Richtlinien , die die Benutzer auswählen aus.

CoinChooserOldestFirst

  • wählt die ältesten zuerst
  • löscht alle nicht benötigten Eingänge, beginnend von der kleinsten
  • standard-Politik

CoinChooserPrivacy

  • wählt nach dem Zufallsprinzip UTXO bis ausreichend
  • löscht alle nicht benötigten Eingänge, beginnend von der kleinsten
  • versuche, eine änderung innerhalb von 0.75 und 1.33 der gesendeten Betrag
  • die alternative "private" Politik

Ich bin mir nicht bewusst, eine Funktion zu Steuern, die Gelder werden abgeholt, aber ich habe nicht verwendet, Elektron selbst, noch.

+809
takintoolong 24.01.2019, 01:44:50

Bitcoin Core verwenden, die nicht mit einem seed. Ihr Passwort ist einfach das Verschlüsselungs-Passwort für die Brieftasche.dat-Datei. Keine privaten Schlüssel abgeleitet von dem Kennwort. In, um sich zu erholen, Ihre Bitcoin, müssen Sie die Brieftasche.dat-Datei.

+802
Yanicze 05.11.2017, 11:36:17

Sie müssen eine Kopie Ihrer Brieftasche.dat von Ihrem alten computer auf Ihren neuen computer, und ersetzen Sie die Datei. Sonst könnten Sie werfen Sie einen Blick auf Elektrum, ist es ein leichtes wallet (so dass Sie nicht brauchen, um synchronisieren Sie die gesamte blockchain) und importieren Sie Ihre Brieftasche.dat auch dort. In Ihrer Brieftasche.dat-alle Adressen und private Schlüssel gespeichert werden, so dass Sie nur brauchen, um ein backup dieser Datei.

+734
BurlyPotatoMan 20.03.2010, 23:38:10

Ich möchte schreiben Sie einen Basis-GPU miner von Grund auf neu zu Lernzwecken. Durch "from scratch" meine ich nicht, dass ich bin nicht bereit zu verwenden, Bibliotheken, sondern ich will, dass es ähnlich wie echte GPU-mining-software, und ich will lernen, in-Tiefe aus.

Genauer gesagt:

  1. Ich möchte schreiben, eine funktionale GPU-mining-software.

  2. Sollte es mir mit einem pool (ich dachte, ein pool, der verwendet stratum aber auch andere Protokolle in Ordnung sind).

  3. Es sollten ähnliche Leistungsfähigkeit der GPU-mining-software, die derzeit in Gebrauch ist. (Dies ist nicht erforderlich, aber ich möchte lernen, wie man es im "real life")

Ich weiß, python und java, und ich Lerne C, wenn erforderlich. Ich weiß, wie Bitcoin-mining im Allgemeinen funktioniert, aber nicht wissen, die details der GPU-mining-algorithmen Kommunikation Protokolle etc.

Ich Frage mich, wo ich beginnen soll. Wo finde ich die libraries und Allgemeinen Informationen über diesen Prozess? Ist das überhaupt möglich oder ist es zu schwierig für eine person? Ich weiß, ich kann google benutzen, aber ich weiß nicht, wo zu beginnen.

+653
Binaya Shrestha 01.01.2012, 17:53:05

Ich bin auf der Suche nach einer richtigen Anleitung zum erstellen einer Kryptogeld. Ich weiß, das wird wahrscheinlich nicht leicht werden, aber ich bin wirklich entschlossen, und weiß, wie man code in einigen Sprachen. (C++ Anfänger).

Ich habe gehört, dass ein link sagen für die Anwendung eines neuen genesis-block in den code, wissen gar nicht, wo beginnen mit diesem Zeug.

+625
redFur 27.03.2018, 02:56:56

Die funktionale tests testen die RPCs. Die unit-tests testen der C++ - code direkt durch den Aufruf der Funktionen.

Der funktionale test-frameworks verwendet eine version von python-bitcoinrpc , die gefunden werden können hier. Diese Bibliothek ermöglicht das test-framework zum aufrufen der RPC-Befehle, als wären Sie python-Funktionen; authproxy nimmt die Umwandlung in eine HTTP-POST-Anfragen für den RPC-server. Also wenn du Zeilen siehst, wie sich selbst.Knoten[0].getblockchaininfo(), es ist eigentlich Aufruf der getblockchaininfo Befehl auf node0. Sie werden sehen, viele Zeilen wie diese während des gesamten Funktionstests.

+576
ZNikita 12.10.2018, 05:07:32

Welches symbol verwende ich, um sagen Kunden, die unser Geschäft akzeptiert Bitcoins? Zum Beispiel viele Unternehmen nutzen das visa-symbol, um zu zeigen, dass Sie akzeptieren visa, Aber ich möchte wissen was ist Bitcoin entspricht? Sollte ich die "Münze" - symbol?

+561
JK Ly 13.08.2011, 23:42:48

Ich verstehe, dass TxIDs sind einfach die doppelte hash von tx-Daten. Aber wer erstellt Sie? Ich gehe davon aus, dass alle Knoten erstellen, die TXIDs der Transaktionen auf Ihre eigene und die TxIDs werden nicht übertragen, zusammen mit dem tx-Daten. Ich Frage dies, weil ich möchte das erstellen von benutzerdefinierten TxIDs (für einige Anwendungen) für die Txs und nicht möchten, dass die IDs doppelt hash der tx-Daten. Ist es möglich, dies zu tun, oder würde der Knoten dann ablehnen, meine tx.

+390
Levan 27.11.2014, 17:09:14

Also habe ich heruntergeladen und entpackt bitcoin core. Ich habe jetzt bitcoin-0.17.1 Sitze in meinem home-Verzeichnis . Was kommt als Nächstes? Wie kann ich installieren und starten diese? (Offensichtlich bin ich ein newb, helfen sehr geschätzt.)

+371
kia4567 27.10.2014, 04:17:53

Gavin Andresen, einer der core-Entwickler, hat diskutiert die Erhöhung der Blockgröße auf 16,7 MB (und Verdoppelung, die alle zwei Jahre).

Die maximale Anzahl von Signatur-Operationen pro block wird derzeit auf 20000 gesetzt:

[...] Über die scriptSig wird ein beliebiger byte-array, gibt es eine Einschränkung: die checksig Vorgänge in der it sind gezählt in Richtung block sigop-Grenzwert (20000), so dass Sie wahrscheinlich nicht wollen, versehentlich auslösen das. Machen Sie eine Liste von push-Operationen (einschließlich der extranonce) verhindert, dass.

Ein back-of-the-envelope Berechnung sagt mir, dass es um 100K Signatur von Operationen in einem 16.7 MB block. Wird die maximale Anzahl von Signatur-Operationen pro block müssen auch ändern?

+314
anrew94 08.05.2010, 15:47:02

Es gibt eine Menge Verwirrung hier, meist bits und Stücke, die das ganze System, das Hierarchische Deterministische Ableitung, und schließlich zwei Fragen, die scheinen zu zeigen, fehlt einem gewissen Punkt über es. Die Antwort auf die erste Frage ist Keine. Die zweite Frage ist interessanter :

Beginnen wir mit längeren Tasten, speziell BIP32 Tasten. Wie private Schlüssel und öffentliche Schlüssel, erweiterte Tasten kann entweder "privat" oder "öffentlich". Ich legte beide in Anführungszeichen, da beide Arten von erweiterten Schlüsseln enthalten private Informationen. Zumindest genug, um die track-Taste verwenden. Dieser Mechanismus wird von hardware-wallets und "watchonly" software-wallets auf dem PC.

Eine erweiterte Taste ist nur ein base58 kodiert Serialisierung von ein paar Stücke von Daten :

[ Magie ][ Tiefe ][ parent-fingerprint ][ key index ][ chain code ][ key ]

Wo der Schlüssel kann entweder einen öffentlichen Schlüssel oder einem privaten Schlüssel. Private Schlüssel werden vorangestellt, mit einem einzigen 0x00 byte, so dass die Länge dieses blob bleibt die gleiche. Eine verlängerte Schlüssel wird in der Regel abgeleitet von "durchqueren" einige Weg, das heißt, Sie beginnen würde, Ihre Ableitung auf einige übergeordnete extended key, und nacheinander ableiten Kind-Schlüssel, die mit spezifischen Indizes, bis Sie schließlich die Ableitung der definitiven extended key in den Weg. Ich werde aufhören, "erweitert", in dieser Antwort. Von nun an werde ich beziehen sich auf einen längeren privaten Schlüssel als xprv und zu einer erweiterten öffentlichen Schlüssel als xpubund nur "Schlüssel" manchmal. Die nicht-verlängerten sind nur "private-key" - oder "public-key".

Ein xprv oder xpub ist Magie sind 4 Byte, um anzugeben, das Netzwerk es gehört: testnet oder mainnet (t oder x bezeichnet), und den Typ des Schlüssels (pub und DBVjeweils). Die Tiefe ist ein byte, das indecates, wie tief ein xpriv oder xpout ist in einen Pfad, ab 00 als die Tiefe der master - Schlüssel, und um eins erhöht, da die Ableitung von mehr-Kind-Schlüssel erfolgt auf dem Pfad. Beachten Sie, dass bis jetzt, der einzige Unterschied zwischen xprv und xpub Schlüssel, den ich erwähnte, ist die DBV oder pub Teil in der Magie. Es sollte auch klar sein, dass ein xprv und xpub werden kann, in den gleichen Weg, und in der gleichen Tiefe. Dies bedeutet, dass für diese paar xprv und xpub, die [ key ] - Teil von der wird ein 32-byte-privaten Schlüssel (vorangestellt mit einem 00 - byte) in der xprv, und ein 33-byte public key ist der öffentliche Schlüssel, der von dem privaten Schlüssel in der xprv.

Ein Elternteil der Fingerabdruck-sind die ersten 4 bytes der hash160 der public-key des übergeordneten Elements. Dies bedeutet, dass selbst wenn ein Elternteil xprv wurde verwendet, um daraus ein Kind xprv, es hätte den gleichen übergeordneten Fingerabdruck als wenn ein Elternteil xpub wurde verwendet, um daraus ein Kind xpub. Eltern-Kind-Verhältnis zwischen den Tasten bedeutet, dass Sie benachbart sind, in einen Pfad.

Ein Pfad ist ein n-Tupel von Indizes, in der Regel in der Basis 10, getrennt durch /. Die Auswahl eines index kann zwischen null und und 4294967295 (oder 2^32-1), wo alles in [0,2147483647] folgt non-hardnened Ableitung und Indizes in [2147483648,4294967295] Folgen gehärtetAbleitung. Sie können sehen, dass jeder die Hälfte der Bereich der Indizes verwendet wird, für eine andere Methode. Wir können sagen, dass es zwei Bereiche. [0,2147483647] für nicht-gehärtete Schlüssel, und [0h,2147483647h] für gehärtete Schlüssel. Das h zeigt an, dass der index (nennen wir es i) sollten behandelt werden wie ich + 2147483648. Sie sind wahrscheinlich zu sehen die h - notation, wie Sie ein caret-Zeichen ' statt, also 1' == 1h, aber ich glaube nicht, es ist sehr hübsch, so dass ich ' ll stick mit h für jetzt.

Ein Beispiel wie ein Weg aussieht :

m/0h/1/2h/2/1000000000

Das m bedeutet, dass der Schlüssel zu diesem index ist ein Meister xprv oder master xpub. Ein kleines m bedeutet, dass diese extended key ist ein master-xprvund big - M einen master xpub. Nach den vorangegangenen Definitionen lässt sich sagen, dass m ist die Muttergesellschaft des Schlüssels auf 0hund die Schlüssel bei 2h ist das Kind der Schlüssel, bevor es bei index 1. Um dies zu erleichtern, zu Folgen, werden wir annote die verschiedenen Schlüssel in den Pfad mit Buchstaben {a..e} wenn wir meinen, dass diese xprvs und {A..B} wenn xpubs.

m / 0h / 1 / 2h / 2 / 1000000000
m a b c d e

Ein Pfad ist in der Regel gegeben mit Indizes in base10, aber der Schlüssel selbst verschlüsselt ist in hex (base16), so dass a [ key index ] ist immer 4 bytes mit Nullen vorangestellt, wenn nötig. Die Tiefe und index einer master-Schlüssel sind beide immer null, also 00 und 00000000, und Sie können zu einem maximum von FF und FFFFFFFFbeziehungsweise. Also m und a sind Elternteil und Kind, und so sind d und e. Die Tiefe von b ist 02 und dessen index 00000001, und die Tiefe von c ist 03 , während der index ist 80000002 (80000000 + 2). Das Letzte Kind-Schlüssel abgeleitet werden, ist e. Wir können sagen, dass wir folgten einem Pfad, beginnend bei m, daraus haben wir abgeleitet die Taste ein auf der index 0h, dann, von einem wir aus dem Schlüssel b auf index 1.. und so weiter. Aber was bedeutet es, um daraus einen neuen Schlüssel?

Die verbleibenden zwei Elemente in der erweiterten key-format, der Eltern [ chain code ] und [ key ] verwendet werden, zusammen mit dem, was sein würde, das Kind-Schlüssel - index abzuleiten es. Das bedeutet, dass die Ableitung von c aus b, würden wir füttern eine Funktion mit b's Kette code und - Schlüssel, und c's index. Ein konkretes Beispiel für unsere b - und c würde sein :

b :

0488ADE4
02
5C1BD648
00000001
2A7857631386BA23DACAC34180DD1983734E444FDBF774041578E9B6ADB37C19
003C6CB8D0F6A264C91EA8B5030FADAA8E538B020F0A387421A12DE9319DC93368

c :

0488ADE4
03
BEF5A2F9
80000002
04466B9CC8E161E966409CA52986C584F07E9DC81F735DB683C3FF6EC7B1503F
00CBCE0D719ECF7431D88E6A89FA1483E02E35092AF60C042B1DF2FF59FA424DCA

Die Felder sind bestellt, die in der Struktur weiter oben. Sowohl auf den magic sagt xprv, die Tiefe wird um eins erhöht zwischen Eltern und Kind, den Fingerabdruck bei c ist die hash160 der öffentlichen Schlüssel, die Sie erhalten würden, die von den privaten key an b, und b's index ist in der ersten, nicht ausgehärtete Hälfte der Palette, während c's die zweite, hardned Hälfte. Schließlich die chain-code - und Schlüssels der einzelnen xprvs kodiert sind.

Die Ermittlung der chain-code und - Schlüssel ( für c , aus b wird mit einem Prozess namens CKDpriv, was bedeutet, dass die Ableitung eines Kindes xprv von einem übergeordneten xprv. In diesem Prozess wir die chain-code - und Schlüssel von b, und der index von c. Der wichtige Punkt zu machen: Wir werden nur codiert c nach Zusammenhang mit seinen chain code und Schlüssel aus, welche index.

Alle xprv kann verwendet werden, mit CKDpriv zum ableiten einer Kind xprv an jedem index. Die spezifische Art und Weise CKDpriv wird auf die Eingabe auf das Kind hängt der index in der gehärtete Bereich oder der nicht-hardned-Bereich. Grundsätzlich CKDpriv - Funktion ausgeführt wird, einen HMAC-SHA512 - auf der Eltern - chain-code und - Schlüssel, und das Kind, das index. Dieser hmac-Funktion nimmt zwei Werte ein - Taste* (nicht zu verwechseln mit unserem vorkommen von Schlüssel -, wird verwiesen auf als hkey) und text. Die Eltern chain code verwendet wird, als die hkey, während der text ist aus den übergeordneten Schlüssel der private Schlüssel bilden, wenn die Kindes-index ist im gehärteten Bereich, [0h,2147483647h], und der öffentliche Schlüssel bilden, wenn sich der index ist im nicht gehärteten Bereich. Es ist dann verkettet mit dem Kind - index.

c's-index ist im gehärteten Bereich, so CKDpriv's hmac-sha512 läuft mit den Eingängen:

HMAC-SHA512( 2A7857631386BA23DACAC34180DD1983734E444FDBF774041578E9B6ADB37C19,
 003C6CB8D0F6A264C91EA8B5030FADAA8E538B020F0A387421A12DE9319DC9336880000002 )

Das gibt einen 64-byte-hash :

8F6154A0A82D0F68B9E5B586EA66D951DAAA071BEBD390097CC516285C791A6204466B9CC8E161E966409CA52986C584F07E9DC81F735DB683C3FF6EC7B1503F

Die 32 bytes auf der rechten Hälfte dieser hash, 04466B9C...C7B1503F werden das Kind (c hier) Kette-code, und die 32 bytes auf der linken Seite werden verwendet, um "zwicken", das heißt "Zusatz mod n", um die Eltern-Taste, in diesem Beispiel :

8F6154A0A82D0F68B9E5B586EA66D951DAAA071BEBD390097CC516285C791A62
+
3C6CB8D0F6A264C91EA8B5030FADAA8E538B020F0A387421A12DE9319DC93368
=
 CBCE0D719ECF7431D88E6A89FA1483E02E35092AF60C042B1DF2FF59FA424DCA mod n
  • Ich wusste nicht, schreiben die 00 vorangestellt bytes in die Tasten, denn dies ist hier nur mit zahlen, aber diese null-bytes sind sehr wichtig für die hash-Funktion, so dass ich mich absichtlich enthalten Sie es.

Nun, wir haben die c's Kette code und key (privaten Schlüssel form), wir wollen Kodieren c , eine nutzbar xprv. Um den Fingerabdruck von b, wir benötigen den öffentlichen Schlüssel der Schlüssel von b. Da es in privaten Schlüssel bilden, wir haben zu tun, die Multiplikation:

CBCE0D719ECF7431D88E6A89FA1483E02E35092AF60C042B1DF2FF59FA424DCA * G
= 03501E454BF00751F24B1B489AA925215D66AF2234E3891C3B21A52BEDB3CD711C

Nehmen Sie die hash160 von diesen öffentlichen Schlüssel, und der zurückgegebene hash ist BEF5A2F9A56A94AAB12459F72AD9CF8CF19C7BBE. Die ersten vier bytes sind die b's fingerprint : BEF5A2F9. Die Kodierung der rest von c ist einfach. Beginnen Sie mit der Magie xprv da wir abgeleitet, ein Kind xprv, erhöhen Sie die Tiefe von b durch, dann den Fingerabdruck. Nächste c's index kodiert wird. Wir abgeleitete, index - 2h, so würde dies 80000002, und dann die neue Kette, code und Schlüssel haben wir von CKDpriv.

Dies ist im Grunde, was verhärtet Ableitung ist. Der übergeordnete private Schlüssel und Kette-code werden verwendet, um daraus die Kind-Schlüssel bei einigen gehärtet index. Was ist, wenn wir wollen, dass die Ableitung d? Es ist bei index 2, also einer nicht-gehärteten index. Dies ist der zweite Fall von CKDpriv.

Der Unterschied liegt in dem, was verwendet wird für die text - parameter der HMAC-SHA512 - Funktion. Statt mit dem übergeordneten Schlüssel in privaten Schlüssel bilden, verwenden wir den öffentlichen Schlüssel bilden, so ist die Ableitung d mit dem index 2 aus cfinden wir zunächst den öffentlichen Schlüssel von c :

CBCE0D719ECF7431D88E6A89FA1483E02E35092AF60C042B1DF2FF59FA424DCA * G
= 0357BFE1E341D01C69FE5654309956CBEA516822FBA8A601743A012A7896EE8DC2

Dann Folgen die gleichen Schritte wie oben:

HMAC-SHA512( 04466B9CC8E161E966409CA52986C584F07E9DC81F735DB683C3FF6EC7B1503F,
 0357BFE1E341D01C69FE5654309956CBEA516822FBA8A601743A012A7896EE8DC200000002 )

 tweak chain code
437984D45C4A2F5840C65B3DC6D7274E2859AD25D092DB032C49AA4D006A426B|CFB71883F01676F587D023CC53A35BC7F88F724B1F8C2892AC1275AC822A3EDD

* beachten Sie, dass die 00 wird nicht vorangestellt, um den text, denn dies ist der öffentliche Schlüssel.

437984D45C4A2F5840C65B3DC6D7274E2859AD25D092DB032C49AA4D006A426B
+
CBCE0D719ECF7431D88E6A89FA1483E02E35092AF60C042B1DF2FF59FA424DCA
=
 0F479245FB19A38A1954C5C7C0EBAB2F9BDFD96A17563EF28A6A4B1A2A764EF4 mod n

hash160( 0357BFE1E341D01C69FE5654309956CBEA516822FBA8A601743A012A7896EE8DC2 )

finger
drucken
EE7AB90C|DE56A8C0E2BB086AC49748B8DB9DCE72

Der rest ist einfach, und wir können codieren :

d :

0488ADE4
04
EE7AB90C
00000002
CFB71883F01676F587D023CC53A35BC7F88F724B1F8C2892AC1275AC822A3EDD
000F479245FB19A38A1954C5C7C0EBAB2F9BDFD96A17563EF28A6A4B1A2A764EF4

Der Unterschied zwischen diesen beiden Methoden ableiten Kind xprvs ist subtil, aber wichtig. Es ermöglicht CKDpub, die eine Funktion abzuleiten Kind xpubs von einem Elternteil xpub. CKDpub funktioniert fast das gleiche wie CKDpriv's nicht-gehärteten Ableitung, aber es hat die Ableitung mit einem Punkt neben der, so anstatt zu addieren, Ganzzahlen, um untergeordnete private Schlüssel, wir sind zu addieren, Punkte zu machen untergeordneten öffentlichen Schlüssel. Beachten Sie, wie in der nicht-gehärteten Ableitung verwendeten wir den übergeordneten öffentlichen Stelle für die HMAC-SHA512, haben wir die zwicken, wie der Wert zu dem übergeordneten privaten Schlüssel abzuleiten, der untergeordnete private Schlüssel, insbesondere wir aus d's private key.

Um zu verstehen, CKDpub, hilft es, zunächst wissen über ein weiteres BIP32 Funktion aufgerufen, Neutrum. Es ist Zweck ist, zu konvertieren, ein xprv zu einem xpub. Wir "laufen" Neuter auf unserer xprv d. Wir nennen die resultierende xpub D. Neutrum zwei Dinge tut, um eine xprv: 1. Ersetzen Sie die Magie von 0488ADE4 zu 0488B21E (ersetzt xprv mit xpub) 2. Ersetzt der private Schlüssel in der Schlüssel - Feldes` mit der öffentlichen Stelle mit dem gleichen privaten Schlüssel

für unsere xprv d, den öffentlichen Punkt ist:

0F479245FB19A38A1954C5C7C0EBAB2F9BDFD96A17563EF28A6A4B1A2A764EF4 * G
= 02E8445082A72F29B75CA48748A914DF60622A609CACFCE8ED0E35804560741D29

(dies ist nur der normale Prozess der private key -> öffentlichen Schlüssel)

so ist das Ergebnis:

D:

0488B21E
04
EE7AB90C
00000002
CFB71883F01676F587D023CC53A35BC7F88F724B1F8C2892AC1275AC822A3EDD
02E8445082A72F29B75CA48748A914DF60622A609CACFCE8ED0E35804560741D29

Jetzt d ist "kastriert", D hat den öffentlichen Schlüssel kodiert, aber sehen, wie die chain-code -, depth -, Fingerabdruck - und index beibehalten. Die xpub D an der gleichen Stelle in der Pfad als xprv d. Wir werden mit der chain-code - und Schlüssel (public key) für CKDpub, wie CKDpriv mit nicht-gehärteten Ableitung, sondern als für CKDpriv, wir abgeleitet, der untergeordnete private Schlüssel mittels:

tweak + (übergeordneten privaten Schlüssel) = untergeordnete private Schlüssel

für CKDpub , die wir verwenden werden:

zwicken*G + (übergeordneten öffentlichen Schlüssel) = untergeordneten öffentlichen Schlüssel

Dies funktioniert, weil übergeordnete öffentliche Schlüssel ist wirklich nur (übergeordnete private Schlüssel)*G, und die untergeordneten öffentlichen Schlüssel ist nur (untergeordnete private Schlüssel)*G. Das heißt, wenn wir die CKDpriv zwicken Gleichung und multiplizieren alle Elemente von G, erhalten wir genau die CKDpub tweak-Gleichung. CKDpub kann nur ableiten Kind xpub Schlüssel in der nicht-gehärteten index-Bereich. Dies ist, weil die Informationen in der übergeordneten xpub, insbesondere den öffentlichen Schlüssel in das [ key ], gilt nur für die nicht-gehärteten Bereich. Wo in CKDpriv konnten wir den privaten Schlüssel nutzen, um zu wissen, die öffentlichen Schlüssel, können wir nicht den anderen Weg gehen. der HMAC-SHA512 - Runde mit öffentlichem Schlüssel in CKDpriv gilt für die nicht-gehärtete index-Bereich.

Jetzt haben wir kastriert, d zu erstellen, die xpub D, weiter im Pfad ist e's mit index 1000000000 (oder 3B9ACA00), die in der nicht-gehärteten Bereich, so sollten wir ableiten können, E das Kind xpub aus D mit CKDpub. Wir beginnen mit hmac-sha512 des übergeordneten chain code als hkey - und übergeordnete Schlüssel (public key) verknüpft, mit dem Kind E's index :

HMAC-SHA512( CFB71883F01676F587D023CC53A35BC7F88F724B1F8C2892AC1275AC822A3EDD,
 02E8445082A72F29B75CA48748A914DF60622A609CACFCE8ED0E35804560741D293B9ACA00 )

 tweak chain code
37D3E49D8ECB854CC518BBA096F46795A9707860BF0FC95E5B19278C997098D4|C783E67B921D2BEB8F6B389CC646D7263B4145701DADD2161548A8B078E65E9E

Multiplizieren Sie die zwicken, die durch den generator G , so können wir die Anpassung des übergeordneten öffentlichen Schlüssel mit einem Punkt hinaus :

37D3E49D8ECB854CC518BBA096F46795A9707860BF0FC95E5B19278C997098D4 * G
= 0327E992F68217BC3E88CFFC3FEAB475880145413CBE008DB22B496DF4E1C3F864 <- zwicken*G

Fügen Sie den tweak auf den übergeordneten Punkt. Das Ergebnis ist das Kind, das public-key :

0327E992F68217BC3E88CFFC3FEAB475880145413CBE008DB22B496DF4E1C3F864
+
02E8445082A72F29B75CA48748A914DF60622A609CACFCE8ED0E35804560741D29
=
022A471424DA5E657499D1FF51CB43C47481A03B1E77F951FE64CEC9F5A48F7011

Holen Sie sich die Klammer ' TS fingerprint :

hash160(02E8445082A72F29B75CA48748A914DF60622A609CACFCE8ED0E35804560741D29) = D880D7D8....

Endlich können wir codieren, E :

0488B21E
05
D880D7D8
3B9ACA00
C783E67B921D2BEB8F6B389CC646D7263B4145701DADD2161548A8B078E65E9E
022A471424DA5E657499D1FF51CB43C47481A03B1E77F951FE64CEC9F5A48F7011

Kastration d , um D dann die Ableitung von Eist, können wir sagen, dass unser Weg jetzt aussieht :

m / 0h / 1 / 2h / 2 / 1000000000
m / a / b / c / D / E

Oder wir verwenden die N() - notation (für Neutrum) zu zeigen, wo CKDpub verwendet wurde, aber ich denke, es ist weniger hübsch. m / a / b / c / N(d / e)

Also, um Rückblick auf Ihre Frage, es gibt 3 verschiedene Methoden Ableitung, zwei mit privaten Schlüsseln und eine mit den öffentlichen Schlüsseln :

  1. CKDpriv zum ableiten einer Kind xprv auf eine gehärtete index
  2. CKDpriv zum ableiten einer Kind xprv bei einem nicht-hardend-index
  3. CKDpub zum ableiten einer Kind xpub bei einer nicht-gehärteten index
+312
Rachel Williams 11.11.2014, 11:25:23

Dies ist mein Erster Beitrag auf block-chain-bezogene Programmierung also bitte entschuldigt meine Unwissenheit. Ich finde die Terminologie in der BIP32 und BIP39 specs schwer zu verstehen, so versuche ich bestätigen mein Verständnis. Ich hoffe mir kann jemand klare Dinge für mich. Bitte korrigieren Sie mich, wenn mein Verständnis falsch ist. Hier geht.

Ich kaufte mir ein Trezor und generiert meinen Samen mit dem Trezor. Ich verstehe, dass dies ist eine Implementierung von BIP39. Mein Verständnis ist, dass wenn ich nicht mit Trezor, konnte ich generieren diesen Schlüssel auf einem offline-Rechner wie Schwänze Linux oder Bitkey.IO-Live-CD. Mein Verständnis ist, dass dies dient als Schlüssel für das signieren von Transaktionen in der Zukunft. Aber, dies ist nicht von selbst schaffen, alle Adressen in die block-chain selbst.

Nach der Erstellung der Schlüssel, generiert ich einige Adressen. Eine für Bitcoin, eine für Litecoin und so weiter. Wieder, bloß das erstellen Adressen hat keinen Einfluss auf die block-Kette in keiner Weise. Das einzige, was ist das Besondere an diesen Adressen ist, dass die einzige Möglichkeit, um diese Adressen zu haben, haben die Samen in den ersten Platz. Ist dieses Verständnis richtig?

Nach diesem Zeitpunkt kann die Währung, die an Adressen gesendet, die ich erstellt habe. Dies bedeutet, dass die block-chain-Netzwerk hat zu akzeptieren, dass die Transaktionen vorgenommen wurden, und dann die Transaktionen synchronisiert werden, auf allen anderen Knoten im Netzwerk, die schließlich werden kann von mir, wenn ich überprüfen Sie die Adresse auf meinem Trezor software.

Dies ist, wo mein Verständnis wird ein wenig trüben. Es gibt auch sowas das nennt man public-key (xpub), und diese können verwendet werden, um die details meiner Brieftasche und Ihre Transaktionen, denke ich. Also, wer hat die Adresse meiner wallet unter Transaktionen in der es durch die Abfrage der block chain.

Aber, ohne den Samen kann niemand übertragung Münze aus meiner Adressen. Der seed ist für die Anmeldung erforderlich, die Transaktionen für diese. Ist das richtig?

Nun, sagen wir, meine Trezor verloren gehen oder zerstört werden und alles, was ich verlassen haben, ist der Samen. Also, ich kaufe eine neue Trezor und stecken Sie es in. Ich will nun zu tun eine Wiederherstellung. Also, meine Vermutung ist, dass es wird, wie mir für die 24-Wort-Satz. Richtig?

An dieser Stelle, was passiert dann? Ich habe nicht mehr alle Adressen oder XPUBs aufgeschrieben, und ich benötigen diese, um zu sehen, mein Guthaben vor, die ich Unterschreiben kann Transaktionen wieder. Also, wie funktioniert die Trezor-software (oder andere deterministische wallet-software) meine xpub und Adressen zurück?

Tun Sie:

  1. Laden Sie die gesamte block-Kette auf meinem computer und prüfen Sie für jede Adresse, um zu sehen, wenn es ausgesät wurde, aus meiner original-Saatgut?
  2. Treffer einige API? Wenn ja, wie? Tut es schicken meine Nachkommen an die API? Die API? Hat Trezor pflegen eine Art index der xpubs durch Samen? Ich würde nicht denken, dass dies wäre sicher in allen, und in der Tat würde völlig zum erlöschen der Sicherheit des Systems.
  3. Gibt es irgendeine Art von public-key versteckt in meinem Samen, die verwendet werden können, um look-up-indizierte Adressen? Wenn ja, wie funktioniert das? Gibt es eine C# - Bibliothek irgendwo kann ich nutzen, um zu extrahieren, diese öffentliche Schlüssel von meinem Samen?
  4. Einige andere Sache, die ich nicht gedacht haben... Was?

Edit: ich bin gerade mit dem Lesen durch diese. https://www.codeproject.com/Articles/784519/NBitcoin-How-to-scan-the-Blockchain . Es macht es Ton, als ob die Scanner-Klasse verwendet BIP37 Logik zum filtern der Daten aus dem block-Kette zu bekommen, bei den Adressen, die wahrscheinlich enthalten die Transaktionen, die ich brauche, um zu sehen. So, Eingänge, was braucht es dazu? Kann ich etwas ableiten, die aus meinem Samen, die sicher über eine API?

Vom Mastering Bitcoin:

Die Erzeugung eines öffentlichen Schlüssels, Beginnend mit einem privaten Schlüssel in form einer zufällig generierte Zahl k, multiplizieren wir Sie durch einen vorgegebenen Punkt auf der genannten Kurve des Generators Punkt G zu produzieren, ein weiterer Punkt irgendwo anders auf der Kurve, die den entsprechenden öffentlichen Schlüssel K. Der generator Punkt angegeben ist als Teil des secp256k1 standard und ist immer das gleiche für alle keys in den bitcoin.

K=k*G68

wo k der private Schlüssel, G ist der generator Punkt, und K ist die resultierenden öffentlichen Schlüssel, ein Punkt auf der Kurve. Da der generator zeigen ist immer das gleiche für alle bitcoin-Nutzer, einen privaten Schlüssel k multipliziert mit G wird immer in der gleichen öffentlichen Schlüssel K. Die Beziehung zwischen k und K ist fest, kann aber nur berechnet werden, in eine Richtung, von k K., Dass ist der Grund, warum eine bitcoin-Adresse (abgeleitet aus K) für jeden freigegeben und keine Rückschlüsse auf den privaten Schlüssel des Benutzers (k).

Also, bedeutet dies, dass in der Tat meine Nachkommen, hat in der Tat enthalten einen öffentlichen Schlüssel? Und dieser Schlüssel ist die xpub? Also, in anderen Worten, ist es möglich, erzeugen eine xpub aus dem Samen? Ist das richtig?

Zum Kochen Sie die Frage: Mein Samen, wie der Trezor oder andere Brieftasche abrufen der dazugehörigen Adressen, xpubs, public-keys, Transaktionen, Salden und so weiter, die sind abgeleitet aus den Samen?

+284
ercu 12.08.2019, 21:25:55

Sie können nicht Schulden machen (keine Minuswerte auf Ihr Bitcoin-Konto). Verbindlichkeiten sind eine wesentliche Ursache von Armut. Zumindest im großen Maßstab (für Länder ohne Schulden ist es schwierig, Reich zu werden).

Aus dem gleichen Grund: Kein fractional reserve banking möglich mit bitcoin (gut, dass nur, wenn die Banken verwenden das bitcoin-system intern).

Ich bin kein ökonom. Nur ein paar schnelle Ideen.

+207
Acelop 20.09.2010, 19:48:25

Jedes Projekt kann verschiedene spezifische Anforderungen für das, was als eine gültige Transaktion, aber in der Regel eine nicht ausgegebene Transaktion geprüft werden muss, gegen alle vorherigen Transaktionen in der blockchain, um sicherzustellen, es wurde nicht verwiesen, als input (vin) zu einem anderen tx. Bitcoin-stores eine Datenbank von unverbrauchten Transaktion Ausgänge (UTXO), dies zu tun, überprüfen Sie effizienter zu gestalten.

Diese Prüfung erfolgt in Bitcoin, bevor die Transaktion tritt in den mempool von einem Knoten (vor) abgebaut werden), und wenn dies fehlschlägt, wird die Transaktion abgelehnt.

Update: Sie erhalten eine spezifische utxo von txid mit $ bitcoin-cli gettxout, die Sie nicht nur Abfrage von Adresse, pro @PieterWuille ' s Kommentar unten.

+159
jyoyoy 22.11.2019, 10:00:25

Ich habe eine Transaktion, die nicht bestätigt für die letzten 3 Tage und ist nicht wahrscheinlich zu gehen, um zu bestätigen, an alle, die in Naher Zukunft aufgrund einer aktuellen situation im mempool.

Wird es funktionieren, wenn ich werde Folgendes tun? Gibt es irgendwelche Risiken zu verlieren, meine bitcoins für immer, oder sogar gebannt vom system für doppelte ausgeben?

  1. Dump, die Transaktion mit 'getrawtransaction'
  2. Abnehmen einem der Ausgänge von X in meinem hex-editor, so dass X Hinzugefügt werden, bis die Transaktion Gebühr
  3. Zeichen, dass die Transaktion mit 'signrawtransaction' und senden Sie es
+109
riorben 07.06.2012, 09:27:32

meine bitcoin.conf:

server=1
rpcauth=myusername:e2aa83d74a55b7addfe070367546e72d$953dda2b7e2d5a151a7ef0e82ed50a734bf4c4ac55289fede8bd340489d5af0f
rpcallowip=46.101.245.27 clientip-Adresse
datadir=/mnt/volume_fra1_03/

meine Clients Seite Optionen:

BITCOIND_SCHEME=http
BITCOIND_HOST=142.93.165.221
BITCOIND_PORT=8332
BITCOIND_USER=myusername
BITCOIND_PASSWORD=mysecretpassword

alles ist correnct aber bekomme ich connection refused error. auf Server-Side-8332 ist offen und bitcoind hören. bitcoin-cli getblockchaininfo arbeitet. bur ich versuchen, eine Remote-Verbindung ich geer Fehler connection refused.

+106
MTB 19.05.2012, 12:36:09

Durch Lesen der anderen Fragen/Antworten auf der bitcoin full node Thema, ich bin immer noch Fragen, ob es irgendwelche "Mehrwert" in einer vollständigen Knoten als ein Individuum.

Die meisten der "Alltag" die Leute wissen nicht viel über die computing-und Netzwerk. Sie wissen nichts über NAT, DHCP, router-Konfiguration, Prozess, daemon, usw. Sie sind nicht unbedingt die Mühe machen möchten, mit config files, don ' T care über Befehlszeilen oder komplizierte Optionen und so weiter. Und Sie Leben und schlafen sehr gut, ohne zu wissen, dass!

So Frage ich mich, ob es / was sind die Vorteile einer vollständigen Knoten als ein Individuum:

  • Vorteile für das Netzwerk

    Wenn ich einen kompletten Knoten, ohne Sie zu aktivieren von NAT auf meiner Internet-access-router/modem (und dann nicht in der Lage zu akzeptieren, neue connexions), ist es sinnlos? Mache ich gut oder schlecht mache? Bin ich die Sicherung von der ganzen Sache zum Beispiel? Andere Vorteile?

  • Vorteile für den einzelnen

    Was sind die Vorteile für den einzelnen, führt einen vollständigen Knoten zu Hause, hinter dem ISP-router/ - modem? Nehmen wir mal die Annahme, dass diese Person ist der Besitzer von einigen bitcoins (also er/Sie hat mindestens eine leichte Interesse an der domain). Wird er/Sie profitiert von schneller Transaktion, zum Beispiel? Mehr sichere Transaktionen? Andere Vorteile?

Könnte jemand klarstellen, dass für mich?

Dank

+59
Liara Tsony 14.07.2011, 01:32:47

Fragen mit Tag anzeigen