Probleme mit deterministischen ECDSA basierend auf RFC6979 in Bitcoin

Generierung von random-Zahl k in der elliptischen Kurve ist entscheidend und in allen Transaktionen, die Signatur in Bitcoin, zufällige Zahl k ist erforderlich, um zu berechnen, einen Punkt k*G. Wenn dieses k ist nicht zufällig gewählt, es sofort zu Undichtigkeiten der privaten Schlüssel.
Daher kamen Sie mit einer Idee der deterministischen Erzeugung von ECDSA, die beschrieben wird in RFC6979. Im Grunde, Sie verketten Sie die privaten Schlüssel mit dem Hash-Nachricht, und verwenden Sie einen HMAC-Funktion und generieren einer pseudo-random - k.
Diese Methode scheint einfach und leicht.

  • Tut es einführen overhead?
  • Wenn ja, ist dieser Aufwand vernachlässigbar?

Oder allgemein gibt es irgendwelche Unzulänglichkeiten oder Probleme mit dieser Methode, und warum sehen wir immer noch nicht-deterministische Implementierung des ECDSA?

+496
Jane Cheema 17.10.2011, 18:00:27
20 Antworten

Mein Galaxy S4 mini funktioniert plötzlich nicht mehr, ohne ersichtlichen Grund. Es lässt sich nicht einschalten über den empfohlenen Maßnahmen oder neue Batterie, recovery-software vom laptop kann nicht scheinen, um die Verbindung als ein Ergebnis. Ich hatte bitcoin wallet installiert, es mit bitcoins innen. Wie bekomme ich Zugang zu/gewinnen das Portemonnaie - oder zumindest Münzen? Danke!!!

+904
Paul Jacobson 03 февр. '09 в 4:24

Ich bin mit einem testnet Knoten. Ich kann verwenden bitcoin-cli einfach gut:

>bitcoin-cli.exe getinfo
{
 "version" : 100000,
 "protocolversion" : 70002,
 "walletversion" : 60000,
[... snipped]

Aber wenn ich dieses python-code:

von bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
import logging

rpc_user = "rpcuser"
rpc_password = "xxxxx"

die Protokollierung.basicConfig()
die Protokollierung.getLogger("BitcoinRPC").setLevel(logging.DEBUG -)

rpc_connection = AuthServiceProxy("http://%s:%[email protected]:8332/" % (rpc_user, rpc_password))
print(rpc_connection.getinfo())

Ich bekomme diese Fehlermeldung:

DEBUG:BitcoinRPC:-1-> getinfo []

Traceback (most recent call last):
 Die Datei "<Pfad>\rawtransactiondemo\raw.py", line 11, in <module>
print(rpc_connection.getinfo())
[... snipped]
 Datei "C:\Python27\lib\json\decoder.py", line 384, in raw_decode
 raise ValueError("No JSON-Objekt dekodiert werden konnte")
ValueError: Keine JSON-Objekt dekodiert werden konnte

Das ist meine bitcoin.conf:

testnet=1
rpcuser=bitcoinrpc
rpcpassword=xxxxx
daemon=1
rpcport=8332
rpcallowip=192.168.1.39
binden=192.168.1.39

Ich bin mit dem python-bitcoinrpc Bibliothek.

+890
mynewton 28.07.2015, 08:25:16

Es ist nichts besonderes an einem electrum wallet. Die Elektron-API wird Ihnen erlauben, zu Abfrage-Adresse gleicht, und bauen Transaktionen, für die eine Adresse, unabhängig davon, wie Sie erstellt wurden.

Elektron selbst existiert verwenden Sie die spezielle Taste Ableitung Schema, aber das bedeutet nicht, Einfluss auf die usability aus API-Sicht. Wenn Sie electrum-Server als backend, sollten Sie in der Lage sein zu generieren, Geldbörsen mit jedem BIP39 Bibliothek in Ihrer Sprache der Wahl, und einfach Abfragen mit dem resultierenden Adressen.

+872
Hyuck Kang 16.06.2011, 06:12:14

Die standard-Bitcoin-software version 0.4.x hatte eine GUI, basierend auf wxWidgets anstatt QT. Für version 0.5 war es zusammen mit den dann-separate bitcoin-qt.

Die ältere version erlaubt Ihnen die Auswahl einer Adresse werden in der übersicht angezeigt. Wenn Sie Mittel erhalten, um eine Adresse, während er ausgewählt ist, Bitcoin würde automatisch eine neue Adresse.

Ich glaube nicht, dass diese Funktion existiert noch in der QT-version. Aber es macht immer noch neue Adressen generieren, für den Wandel.

+863
Ugo Matrangolo 21.01.2013, 21:51:08

Heruntergeladen habe ich Bitcoin-Qt für Mac gestern. Ich verstehe, dass es eine Weile dauert, zu "synchronisieren", aber diese Seite sagt, man kann auf Sie zugreifen, während dieser Prozess stattfindet. Ich habe den Bitcoin in meinem Programme-Ordner, aber wenn ich auf das Symbol passiert nichts. Ein Freund sagt, er könnte überwachen Sie den Fortschritt der Synchronisation kann ich nichts sehen. Was mache ich falsch?

+801
jm4rc05 05.01.2017, 17:39:57

Ich Frage mich, wie ich finden kann, die Transaktion, verbringt eine bestimmte Leistung (für eine große Anzahl von Transaktionen). Also ich habe zum Beispiel eine Transaktion wie die folgenden: https://www.blockchain.com/btc/tx/ebd4a554faff31dd2a07135913fa073012a4495b195c1a5d5a9a7bca3e88de61. Es hat zwei Ausgänge, die beide verbrachte. Ich möchte die Transaktion, verbringt diese Ausgabe. Blockchain.com ein link zu den Ausgaben der Transaktion über den tx-index (https://www.blockchain.com/btc/tx-index/355543195). Jedoch, Sie nicht bieten diese eine API-Endpunkt und nur in der GUI. Ich Frage mich, ob es existiert eine API, die Angebote zu finden, die Transaktion entweder über den tx-index oder andere Mittel.

Hintergrund Ich habe gerade angefangen zu forschen, die auf den lightning-Netzwerk, und ich war daran interessiert, die Schließung der Kanäle. In bestimmten, nahm ich ein snapshot von der Blitz-Netzwerk im Januar aus https://graph.lndexplorer.com/api/graph und überprüfung aller Kanal-Transaktionen, um zu sehen, wenn der Kanal geschlossen ist. Wenn der Kanal geschlossen ist, möchte ich wissen, ob es war eine gegenseitige Nähe, einseitige schließen, oder eine umstrittene einseitige schließen (eine alte Verpflichtung tx, wodurch ein Widerruf tx folgenden das Engagement tx auf der Kette). Da das dataset hat rund 16.000 Kanäle, brauche ich eine automatisierte Analyse durch die Transaktionen.

+792
Vannet hong 09.05.2019, 12:19:42

Ein coinbase-Transaktion es nicht auszuschüttende bis es 100 Blöcke tief in die blockchain. Da ein block erzeugt alle 10 Minuten, es nehmen in der Regel 1.000 Minuten (knapp 17 Stunden) vor einem miner verbringen Sie die Belohnung.

1). Nicht die miner belohnt, sobald 51% der Knoten akzeptieren den block? Wenn ja, wie ist die Annahme, dass Informationen weitergegeben, um seine/Ihre eigene Knoten - ist es getan, wie und Wann die einzelnen Knoten im Netzwerk akzeptiert?

Es sind 51% der mining power, keine Knoten. Sobald 51% der mining power ist der Bergbau auf der Oberseite des Blocks, es wird immer mehr mit einer schnelleren rate als jede andere blockchain, um Sie irgendwann 100 Blöcke tief. (Dies ist nicht wirklich zu 100% garantiert, aber es funktioniert auf diese Weise die überwiegende Mehrheit der Zeit.)

2). Oder hat die miner belohnt, der moment, in dem er/Sie erstellt einen block und Sendungen zu Gleichaltrigen? Wenn ja, wie wird die Belohnung zurückgesetzt, falls der block ungültig ist?

Die Belohnung wird zurückgesetzt, falls der block ungültig ist, weil die Belohnung war in diesem block. Also alle Knoten, die nicht berücksichtigen, dass block gültig, nicht berücksichtigen, eine Transaktion zu verbringen, die Belohnung gilt. Um für eine Transaktion, die verbringt, die Belohnung als gültig betrachtet werden, die Belohnung selbst muss als gültig angesehen werden, und der block, in dem der Lohn war die belohnt werden, müssen 100 Blöcke (oder mehr) Tiefe.

+670
jeff vargues 19.02.2019, 05:13:38

Trezor hat die zwei wichtigsten Dinge.

  1. Es erzeugt eine Brieftasche, basierend auf Ihrer recovery-Samen. Der Samen, Ihre wichtigsten Daten, wie es verwendet werden, um Zugriff auf Ihr Geld, auch ohne einen Trezor.
  2. Es Anzeichen Transaktionen über Signaturen basierend auf Ihrer recovery-Samen, ohne die Notwendigkeit zu setzen, die recovery-seed-zu jedem Menschen-oder software.

Das Saatgut stellt Ihre Brieftasche, so dass, wenn Sie besorgt sind, es beeinträchtigt wurde, und es nie benutzt, Sie sollten auf jeden Fall einen neuen zu generieren. Die Trezor bietet keine Sicherheit, wenn Ihr Saatgut gefährdet, denn jemand kann nur legen Sie Sie in ein anderes Gerät.

Alles Trezor tut, ist auf der Grundlage von Ausgangswerten, so lange, wie Sie es nie benutzt und sind bereit, einen neuen zu generieren, sollten Sie in Ordnung sein.

+666
Katia8218 05.07.2014, 21:35:02

HINWEIS: verwenden Sie nicht diese Lösung. Es ist nicht mehr relevant für den aktuellen Mandanten. Siehe andere Antworten für Empfehlungen, wie unvollständig blockchain Darstellungen.

Die aktuelle version des Clients nicht bieten viel in der Art der Optimierung von Raum, und hat einige caching verursachen aufblasen, aber hier sind einige Ideen für die manuelle Möglichkeiten, die helfen könnten.

  1. Kopieren Sie die Brieftasche.dat-Datei aus dem data-Verzeichnis, dann entfernen Sie das Daten-Verzeichnis. Starten Sie den client neu, haben es die data-Verzeichnis wieder und laden die block-chain. Beenden Sie den client ersetzen die Brieftasche.dat-Datei mit dem backup. Starten Sie den client mit der -rescan option.
  2. Sichern Sie Ihre gesamten Daten-Verzeichnis und entfernen Sie es. Starten Sie den client erneut, erstellen Sie eine neue Daten-Verzeichnis, und block chain download. Kopieren Sie eine Adresse aus der client. Schließen Sie die client-backup das neue data-Verzeichnis als eine andere Sicherung. Wiederherstellen der alten-Verzeichnis. Starten Sie den client und übertragen Sie alle Ihre Münzen, um die neue Adresse. Sie können dann wieder die Nummer 2 Sicherung der Daten-Verzeichnis, und entfernen Sie das alte Verzeichnis. In diesem Szenario müssen Sie nicht neu starten den client mit der -rescan option.

Aber sehr vorsichtig sein mit diese Schritte, und halten Sie alle sicherungen, bis Sie sicher sind, dass Sie erfolgreich sind. Und denken Sie daran, dass, wenn Sie erwarten, dass Zahlungen auf die alte wallet.dat-Datei-dann sollten Sie nicht verwenden die option zwei, es sei denn, Sie können ganz einfach aktualisieren Sie die Adresse zu Ihrer neuen Brieftasche.

+656
Abhyudit Jain 06.01.2014, 22:53:38

Die Maschine selbst verfügt über eine spezielle Transaktion, die in dem block namens generation Transaktion. Jeder block hat nur eine einzige generation Transaktion.

Diese generation Transaktion überträgt der block Zuschuss plus die Gebühren der block an eine Adresse gesteuert durch die miner.

Für Herzen lag, wenn man sich im block 434868, es ist einer einzigen generation Transaktion , die transfers 12.96 Adresse 17ggdTQzKFwrKP1zgqb5Kjuw6CpGKaE6jrw.

+634
Gavish Kumar 21.06.2011, 07:54:19

Ich sehe keinen Grund, für die zweite wenn - Anweisung, entweder. Ich spreche nicht von irgendeiner form von Autorität hier, aber es sieht aus wie eine (kleine) Wirkungsgrad bug zu mir.

Die zweite wenn - Anweisung gibt es schon seit dem ersten commit. Der ersten wenn - Anweisung wurde eingefügt, etwa ein Jahr später als "rieseln" der tx inv Nachrichten wurde Hinzugefügt, vermutlich um zu überprüfen, die set-Mitgliedschaft früher zu vermeiden, laufen durch das Plätschern Logik, wenn es nicht notwendig ist. Ich denke, dass die Entfernung des zweiten falls wurde einfach übersehen.

+594
0range 29.10.2016, 14:17:26

Sie sollten es verwenden, wie dieses bitcoin

bitcoind -datadir=/your/external/path

Hoffe, das hilft!

+526
Heather Burgess 08.01.2012, 01:59:38

Es ist ein Weg, um die Kapazität zu erhöhen, die Zahlung Kanal. Dynamische Kanal-und Auszahlungen für die Blitz-Netzwerke The FundCasc Splice-in

Wenn Sie Eine hinzufügen möchten 0.5 BTC an den Kanal, kann er vorschlagen, erstellen Sie eine neue Finanzierung der Transaktion, die verbrachte die alte Finanzierung und anderen UTXO von A. Die neue Finanzierung der Transaktion erstellt werden können, indem Sie die folgenden Schritte aus.

  1. Erstellen Sie eine neue Finanzierung der Transaktion
  2. Erstellen von ein paar neuen Engagement Transaktionen (C2a und C2b), welche die entsprechenden RD2a und RD2b
  3. Die Unterzeichnung des neuen Engagement Transaktionen
  4. Austausch von Signaturen für neue Engagement-Transaktionen
  5. Die Unterzeichnung eines neuen Finanzierung der Transaktion
  6. Austausch von Unterschriften für die neue Finanzierung der Transaktion
  7. Die Ausstrahlung der neuen Finanzierung der Transaktion
+514
codename47 01.06.2013, 22:09:51

Ripple ist eigentlich ein permissioned "Kette", auch wenn wir uns dehnen, was der definition einer Kette ist. Es wird vom Prüfer und, soweit ich weiß, ist es nicht permissionless (die ich gleichsetzen mit "trustless").

Ich sehe nicht ein spezifischer Bedarf für eine permissionless Netzwerk, um seine eigene Münze oder token. Es könnte theoretisch noch Gefahren werden nicht auf eine bereits vorhandene Münze aus einem anderen Netzwerk. Es hängt eine Menge auf Ihren " proof-of-was-Algorithmus. Man hätte ein Netzwerk, das die Auszeichnungen "Bergleute" ETH für-doing "funktionieren" auch, wenn Sie Ihr eigenes Netzwerk nicht über seine eigenen token, pro se.

+504
Shaddock 12.10.2017, 06:40:40

nLocktime Transaktionen, die noch nicht gültig sind, nicht weitergeleitet und eventuell sogar gefallen. Es ist die Verantwortung der sender und/oder Empfänger zur Speicherung der Transaktionen, bis Sie gültig sind, und dann strahlte Sie.

+423
Richard Varner 01.06.2012, 23:28:53

Extras -> Importieren Sie Einen Privaten Schlüssel

Erstellen Sie eine Datei mit dem privaten Schlüssel drin. Wenn Sie nicht hinzufügen, der zum Zeitpunkt der Erstellung dieser Adresse erhalten Sie diese Meldung:

"Es fehlten Daten. Zurück zu genesis-block."

Ich denke, das Datum sollte das erste Datum der Transaktion registriert in der block-Kette.

Schlüssel createdAt ist im UTC-format gemäß ISO 8601 e.g: 2011-12-31T16:42:00Z . Jahrhundert, 'T' und 'Z' sind Pflichtfelder

Um sicher zu sein, schalten Sie das Datum ein paar Tage zurück.

+388
Serg Buslovsky 07.12.2014, 17:48:49

Die mining-Kunden hat sich stark auf die Effizienz der Bergbau.

Verschiedene mining-software hat eine verschiedene Entwickler Gebühr, einige sind besser geschrieben als andere, und einige arbeiten besser für nVidia, während andere sind besser für AMD.

Die GUI-Miner sind in der Regel nur ein GUI-wrap-up für die Konsole Bergleute, so dass verschiedene GUI-Miner führen auch unterschiedlich auf verschiedene algorithmen und hardware.

Der Verlust, den Sie erleben können, wenn der Bergbau mit der falschen software kann von 0,1% bis 100%+.

Das ist, warum Sie sollten: -haben aktualisierte Treiber(oder am besten, wenn die Letzte nicht die beste), -tun Forschung auf Ihre mining-hardware-Potenzial -testen Sie, wie viele kompatible mining-clients wie möglich.

+387
Beamer586 beamer586 yoda 04.06.2019, 05:35:13


Ich will BitcoinCore für die RPC-Anfragen von der Website. Aber ich konnte nicht finden überall sonst, wie zu Fragen, eine Kommission für den Rückzug.
In der Anleitung gibt es nur:
sendtoaddress: bitcoinaddress Betrag Kommentar Kommentar zu es ist nirgends zur Abdeckung der provision.
settxfee: Menge - es ist zugewiesen, um das gesamte Konto, nicht auf eine bestimmte Transaktion.
Wie die Umsetzung der Abschluss mit einem manuellen Kommission?




+284
greengrain 05.11.2017, 17:13:07

Spot-Preise berechnet wird, die von der Suche in Mengen und Preise in den angeboten/angeboten, die alle gepostet hat, und das hinzufügen von Ihnen, bis Sie sich treffen Sie Ihr, was Sie bereit sind zu verkaufen/kaufen.

Ich bin mir nicht sicher, ob das ist eine tolle Erklärung, aber nebenbei, ich habe eine Anwendung, die zeigt, das vor einer Weile: http://btc-spot-pricing.johnhenry.c9.io/

+267
Sow 07.02.2010, 00:22:30

Ist es möglich mit "Bitcoin Tage zerstört", als Einheit von Währung? Wenn ja, wie Preis, etwas über diese? Wenn Nein, warum nicht?

+196
AndyPanda 31.08.2016, 01:13:25

Fragen mit Tag anzeigen