Kann ein private-key enumeration-Angriff verwendet werden, zu stehlen bitcoins?

Wir betrachten den folgenden Algorithmus

  • alle aufzuzählen, der private Schlüssel

  • für jede der aufgelisteten privaten Schlüssel generieren, die die relative öffentliche Schlüssel und überprüfen Sie, ob dort ist jeder nicht ausgegebene Münze, die im Zusammenhang mit diesem öffentlichen Schlüssel

  • wenn dort ist jeder nicht ausgegebene Münze, übertragen Sie diese Münzen zu einer Adresse, die im Besitz der Angreifer

Würde ein Angriff wie dieser funktioniert?

+348
Rebecca Chambers 19.03.2011, 02:45:00
25 Antworten

Die v0.5 client (noch experimentell, als der Zeitpunkt des Schreibens) unterstützt eine Funktion, wo Sie können sich eine SMS-Nachricht mit einem privaten Schlüssel.

So könnte man: a) haben Sie einen "registrieren" - button neben der Adresse. b) geben Sie dem Benutzer eine Nachricht zu unterzeichnen, die beinhaltet einige identifizierende Informationen (Kontoname, E-Mail-Adresse, etc) und die Adresse. c) der Nutzer wird ausgeführt bitcoind signmessage "" d) in diesem Zeichen wird die Nachricht mit Benutzer-privaten Schlüssel.

Nur ein Benutzer hat Zugriff auf den privaten Schlüssel entspricht, an die Adresse in Frage in der Lage zu generieren, die die richtige Signatur. Denke, dass es ähnlich wie eine Bitcoin-Transaktion ist es aber nicht veröffentlicht, um Bitcoin-Netz und beinhaltet einen beliebigen text-Nachricht.

Eligius verwendet diese Methode, um link-NMC-Zahlung-Adressen zu BTC-Zahlung-Adressen für seinen pool.

http://eligius.st/

Offensichtlich ist dies mehr Wert, wenn Bitcoind v0.05 öffentlich freigegeben.

+977
Jason Fritcher 03 февр. '09 в 4:24

In einem traditionellen Proof of Work (PoW) das Schema-es wird davon ausgegangen, dass es dauert einige Zeit, um zu berechnen, PoW-Funktion, wie SHA256x2 in Bitcoin und die Schwierigkeit erhöht, wie das Netz in der Lage ist-mining schneller als der Gegner 10 Minuten.

In vielen Proof-of-Stake (PoS) - Systeme von anderen Metriken verwendet werden, um zu bestimmen, wenn ein Bergmann wurde "ausgewählt" zu haben, Anteil in dem block, in der Regel in bits TX Eingänge.

Was hält eine PoS Bergmann aus mit im wesentlichen unendlich TX input-hashes zur Verfügung, die hand in jedem moment-und Bergbau-Blöcke mit einer schnellen rate zu inflationieren der Währung / sammeln viele Subventionen, Prämien?

+975
Samoa 09.02.2012, 01:36:08

Die Basis-Gebühr ist enthalten in der Finanzbuchhaltung und kann nur geändert werden, durch eine pseudo-Transaktion, wird in der Konsens festgelegt. Es ist gelungen, durch Konsens die gleiche Weise die reserve Ebenen sind.

+892
P T Reddy 15.01.2014, 04:44:47

Wenn Sie eine leere Zeichenfolge wird zurückgegeben, das Standard-Konto zu jeder Zeit. Hinweis getaccountaddress veraltet ist, siehe https://bitcoincore.org/en/doc/0.16.2/rpc/wallet/getaccountaddress/.

getaccountaddress "Konto"

VERALTET. Gibt den aktuellen Bitcoin-Adresse für den Empfang von Zahlungen auf dieses Konto.

Argumente:
1. "Konto" (string, notwendig) Der account-name für die Adresse. Es kann auch 
die leere Zeichenkette "" zu vertreten, die Standard-Konto. Das Konto nicht
müssen existieren, wird Sie erstellt und eine neue Adresse erstellt, wenn es kein Konto
indem Sie dem angegebenen Namen.
+878
Zahed Aziz 02.12.2018, 16:36:33

Es wurden Schätzungen der Zahl der veröffentlichten Adressen. Zum Beispiel:

https://blockchain.info/charts/n-unique-addresses

(dieses Diagramm zu sein scheint, die Unterschätzung der Zählung)

Ich bin allerdings daran interessiert, die Anzahl der öffentlichen Schlüssel. Die meisten von Ihnen erreicht würde aus der Transaktion Eingänge mit P2PKH-Antwort-Skripts.

Dieser Artikel lässt darauf schließen, dass mindestens 56 Millionen, aber beschreibt nicht, wie diese Zahl gefunden wurde, oder wenn die raw-Daten stehen zur Verfügung:

... Ich erhielt rund 56 Millionen pubkeys von der blockchain (Mitte Januar) [2015] ...

Gibt es eine günstige Quelle, die die Anzahl der veröffentlichten öffentlichen Schlüssel in Echtzeit?

+865
danteinferno 08.02.2019, 21:46:08

https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch06.asciidoc

In der original-bitcoin-client, der das entsperren und sperren Skripte wurden verkettet und ausgeführt, in der Reihenfolge. Aus Gründen der Sicherheit, dies war geändert im Jahr 2010, weil der eine Schwachstelle, die erlaubt, eine fehlerhafte entsperren Skript zum verschieben von Daten auf den Stapel und die Verriegelung beschädigt script. In der aktuellen Implementierung werden die scripts ausgeführt werden separat mit dem stack übertragen zwischen den beiden Ausführungen, als als Nächstes beschrieben.

Erstens, die Erschließung Skript ausgeführt, durch die stack-Ausführung Motor. Wenn die Entriegelung Skript wurde ohne Fehler ausgeführt (z.B., es hat keine "baumelnden" Betreiber übrig), den Haupt-stack kopiert wird und die sperren-Skript ausgeführt wird. Wenn das Ergebnis der Ausführung der Verriegelung Skript mit der stack-Daten, kopiert von der Erschließung Skript "TRUE" die Entriegelung Skript ist es gelungen, bei der Lösung der Ihr auferlegten Bedingungen durch die Verriegelung Skript und damit die Eingabe gültig ist Berechtigung zum verbringen der UTXO.

In diesem Kapitel, Andreas besagt, dass durch einen bug mit fehlerhaften entsperren Skripten, die Skripte werden nun separat ausgeführt.

Hier ist mein Verständnis:

Die Entriegelung Skript zuerst ausgeführt wird, die auf den Haupt-stack. Wenn die Entriegelung Skript gültig ist, wird der gesamte stack kopiert, und die Verriegelung Skript wird dann ausgeführt.

Gibt es einen Grund, warum der stack wird nicht kopiert, auf einen alternativen stack und dann den Unlock-Skript ausgeführt wird, auf die alt-stack? Auf diese Weise, wenn die Entriegelung Skript fehlerhaft ist, wäre es nicht verderben die rest der main stack.

+828
llollercoaster 02.12.2011, 11:41:53

Nein, es ist nur eine blockchain, das ist Bitcoin. Es gibt keine verschiedenen Versionen oder verschiedene blockchains, dass andere Personen, die ebenfalls Bitcoin. Solche Dinge gibt es nicht. Wie andere blockchains, die Gabel von Bitcoin sind nicht Bitcoin, sondern altcoins.

+803
user4010 02.10.2019, 19:10:04

Betrachten Sie die Transaktion 948a427.. die hat 3341 Bestätigungen ab sofort:

enter image description here

Wir können sehen, dass die Zeit der relais ist der Eingang an 8:36:30, und es hat eine Bestätigung um 08:50:04 (nach 14 Minuten).

Wie finden wir heraus, Wann genau es hat 3 Bestätigungen?

+797
Christophe Wagner 09.11.2018, 05:59:32

In der satoshi-client die verifymessage Befehl ist implementiert, indem dieser code fordert CKey::SetCompactSignature() seine Arbeit zu tun.

+731
user2287 20.05.2015, 05:10:07

Verwenden https://github.com/achow101/bittipaddr. Entwickelt, genau für die Zwecke, die Sie erwähnt.

Einbetten einer automatisch wechselnden Bitcoin-Adresse in eine beliebige Webseite oder forum posten. Es wird dazu dienen, eine neue Adresse für jede Spende, so dass Sie wird nicht sorgen zu machen über jede Adresse, die Wiederverwendung von Problemen mit Ihrem Spenden.

ZUM einbetten fügen Sie folgenden code in Ihre html-wie bereits in https://bitcointalk.org/index.php?topic=1650551.0

<iframe src="http://bittipaddress.com/bittipaddr/addressfor/da7ir8dl" style="border:none;" scrolling="no"></iframe>
+724
julsmak 03.05.2012, 16:59:42

Wenn Sie nicht verstehen, bitcoin core, vielleicht sollten Sie sich im alternative-wallets. Bitcoin core nehmen Sie massive Speicherplatz und in der Regel brauchen Sie ein paar Tage für eine anfängliche Synchronisierung wenn Sie keine SSD. Mb/s ist die Geschwindigkeit, nicht der Raum. Nicht sicher, was Sie suchen in es ist es aber nicht zu geben Ihnen einen Hinweis darauf, was Los ist.

+691
Mayur Satav 21.03.2010, 16:26:21

Unbestätigte Transaktion aus meiner Brieftasche. Hier sind die details. https://blockchain.info/de/tx/2b91804cada49e52774d3c4fd3c02e3932c03b358c8ea4d74abc4d407d5f429c

Wie kann ich die Erhöhung der Transaktionsgebühr oder was muss ich tun, um die Transaktion durch?

Vielen Dank für Eure Hilfe!

+671
ArikaAlex 02.05.2012, 16:41:07

Der einzige Weg zu wissen, welcher pool ist abgebaut ein bestimmter block ist durch die Identifizierung der Daten, die Bergleute in die coinbase-Transaktion. Allerdings muss darauf geachtet werden, da diese Daten können gefälscht werden. Auch viele mining-pools unterlässt er dies, die ist, warum es gibt viele Blöcke, die von "unbekannten" Bergleute.

Nehmen wir den letzten block abgebaut durch BTC.com, was ist #572639. Blick auf die coinbase-Daten, werden Sie brauchen, um sich bei der ersten Transaktion enthalten, die in dem block, die 806e80560f7c87059b9103d8bd4fca7be14810af47940c40464276d971fd2625. Nachdem Sie decodieren dieser Transaktion erhalten Sie die folgende Eingabe:

"vin": [
{
 "coinbase": "03dfbc080479b0bc5c672f4254432e434f4d2ffabe6d6d6b01cdd5d0aa44ffa14f158f90119afef5e5440b5f6ff324e74a988e6db4294d0100000000000000cb2b382f00005a2197460000",
 "sequence": 4294967295
}

In der coinbase-Daten, zahlen schließen Sie die Aufmerksamkeit auf den Teil 5c672f4254432e434f4d2f. Diese Daten werden in alle Blöcke abgebaut durch BTC.com pool. Wenn Sie decodieren dies bekommen Sie '\\g/BTC.com':

>>> pool_data = '5c672f4254432e434f4d2f' 
>>> bytes.fromhex(pool_data).decode()
'\\g/BTC.COM/'
+652
Marils 02.08.2017, 16:35:49

Ich Dummerchen, nicht push wallet Ergebnisse...

Hier ist der funktionierende code:

 var bitgo = new BitGoJS.BitGo();

 var listWallets = function() {

 Benutzer.find({}, function(err, docs) {
 if (err) {console.log('Konnte nicht gefunden Portemonnaies in DB');} else { 
 var allWallets = [];
 var allTXS = [];

 docs.forEach(function(address) {
 // console.log(Adresse);
allWallets.push(address.playerWallet);
});

 console.log(allWallets); 
 // ALLE Adressen, die JEDER IN SEINER EIGENEN ARRAY
 //[ '2N3qPHp7bNaL4hiztrzZCzCywryKUzb5ale' ]
 //[ '2N2oG4nBJZU19Aks3MLvHqDKMXePmHhbejc' ]
 //[ '2My1FGBG6erNXfzeGXg5DXnLk2PWxhpk9sl' ]

 // Weiß nicht, wie Sie eine bessere Methode, bei der die Anrufe wieder rekursiv und addiert alle 3 obj empfangen in einem array....
 for( var iteration in allWallets){ 

 // console.log(allWallets[iteration]); 
 // '2N3qPHp7bNaL4hiztrzZCzCywryKUzb5ale'
 // '2N2oG4nBJZU19Aks3MLvHqDKMXePmHhbejc'
 // '2My1FGBG6erNXfzeGXg5DXnLk2PWxhpk9sl'

 // So rufen Sie eine Rekursive Rückrufe oder ein Versprechen für bitgo.Geldbörsen().gest({}) während der Iteration Adresse mehrere?
 bitgo.Geldbörsen().get({ "id": allWallets[iteration] }, callback-Funktion(err, Brieftasche) { 
 if (err) { throw err; }
 // console.log (- Adresse._id + '' + Adresse.playerWallet + '' + 'BlockChain_Balance:' + wallet.balance() / 1e8.toFixed(4) + 'DB_Balance:' );
allTXS.push(Geldbeutel);

 jsonfile.writeFileSync(_24HourGame, allTXS, {Räume: 3});
});
}

}
});

};

 // Authenticate first
 bitgo.authentifizieren({ username: Benutzer password: loginPassword, otp: otp }, function(err, Ergebnis) {
 if (err) { console.dir(err); throw new Error("Konnte nicht authentifiziert werden!"); }
 console.log("Entsperren Konto.." );
 bitgo.entsperren({ otp: otp }, function(err) {
 if (err) { console.dir(err); throw new Error("Konnte nicht freischalten!"); }
listWallets();
});
});

Danke für Eure Hilfe !

+597
byronyasgur 10.01.2014, 11:36:41

Ich brauche eine api oder eine Anwendung, erzeugen und verarbeiten (senden/empfangen und so weiter...) multi-Währungs-wallet. Ein Beispiel: zu generieren dogecoin-Adresse, bitcoin-Adresse, litecoin-Adresse, peercoin-Adresse und so weiter... und mit Ihnen umgehen. Wie senden/empfangen/check balance.

+553
RFredo 26.02.2019, 12:30:54

Alle in der Theorie: Moore ' s Gesetz wird der Kompromiss alle proof of work algorithmen wie neuere mining equipment erschwinglich wird weniger und weniger Bergleute. Schließlich ein miner haben 51% die Kontrolle und es muss nicht sein quantum.

enter image description here

Aber quantum wäre eine definitive Antwort auf Ihre Frage, weil Moore ' s Gesetz ist stetig nähert sich seinem Grenzwert, der für konventionelle CPU-chips.

Eine funktionale 10000-qubit quantum computer ausführen können, Shor und Grover 's Algorithmus: Anwendung verschiedener Ansätze mit Shor und Grover' s zu verknüpfen, private und öffentliche Schlüssel könnte brechen ECDSA 256.

Die ersten 10000 qubit-Quantencomputer könnte behaupten, 51% die Kontrolle über jede blockchain es Ziele.

Wenn Bitcoin ist immer noch rund, wie es ist, eine Gabel passieren würde bb84, aber vor jemand würde mit ziemlicher Sicherheit Angriff die blockchain wird, wenn Sie könnten.

Quanten-Computern im Jahre 2019 von top-qubit-Anzahl:

  • Google Bristlecone: 72-qubit-gate-basierte
  • IBM-50-qubit
  • Intel: 49-qubit-Test-Chip

Wie lange wird es dauern, bis zu 10000 qubits? Niemand weiss es genau.

+333
Trueliarx 28.10.2012, 12:48:49

ich schrieb eine einfache Funktion zum abrufen trades von mtgox mit folgenden HTTP-API-Aufruf:

https://data.mtgox.com/api/1/BTCUSD/trades?since

hier dokumentiert: https://en.bitcoin.it/wiki/MtGox/API/HTTP/v1#Multi_currency_trades

hier ist die Funktion:

string GetTradesOnline(Int64 tid)
{
Thread.Sleep(30000);

 // Kommunikation
 string url = "https://data.mtgox.com/api/1/BTCUSD/trades?since=" + tid.ToString();
 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
 HttpWebResponse response = (HttpWebResponse)request.GetResponse();
 StreamReader reader = new StreamReader(response.GetResponseStream());

 string json = reader.ReadToEnd();
 return json;
}

ich bin ab tid=0, um die Daten von Anfang an. es funktioniert gut für 5 Anfragen & Antworten. aber dann die folgende Zeile wirft eine "System.Net.WebException" sagen, dass "Der Vorgang hat das Zeitlimit überschritten":

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

diese Ausnahme bleibt geworfen, auch wenn ich es fangen und versuchen Sie es erneut. es ist immer genau bei 5 Anfragen.

während es fehlgeschlagen sei für ein paar Minuten, ich versuche, die 6. Anfrage im browser und es funktioniert gut, während die Funktion weiterhin nicht.

das merkwürdige ist, dass es funktioniert für 5 Anfragen jedesmal, wenn ich starten Sie die Anwendung. derzeit, ich fange immer bei trade-id 0 (tid=0).

ich habe erhöht die Sleep() dazwischen Anträge zu 2 Minuten, aber das Verhalten immer noch das gleiche.

wenn ich die url auf https://www.google.comes nicht-timeout.

irgendwelche Ideen, was falsch sein könnte?

+270
Musa almatri 23.11.2019, 02:57:46

Ich bin versucht, senden eine Nachricht an ein anderes Konto mit zwei Bestätigungen mit dem Phasing-Optionen in einer Nachricht auf zwei verschiedene Konten. Das problem ist die Botschaft, die dauert 1 minute, 2 Minuten, um gesendet zu werden. Auf der anderen Seite, wenn einer der Benutzer versucht, um die Transaktion zu genehmigen nimmt auch von 2 Minuten bis 5 Minuten manchmal oder mehr und ganz selten ist es schneller.

Ich habe versucht, diese Vorgänge mit den lokalen NXT mit Testnet: localhost:6876, und das online-Tool unter Verwendung der folgenden URL: demo.jelurida.com.

Gibt es eine andere Möglichkeit, dies schnell zu tun? Ich habe gelesen, über Glut zu tun, Sie denken, es ist die bessere Wahl?

Vielen Dank im Voraus,

+252
Savitha 17.01.2013, 07:56:18

Versuchen bitcoinjs-lib

Das folgende erzeugt eine P2SH(P2WPKH) Adresse

const bitcoin = require('bitcoinjs-lib')
lassen pubkey = Puffer.von('027a2c8c567a5bb7777580d31d1fd8d9910d4b1bb398570e3a36e81d7522cf828a', 'hex')
lassen Sie Adresse = bitcoin.Zahlungen.p2sh({einlösen: bitcoin.Zahlungen.p2wpkh({ pubkey"})}).Adresse
console.log('Adresse: ', Adresse)

Adresse: 3F1JMjuxgNFuK4kBxv4JXMEdQ2yvjuz939
+225
Amanda Wilson Anderson 17.03.2017, 18:55:04

Wenn Sie den bitcoin-qt-client https://en.bitcoin.it/wiki/Bitcoin-Qtverfügen Sie bereits über die blockchain, die auf Ihrer Festplatte (in der /bitcoin-Ordner). Die Dateien blk000x.dat (blk0001.dat ist der erste Teil, blk0002.dat die zweite ...) alle Daten enthalten. blkindex.dat hat der index der Blöcke.

Mit der Kommandozeilen-version, bitcoind, können Sie überprüfen, Blöcke, Transaktionen. Die Dateien können auch studiert werden, die mit bitcointools: https://github.com/gavinandresen/bitcointools

Wenn Sie einen anderen client, die Dateien irgendwo anders sein, aber wahrscheinlich werden Sie noch da sein.

+114
marinashefer 30.03.2014, 13:15:00

Die Arbeit getan, wenn der Bergbau nicht im Laufe der Zeit. Jeder hash berechnet, ist unabhängig von den anderen. Denke, dass der Bergbau immer wieder Rollen riesige sterben, und zu versuchen, eine extrem niedrige Zahl, anstatt zu arbeiten in Richtung auf eine Lösung zu einem komplexen problem.

Wenn ein miner verliert die Verbindung zum internet, es wird nicht reichen die Arbeit während dieser Zeit. Arbeit, die während des Ausfalls sein kann oder nicht abgestanden (zu alt, zu übermitteln), wenn die Konnektivität gibt. Jedoch, keine früheren Arbeit, wird verloren sein, als wäre dieses Werk bereits eingereicht wurden sofort an einen pool/das bitcoin-Netzwerk, wenn es nützlich war.

+108
DaveHogan 12.06.2010, 20:28:32

Leider Mt.gehex hat die Tendenz zu verzögern BTC-Auszahlungen von Zeit zu Zeit. Passierte mir vor einigen Tagen auch. Ich habe versucht zu widerrufen 1.8 BTC an eine andere Adresse, aber die Transaktion nicht zeigen, bis in der block-Kette. Schließlich dauerte es, so etwas wie 12 Stunden später. Ich habe gehört, andere Leute gewartet haben, für Tage, für seinen Rücktritt zu vervollständigen.

Ich empfehle ein ticket zu eröffnen, nur im Fall, sondern erkennen, dass dies ist nicht ungewöhnlich. Hoffe, das hilft ;)

+85
Justin Heath 27.10.2018, 01:44:29

Der Grund, es wurde gezogen, die Daten, wenn ich fiel auf die "start" oder "Ende" Teil des Codes war, weil die API dann ignoriert diesen parameter und kehrte das Standard Ergebnis.

die Lösung war der import der 'datetime' - Paket und-format der "start_time" und "end_time" Objekte mithilfe von datetime. zum Beispiel:

Startzeit = datetime.datetime(Jahr,Monat,Tag)

+84
aleh5137 16.06.2018, 03:20:41

Ich kann nicht sagen, dass ich sicher bin, aber das ist der größte block, die ich je gesehen habe:

00000000000000fb62bbadc0a9dcda556925b2d0c1ad8634253ac2e83ab8382f aka nr 153509

Es hat insgesamt eine Leistung von 607,176.29050282 BTC, vor allem, weil diese 550k Transaktion.

+37
freigz 16.06.2012, 08:23:45

In anderen Worten, wenn ich einen MtGox-code einlösen und es auf mein Konto, kann die person, die mir die bitcoins, über den code, sehen, dass mein Konto die Konto, der Sie erlöst?

+28
Brian Bolton 16.09.2019, 17:33:41

Fragen mit Tag anzeigen