Hat der private Schlüssel des Bitcoin ändern jedesmal, wenn sich die Adresse ändert?

Ich habe gelesen von vielen Seiten, dass eine Adresse sich ändern sollte jedes mal, wenn eine Bitcoin-Transaktion aus. Nicht die privaten Schlüssel zu ändern, zusammen mit der Bitcoin-Adresse. Wie ist die Adresse aus den erhaltenen öffentlichen Schlüssel? Ist es die gleiche Methode der Ableitung der öffentliche Schlüssel aus dem privaten Schlüssel?

+562
Glacius 26.08.2011, 23:09:40
39 Antworten

Es gibt unzählige router port forwarding guides im Internet, das ist nicht Bitcoin/Litecoin bestimmten.

Eh, hast du den port direkt, Sie brauchen, um Ihren computer auf einem reservierten local-Adresse, so dass Ihre interne IP-Adresse ändert sich nicht, wenn Sie neu starten. Dann weisen Sie das benutzerdefinierte "Spiel oder Anwendung", die Sie erstellt haben, um Ihre neu reserviert lokale IP. Möglicherweise müssen Sie erlauben, Sie den port auf Ihrem computer, die firewall zu. Das sollte es tun.

Sagen, dass, Bitcoin/Litecoin ist die peer-to-peer und erfordert nicht die port öffnung funktioniert es gut ohne es. Der einzige Unterschied wird sein, dass Menschen in der Lage sind, verbinden Sie die geben Sie Ihre Knoten mehr peer-Optionen, so könnte es machen es schneller synchronisiert werden. Natürlich könnte es auch machen, Sie synchronisieren Sie langsamer, weil Sie werden helfen, mehr peers synchronisieren.

Abhängig von Ihrer Internet-Geschwindigkeit, könnte es sein, die uploads, die Ihre downloads zu nehmen äonen, oder es könnte eine langsame/gebucht-Festplatte. Denken Sie daran, es ist nicht eine website - Sie gehen nicht zu downloaden 4Gb von den anderen volunteer-Kollegen mit der gleichen Geschwindigkeit, die Sie könnte für andere downloads.

+988
Pobly 03 февр. '09 в 4:24

Es gibt in diesem thread auf bitcoin-talk:

https://bitcointalk.org/index.php?topic=90982.0

Ich persönlich generiert diese Adresse: 1BoyishnessfwHq3wSkCkJ7iafUdjhghfU welche ist die längste, die ich bin mir dessen bewusst, dass das keine gemischte groß-und Kleinschreibung. Es war erzeugt durch die Fütterung oclvanitygen eine große Anzahl an möglichen Präfixe von einer großen wordlist.

+955
Marjorie Dawn Edwards 02.10.2017, 03:02:53

Ich bin nicht sicher, es gibt eine genaue definition von Staub. Die Armory-client, wiki sagt:

Das senden von weniger als 0,01 BTC an beliebige Empfänger — Das Netzwerk der Auffassung, diese kleinen Ausgänge zu "Staub", und rät Ihnen, durch die eine Gebühr. Wenn es war nicht entmutigt, jemand könnte 1.0 BTC, und erstellen Sie 1.000.000 Transaktionen von 0.000001 BTC jeder, kostenlos, das würde verstopfen das Netz. Also, das ist eine definition von Staub.

Eine andere definition von Staub ist der neue 5.46 uBTC minimum output-Größe, die Hinzugefügt wird, 0.8.2.

Diese ziehen Sie definiert "unwirtschaftlich Staub' als 5.46 uBTC (546 satoshis, über $0.007 bei den aktuellen Preisen), und behandelt jede Transaktion mit einer Leistung von weniger als 546 satoshis als nicht-standard - (nicht weitergeleitet werden, werden nicht abgebaut). 546 satoshis ist abgeleitet von den Kosten (Gebühren) zu verbringen, eine TxOut/TxIn.

(Beachten Sie, wenn ursprünglich freigegeben, die Staub-Schwelle wurde gesagt, 5430 satoshis, aber das war falsch und wurde später behoben , um die richtige Zahl. Die Gebühren haben auch untergegangen 10x)

Ich glaube nicht, dass die definition von Staub grundlegend ändert der Kern der Antwort aber.

Im Allgemeinen, die genaue definition von Staub, und die Schwelle für das, was als Staub mit der Zeit ändern kann mit der Transaktion Volumen (und damit den Wettbewerb für Speicherplatz in der blockchain) und der Wechselkurse.

+940
Ravi Sanwal 20.03.2013, 07:26:29

Nein, das können Sie nicht. Wenn eine Transaktion bezieht sich auf einen nicht benutzten Ausgang, es bezieht sich auf es von Transaktions-ID und die Ausgabe-Nummer, keine Adresse. Also wissen, dass eine bestimmte Adresse hat eine Besondere balance ist nicht das, was Sie brauchen, um zu überprüfen Transaktionen. Wenn Sie können nicht überprüfen, Transaktionen, können Sie nicht überprüfen, Blöcke. Wenn Sie können nicht überprüfen, Blöcke, Sie können nicht wirklich viel tun, außer zu Vertrauen, einige andere server zu tun, die eigentliche Arbeit für Sie.

Ripple implementiert Konten mit Salden anstelle von nichtgenutzten Ausgänge genau dies zu vermeiden.

+933
KODAKSM4K 02.09.2015, 16:17:32

Sie würden erstellen müssen gewisse Garantie dafür, dass jemand bereit wäre zu tauschen diese token für genau einen dollar. Dies bedeutet, dass der Wert der token wäre in keiner Weise Markt getrieben, außer, dass es gebunden ist, zu einer vorhandenen Währung und Ihr Wert Schwankungen. Ich glaube nicht, dass es ist ein Weg, dies zu tun in einer dezentralen Art und Weise, aber da das nicht das, was Sie gefragt, ich nehme an, das ist okay.

Würden Sie brauchen, um eine Firma/Organisation, die Fragen der token und garantiert, dass Sie es wieder kaufen für den Preis, stecken Sie es auf. Zum Beispiel, würden Sie immer tauschen Sie einen token für einen dollar. Dies hätte zu einem rechtlich bindenden Vertrag, so dass, wenn Ihre Organisation immer abgelehnt, um den Austausch, die rate, Inhaber der token wäre eine rechtliche Handhabe gegen Sie. Sie würden auch brauchen, um in der Lage zu beweisen, Ihre Bonität, und damit halten Sie genügend Vermögen in US-Dollar, der Inhaber der Marke kann sich sicher sein, dass Sie den Dollar zu tauschen, wenn es jemals eine führen. Wenn eine Frage Ihrer Zahlungsfähigkeit, die jemals entstanden sind, wird dein token fallen im Wert, so würden Sie zulassen, dass regelmäßige audits Ihrer Organisation asset holdings.

Wahrscheinlich, viel von diesem wahrscheinlich negiert viele der Vorteile, die Sie versuchen, zu suchen, durch die Schaffung einer digitalen Währung in den ersten Platz. Das Vertrauen in Ihr system würde auf der Grundlage der Rechtsordnung und der Regierung, erzwingt das system...nur wie von der Regierung ausgestellten fiat-Währungen. Ihre Organisation würde mehr oder weniger eine bank sein, sondern eine bank, die Probleme seiner eigenen token, und ist daher gesperrt werden, die bestehenden Finanz-Infrastruktur. Sie würde den Bestimmungen unterliegen, und daher nicht in der Lage etwas zu bieten mehr als eine bank hat.

Im Zeitalter der moderne fast alles Geld ist digital. Sie habe im Grunde nur gefragt, wie man eine bank.

+852
slec 01.02.2010, 18:43:10

Sie müssen den privaten Schlüssel nicht den öffentlichen Schlüssel zu tun, ein sweep.

Tatsächlich, es wird einfacher, wenn Sie einfach nur kopiert die wallet-Datei auf das neue system. Wenn Sie Zugriff auf das Elektron gui dann erstellen Sie eine Kopie via Datei - > Kopie speichern. Wenn nicht, dann finden Sie die wallet-Datei und kopieren Sie es über.

+778
Federico Joly 05.09.2016, 10:03:11

Bitcoin client entscheidet, dass der andere client nicht mehr reagiert, wenn Sie es erhält Bericht vom Betriebs-system, dass die Verbindung tot ist.

Bitcoin setzt auf OS-Implementierung von TCP zu senden und zu empfangen Nachrichten. Zum Beispiel, standardmäßig, wenn eine Verbindung wurde bereits hergestellt und Round-Trip-Zeit bekannt ist, wird Windows versuchen, Daten erneut senden-segment fünf mal verdoppeln, warten Sie nach jeder Zeit erneut vor der Meldung-Verbindung wie tot. Damit die gesamte Wartezeit: "Round Trip Time" * 2^(5-1) .

P. S. Timeouts sind unterschiedlich für jede Art von Nachricht, z.B. gesamte Verbindung initiation timeout gleich um 6 Sekunden . TCP/IP-Konfigurations-Parameter

+765
frugi 27.10.2012, 03:59:03

Dies könnte als Ergebnis einer vorherigen ChainDB mit initialisiert wurde unter ~/.bcoin/Kette.ldb/ . Sie finden Informationen in der debug.log-Datei. z.B.

[I:2017-07-17T09:11:47Z] (chaindb) Eröffnung ChainDB... [E:2017-07-17T09:11:47Z] (node) Netzwerk-mismatch für die Kette.

  1. erstellen Sie einen neuen Speicherort für die Kette, z.B. ~/.bcoin/testnet/
  2. kopieren Sie die oben genannten config mit der aktualisierten Präfix gemäß der obigen
  3. ausführen bcoin --prefix ~/.bcoin/testnet/

Standard-Präfix ist "~/.bcoin/", Sie können dies überschreiben, indem Sie das Präfix cli flag

+735
Shreya Golakiya 22.07.2018, 06:11:11

First off, Sie brauchen, um vollen Zugriff auf Ihren server haben, da müssen Sie ausgeführt werden, einen Bitcoin-node (ständig) mit dem Bitcoin-Netzwerk. Also ein einfaches shared-server nicht schneiden es. Sie könnten eine Verbindung zu Ihrer remote-Bitcoin-Knoten. Aber in diesem Fall, brauchen Sie noch einen server laufen, der Knoten.

Der programmer ' s Art:

  1. Installieren Sie und führen Sie einen Bitcoin-Knoten auf Ihrem server. WIE
  2. Lernen, wie man JsonRPC in Ihrer bevorzugten Programmiersprache.
  3. Mit der API Programmieren Sie Ihre eigenen virtuellen Brieftasche.

(im Grunde, wie alle online-wallets mehr oder weniger Funktion)

Die lazy programmer ' s Weg

  1. Installieren Sie und führen Sie einen Bitcoin-Knoten auf Ihrem server.
  2. Verwenden Sie ein Drittanbieter-DIY self-hosted wallet, wie Coinpunk

(Hinweis: wie auf der website angegeben, sind solche Projekte noch sehr beta. Vorsichtig.)

+710
TomUnderhill 12.03.2015, 09:05:00

Dieser Kerl wollte das gleiche zu tun. Finden Sie eine Lösung gibt.

in kurz:

  • Holen Sie sich ein Linux-Rechner/VM mit >=8GB RAM
  • download blockparser
  • kompilieren Sie es
  • führen Sie "./parser allBalances -w 250000 >allBalances.txt"

der parser laufen Sie rund 2 Minuten auf meinem vSphere VM (2x3Ghz Xeon, 16GB RAM)

jetzt haben Sie eine Liste der top-250.000 Adressen, sortiert nach dem BTC Betrag.

fügen Sie einige sed/awk/cut-Magie, um eine csv -, und Sie sind fertig.

+677
user106090 06.08.2019, 12:18:09

Von Ihrer Seite ist, eine ausgehende Transaktion abgeschlossen werden, der moment, den Sie Sie senden. Es ist jedoch die empfangende Partei zu entscheiden, wie viele Bestätigungen, die Sie benötigen, bevor Sie es erhalten. Die übliche Regel ist 3-Bestätigungen.

Ich habe noch nie verwendet, Multibit, also in Bezug auf eingehende Transaktionen, ich habe keine Ahnung.

+649
user26376 16.11.2013, 11:19:41

An welchem Punkt in der Transaktion konnten die Bergleute "sich Eure Münzen"? Ich kann mich irren, aber die Bergleute nur nehmen Sie Ihre Transaktion und setzen Sie Sie in die Blockchain für eine kleine Gebühr. Sie eigentlich nie haben Sie Ihre Münzen, ein Teil der Transaktion geht zu Ihnen. Ich glaube nicht, Sie könnte stehlen Ihre Münzen, wenn Sie wollte.

+635
katyska 10.03.2019, 21:24:44

Wie jeder miner arbeitet heraus, welche nonces es ausprobiert hat, bedeutet es Benachrichtigen Sie das Netzwerk, so dass Energie nicht verschwendet wird, auf re-processing, die gleiche Sache, die von jedem Knoten? Oder ist es völlig konkurrenzfähig mit jeder für sich selbst?

+625
Fernando Ferreira 03.02.2013, 23:34:05

Ich bekam einen bitcoin Gutschein als Geschenk. Ich habe die bitcoins in meiner wallet (Brot). Nun würde ich gerne diejenigen Münzen, die in einem Markt wie eToro oder ähnlich beginnen, indem er etwas von Ihnen. Ich habe noch keinen Weg gefunden, wie das zu tun, so weit. Jede Hilfe wäre sehr willkommen.

+594
LostInTranslation 19.02.2015, 16:11:21

Die 'decoderawtransaction' RPC-Methode der Bitcoin-QT client gibt ein JSON-Objekt mit einem array von Adressen in jedem UTXO. Zum Beispiel, wenn ich ausführen:

decoderawtransaction "01000000010fb72b5d299f095c3d3abc2130f20ce59d0ed08d56b3f247d6ae554f200eb561010000006a473044022073717edfcde0200f8aca33b6ff4f60a4aa84c6692cd1713876d94f3f19013f6d022057610074eef8285082cb9943913040031869cc98bc71642a3dc5e085a19a1805012103f071bc0f54b95e9049ba515f19cbfb647605a9f1d2f002b4e70ec548af5fbf5bffffffff02b02bc37d010000001976a9148037b2fd4114347070236b37f792966ade2bc4a688acd0ce4101000000001976a914336e5078d05a350fb5e6cdf8fc15d826e625423888ac00000000"

Zurück bekomme ich folgenden JSON:

{ 
...
 "vout":[ 
 { 
"value":64.04910000,
"n":0,
 "scriptPubKey":{ 
 "asm":"OP_DUP OP_HASH160 8037b2fd4114347070236b37f792966ade2bc4a6 OP_EQUALVERIFY OP_CHECKSIG",
"hex":"76a9148037b2fd4114347070236b37f792966ade2bc4a688ac",
"reqSigs":1,
"type":"pubkeyhash",
 "Adressen":[ 
"1CgxDbrb9d18DFvQn6DW8ij3c6ARpipehu"
]
}
}
]
...
}

Sie können hier sehen, dass "Adressen" ist ein array. Warum ist das ein array? Kann man UTXO senden an mehrere Adressen? Ich weiß P2SH Adressen bezahlen kann, um eine Adresse, die eingelöst werden können durch die Verwendung von mehreren Adressen, aber ich wundere mich über das senden an mehrere Adressen ohne die Verwendung von P2SH addressses. Was würde das format der scriptSig/scriptPubKey dafür?

Auch, wenn Sie nur die P2SH-Adresse, dann kann man bestimmen, welche die Anforderungen für die Einlösung von dieser Adresse sind?

Danke!

+589
Henrik Falk 06.02.2018, 20:12:15

Wie Sie sagen, ist das Ergebnis von sha256 ist eine hexadezimale Zeichenfolge. Hexadezimal verwendet nur die Ziffern 0-9 und a-f, also 16 Möglichkeiten, nicht 36.

Wenn Sie wiederholen Ihre Berechnung mit 16^18 statt 36^18 ist, erhalten Sie eine Durchschnittliche Zeit von rund 3600 Sekunden oder 1 Stunde.

+585
Brad Pitt 23.05.2017, 16:27:37

Sie benötigen zur Installation eines bitcoin-voller Knoten, dann erstellen Sie ein Programm zum Scannen mit neuesten block zum ersten block werden alle nicht benutzten Ausgänge und im Gedächtnis behalten, vielleicht in so etwas wie Redis, den status der Salden mit den Adressen, bis Sie die 1 Millionen, die Sie suchen

+575
Jazzy20 06.09.2017, 11:20:04

Könnte jemand erraten, auf die die meisten wahrscheinlich aktuellen Bitcoin Eigentum Verteilung? Sind die meisten bitcoins noch im Besitz von (frühen?) Bergbau-Enthusiasten, die darauf warten, dass der Preis sogar noch höher gehen?

+570
rakib islam 27.06.2014, 15:04:08

Ich bin auf der Suche nach Beispiel getwork-Eingang und-Ausgang für eine erfolgreiche block-hash zu überprüfen, ein getwork-client habe ich umgesetzt.

Ich würde auch annehmen Vorschläge über bessere Möglichkeiten, dies zu überprüfen. Ich habe TestNet aber dies scheint ein langwieriger Prozess sein wird.

+548
Kabrelle Smith 16.04.2018, 06:47:34

Sie können nicht konvertieren der json-string in hex-Darstellung. Transaktionen haben Ihre eigenen binären format (Lesen Sie bei wiki: https://en.bitcoin.it/wiki/Transactions). Erstellen Transaktion im hex-format verwenden, können Sie bitcoin-qt (oder bitcoind) - Funktion createrawtransaction. Beispiel für die Verwendung:

createrawtransaction
'[
 { "txid": "10d5b7f61be2fa2e5979043a7071d3dbd371bc72cefea22e43b2dd54a6e27a99", "vout": 1 }
]'
'{
 "14rbFswzZfkPGkbFZ7Ffj2qhQA1omvgiux": 0.099
}'

Dieser Aufruf zurück rohe Transaktion im hex:

0100000001997ae2a654ddb2432ea2fece72bc71d3dbd371703a0479592efae21bf6b7d5100100000000ffffffff01e00f9700000000001976a9142a495afa8b8147ec2f01713b18693cb0a85743b288ac00000000

Danach müssen Sie signrawtransaction:

signrawtransaction 0100000001997ae2a654ddb2432ea2fece72bc71d3dbd371703a0479592efae21bf6b7d5100100000000ffffffff01e00f9700000000001976a9142a495afa8b8147ec2f01713b18693cb0a85743b288ac00000000

Dieser Aufruf zurück rohe Transaktion im hex, die Sie senden können, um Netzwerk mit sendrawtransaction.

Hinweis: seien Sie sehr vorsichtig, Sie können Fehler machen, in Menge, und verlieren Ihre bitcoins.

+546
nastasia101195 10.09.2015, 09:48:24

Wenn Sie check out https://bitcoin.org/en/downloadSie werden sehen, dass einige links unterhalb der download-button: 'Bitcoin-Core-Release-Signing-Schlüssel'

+510
Maria Francis 03.12.2015, 22:54:41

Die Standard-Daten-Lage von bitcoind ist ~/.Bitcoin auf unix-und %APPDATA%\Bitcoin auf windows. In es, bitcoind schreiben wird eine debug.log-Datei, die automatisch getrimmt jeder einmal in eine Weile. Ich bin mir nicht sicher, was in ihm ist, aber es sollte sein einfach um das zu überprüfen. Sie können auch starten, bitcoind mit Kommandozeilen-parameter zu senden sind debugging-Informationen nach stdout, wenn Sie es wünschen.

+506
Sevki 16.01.2015, 12:38:24

Ich kaufte vor kurzem ein paar Bitcoins(etwa 0,5) und schickte zu einem Freund. Er bekam Sie direkt. Heute wollte ich einige mehr, aber es hat nicht funktioniert. Jede Transaktion war ein Fehler, neben einem sehr kleinen(0.001 BTC). Alle Geschäfte sind markiert mit einem questionmark, Sie sind also nicht bestätigt, aus welchem Grund auch immer. Nachdem ich neu gestartet, meine bitcoin-client werden die meisten Transaktionen wurden markiert mit einem Ausrufezeichen. Ich habe keine Ahnung, warum ich kann nicht senden Sie Geld mehr. Irgendjemand ähnliche Probleme und habe eine Lösung?

Danke!!!

Hier ist ein screenshot, btw: enter image description here

+487
Fatimultik 02.12.2012, 04:23:37
  1. Bergleute können wählen, welche Transaktionen, die Sie einschließen möchten, in einen block, solange Sie gültig sind, aber dazu kann es erforderlich sein, mithilfe von custom-software. So weit ich bewusst bin, ist die Bitcoin Core-software wählt Transaktionen nach höchsten zahlenden Gebühr ersten.

  2. Nein. Die hash-rate wird bestimmt durch spezielle hardware (ASICs), die nicht durchführen Transaktion überprüfung. Von der hardware nicht helfen mit der Validierung von Transaktionen, da würde es länger dauern, um die Informationen zu übertragen, um diese hardware, als führen Sie einfach den Hash auf der CPU. Den Großteil der Zeit in die Validierung von Transaktionen entfallen auf die überprüfung der Signatur sowieso, was die ASICs nicht tun (obwohl es möglich wäre, einen zu bauen, der für diesen speziellen Zweck).

    Die mining-ASICs sind vor allem effizienter als der Bergbau auf der CPU ist, weil Sie ausführen, den hash-Algorithmus auf die gleichen Daten mehrmals, nur intern die Aktualisierung einer Zufallszahl für jede hash-Versuch und der Neuberechnung der merkle root.

  3. Bergleute überprüfen Sie alle Transaktionen, wie Sie kommen aus dem Netzwerk wie jedes andere Netzwerk-Teilnehmer. Ihre bitcoin-Knoten halten, eingehende Transaktionen im mempool, und die mining-software fordert Sie zu einem block Vorlage in regelmäßigen Abständen, die alle von den Transaktionen, die in dem block. In einem mining-pool, der pool-Betreiber erstellt den block-template und die Arbeit der Bergleute, die aus der Vorlage, und die überprüfung selbst, es ist optional.

  4. Das ist ein Recht Komplexes Thema, da jeder einzelne Aspekt einer Transaktion zu validieren, und die ganzen details sind nicht in einem Dokument definiert, sondern durch die Referenz-Implementierung (der satoshi-client / bitcoin core).

    Die wichtigsten details sind:

    • Alle Eingänge zu einer Transaktion geprüft werden, unverbrauchten
    • Die Summe der outputmengen ist weniger als die Summe der eingegebenen Beträge (mit dem Unterschied, dass die Transaktion Gebühr).
    • Für jede Transaktion Eingang, der scriptSig aus, dass Eingabe drückte auf einen Stapel, dann die scriptPubKey von der passenden Transaktion outpoint ist, wird beurteilt, dass der Stapel. Das Skript zu true ausgewertet werden müssen, damit die Transaktion gültig ist. Die scriptSig wird in der Regel enthalten einen öffentlichen Schlüssel und eine Signatur, und die scriptPubKey wird in der Regel führen Sie eine OP_CHECKSIG, die tests, dass die SHA-256 der gesamten Transaktion wurde unterzeichnet von den privaten Schlüssel passenden öffentlichen Schlüssel. (Dies selbst ist sehr nuanciert, weil die Transaktion muss entfernt werden, der Unterschrift, bevor es signiert oder validiert).

Es gibt viele Feinheiten, um die Validierung von Transaktionen, die meist beantwortet vorhandene Fragen hier, erklärte auf der bitcoin wiki oder in der Grenzkontrollstellen.

+479
user2773549 05.04.2019, 19:23:33

Zitat Andreas Antonopulous:

Sie betreiben ein vegetarisches restaurant nur und wenn Sie es ändern, um eine nur-Veganes restaurant, dann sind Sie weich Gabelung es, wenn Sie es ändern, um Fleisch Sie sind schwer Gabelung es

https://www.youtube.com/watch?v=rpeceXY1QBM

+426
Wally Altman 22.04.2017, 14:49:19

Wie bereits erwähnt in den Kommentaren, die 51% - Attacke lässt nicht zu, dass Sie gefälschte Transaktionen. Nehmen Sie Kontrolle über was wird in die blockchain von dem moment an, die Attacke wird realisiert.

Als für die Verwirklichung der Angriff, den aktuellen Bitcoin hashing-power ist über 60,000 TH/s.

Jetzt, effizienteren mining-rigs Kosten mindestens 2.000 $/TH/s. Also einfach immer alle, dass Bergbau Kraft Kosten würde, die NSA, oder einem ähnlich leistungsstarken Schauspieler, über $120M. Das ist vorausgesetzt, dass so viele Bergleute können tatsächlich bezogen werden, was sehr zweifelhaft an der aktuellen Produktionsmenge.

Dann müssten Sie Faktor in all den Aufträgen, die Zeit, die es dauert, bis-setup-Vorgänge an, die Skala und die irrsinnig Stromrechnung. Es ist also wahrscheinlich eine 2-3 Jahre Projekt mit einem halb-Milliarden-Dollar-Preis angebracht.

Und was wäre dann der NSA Motiv? Der dollar ist eigentlich ganz gut jetzt und die US-Regierung kontrollieren kann Bitcoin nur so gut ist, dass Sie so tun wollen.

+423
iambriansreed 29.03.2019, 04:31:21

Ich bin reproduzieren Figuren 2 und 3 aus dem Papier unten, um eine alternative interpretation.

Abb 2:

Bitcoin block header organization

Abb 3:

enter image description here

Historisch, Bergbau besteht aus einer inneren Schleife (rot) und eine äußere Schleife (grün). Jedem Durchgang der inneren Schleife, die nonce wird erhöht. Dies betrifft nur 2 Stück und dazu führt, dass alle Blöcke in rot neu bewertet werden. Sie können dies nur tun, 4 Milliarden mal (2^32), bevor Sie beginnen, erstellen von duplizierten Ergebnissen. An diesem Punkt wird die äußere Schleife wird das layout der block-Daten, um eine neue zufällige merkle root-Feld, und Sie wiederholen Sie.

In dieser Implementierung müssen Sie tun 4 großen Operationen für jede innere Schleife. Beim Wechsel der merkle root als Teil der äußeren Schleife, die Sie zu tun haben, eine zusätzliche 2 große Operationen (in grün) auf der Oberseite des normalen 4. Allerdings, der Autor von AsicBoost bemerkt, dass, wenn die änderung der merkle root Wert, es gibt eine 1:2^32 die chance, dass die Inhalte der Brocken 2 nicht ändern, in dem Fall die Ausgabe von Stück 2 expander nicht ändern können, so können wir überspringen, wiederholen, dass die Berechnung.

Der Schlüssel an dieser Stelle ist der Geburtstag Problem. Bevor wir beginnen mining einen block, den wir berechnen können mehrere beliebige merkle Wurzeln finden und Kollisionen (also mehrere merkle Wurzeln, die die gleichen letzten 4 bytes, oder "tail"), ohne dass bewerten irgendwo in der Nähe von 2^32 merkle Wurzeln. Darüber hinaus vorausberechnen den Wert mit der Bezeichnung "Mitte-Staat" im Zusammenhang mit jeder dieser verschiedenen merkle Wurzeln.

Schließlich, dies ermöglicht uns einen alternativen Weg, um ein neues zu verdauen , ohne Erhöhung der nonce: verwenden Sie die aktuelle Chunk-2-Wert, und wählen Sie eine neue merkle Wurzel, kollidiert mit dem Schwanz gerade in Verwendung und Aktualisierung des "mittleren Zustand" mit dem Wert zugeordnet ist, dass merkle root (was wir berechneten vorher). Dann neu zu bewerten, alle roten Blöcke außer für den Expander befestigt Chunk 2, da haben wir nicht verändert Brocken 2 ist-Wert - das ist nur drei große Operationen statt der üblichen vier.

Beispiel

Lassen Sie uns sagen, dass wir gefunden 3 merkle Wurzeln, die alle den gleichen Schwanz und vorausberechnete Ihre zugehörigen mittleren Staaten (A, B, C). Unsere mining-Schleife sieht wie folgt aus:

  1. Set nonce=0, midstate=A (4 Operationen).
  2. Set midstate=B (3 Operationen).
  3. Set midstate=C (3 Operationen).
  4. Set nonce=1, midstate=A (4 Operationen).
  5. Set midstate=B (3 Operationen).
  6. ... Und so weiter.

Jedes merkle root-Kollision, die Sie vorausberechnen spart man 2^32 Erweitern Sie Operationen, da Sie wiederverwenden können es über alle 2^32 nonces. Da der Geburtstag problem, die Kosten precompute diesen Kollisionen wird in weniger als 2^32 pro Kollision, so kann es ein Netto-Gewinn.

In der Praxis werden Sie am Ende mit mehreren, nicht zusammenhängenden Sätze von kollidierenden merkle Wurzeln, anstatt nur die 1 gesetzt, die hier gezeigt werden. So könnten Sie radeln durch {A, B, C}, dann {D, E, F}, und der Wechsel von C nach D kostet der normale 4 Operationen, weil der Schwanz hat sich geändert. Oder Sie füttern jedes disjunkt eine unterschiedliche Kern - /chip-der Bergmann.

+396
Harsha pps 15.07.2019, 23:10:57

Die Sache zu erinnern ist hier, dass ein Bitcoin ist gültig, wenn Leute denken, dass es gültig ist (d.h. der ist bereit, es zu akzeptieren als Zahlung). Wenn Sie mir einen block, erhalten Sie Münzen, egal wo der block der blockchain (auch wenn Sie die Gabel in ein block-Struktur). Allerdings werden diese Münzen, die Sie gerade geprägt sind nur interessant für Leute, die denken, Sie sind wertvoll. Bitcoin ist eine Allgemeine Regel, sollte man überlegen, die längste blockchain (oder, genauer gesagt, den höchsten Schwierigkeitsgrad der blockchain), die besten zu sein.

Wenn Sie versucht haben, einen fork der blockchain durch den Abbau Ihrer eigenen block aus der Mitte der Kette, anstatt das Ende, Sie würden mir Münzen, finden es aber schwer, wirklich Ihnen zu verbringen. Nur wenige Menschen (wenn überhaupt) wäre bereit zu akzeptieren, Ihre Münzen als Zahlungsmittel, weil es eine viel längere blockchain gibt (die Haupt-block-Kette), so ist es höchst unwahrscheinlich, dass Ihre Münzen werden als sinnvoll erkannt zart.

Hinzu kommt, dass der proof of work für bitcoin nicht nutzen, in irgendeiner Art und Weise aus teilweise arbeiten. Wenn Sie 99.9999999999% der Weg zum mining einen block und jemand kündigt einen block, bevor Sie dort ankommen, ist es immer noch in Ihrem besten Interesse, um mit der Förderung beginnen aus Ihren block sofort, weil es 0 Vorteil weiter zu mir Ihr alten block, und viele Nachteile. In der Tat, Sie weiß gar nicht, wie nah Sie zu Bergbau einen block, aufgrund der Zufälligkeit des Prozesses.

(Zumindest gilt dies unter der Annahme, alle Blöcke sind gleich viel Wert. Wenn, aus irgendeinem Grund, eine einzelne Transaktion hatte einige massive Gebühren auf Sie (sagen wir, 1000BTC), und jemand anderes gerade geschnappt, könnte es einen Versuch Wert, um zu beenden mining-die blockieren sich selbst und kämpfen Sie für diesen block. Sie würde jedoch der Kampf ein harter Kampf, da Sie es angekündigt erste. Aber das sind Grenzfälle)

+380
Poluraspad 19.12.2014, 08:50:04

Wenn ein miner gehören eine schlechte Transaktion (in deinem Beispiel eine person, die Sie senden mehr BTC als Sie tatsächlich haben), dann wird der block nicht concidered gültig von anderen bitcoin-nodes und Miner. Das bedeutet, der block wird nicht gebaut werden, die auf die blockchain, und die miner verlieren heraus auf die 50 BTC generiert aus diesem block.

+343
Imran Butt 20.03.2014, 10:10:46

Ich kläre Ihre Frage aus einem höheren level, aber ich hoffe, meine Antwort ist erhellend.

Es scheint, dass viel von Ihrem denken ordnet die Eröffnung einer LN-Kanal auf irgendeine Art von Allgemeinen Zahlung situation, zum Beispiel: "ich Zahlungen an das Versorgungsunternehmen, so brauche ich um zu öffnen ein Kanal mit Ihnen".

Eine wichtige Funktion von LN, ist, dass es in der Lage ist, zum weiterleiten von Zahlungen durch das Netzwerk, d.h. ein Teilnehmer muss nicht einen direkten Kanal mit Ihren Kontrahenten. Also als user, sollte ich nur wirklich kümmert, "was ist meine Fähigkeit zu machen und zu akzeptieren Zahlungen auf die LN?". In einem stark verbundenen Netzwerk, ist es nicht eigentlich egal , die hab ich geöffnet, ein Kanal mit, ist es einfach Dinge, die meine Mittel zur Verfügung stehen.

...wie würde ich über das senden einer Zahlung an einen hypothetischen (mythischen?) Schneide-utility-Unternehmen

Jeden Monat, müssen Sie genug zu verbringen Kapazität auf der LN, um die Bezahlung vorzunehmen (und die Energieversorger müssten genug annahmeleistung). Sie sind sowohl Anreiz zur Erhaltung dieser jeweiligen Kapazitäten, und es ist erwähnenswert, dass das öffnen eines Kanals direkt zwischen einander helfen, dies zu tun (aber es ist nicht der einzige Weg).

...wenn man erklären kann, was mit der gemeinsamen 'Alice und Bob beide fügen Sie 1/2 BTC zu einem Kanal,' Beispiel. Ich kann nicht verstehen, was die Reale Welt-Transaktion Modell, dass darstellen soll.

In Anbetracht dessen, was ich oben gesagt, dieses Beispiel ist einfach eine wirtschaftliche Verwendung von block-space. Alice und Bob würden beide gerne gewinnen, 0.5 BTC zu verbringen Kapazität auf dem Netz, und arbeiten zusammen, um öffnen Sie einen Kanal, werden Sie auch beide gewinnen, 0.5 BTC zu empfangen Kapazität. Ihr Ziel ist nicht unbedingt Geld ausgeben, um Geld hin und her zwischen sich selbst, ist es nur um die finanziellen Mittel für das Netzwerk.

Es scheint, dass die Erwartung ist, dass es einen Vermittler, dass ich immer eine große Menge von Mitteln, und ich würde dann an diesem zentralen Kanal wie ein hub... stimmt das?

Ich glaube nicht, dass das unbedingt wahr ist, aber ich denke, es ist einfacher, sich die Funktion eines hub als der einer stark vernetzten Graphen. Das Netzwerk ist noch jung und die einzige wirkliche Möglichkeit, um zu Messen die Topografie wird, um es wachsen zu sehen und zu entwickeln.

+321
Muriel Katz 27.06.2017, 00:52:27

Die timejacking Angriff zu sein scheint, eine ziemlich einfache Angriff zu ziehen aus erfolgreich. Ich Frage mich, ob es war jemals durchgeführt und dokumentiert irgendwo, oder war es nur theoretisch beschrieben?

+314
bunty 08.04.2010, 05:44:35

Was du suchst ist in der lib\transactions.js Datei. Linie 210 bis 215.

 var transformiert = {
 txid: Transaktion.txid(),
 valueOut: valueOut / 1e8,
 vout: vout,
 isRBF: isRBF,
};

Ich nahm einen kurzen Blick, vout ist ein array und isRBS ist ein boolescher Wert.

Ehrlich gesagt, ich weiß nicht, warum "verarbeitet" wird in der Dokumentation Beispiel. Ich könnte es übersehen haben, oder vielleicht, könnte es sich um ein lokales erzeugten string.

+277
sigs 16.09.2013, 06:08:27

Als pro meinen Kommentar, ich werde jedenfalls versuchen, eine kurze, Allgemeine Antwort: @Preet hat schon gute Infos gegeben. Also das bitcoin-Netzwerk besteht aus Minern (was auch ein voller Knoten), und Tausende von full-nodes nicht ausgeführt-mining-software. Die Kumpels haben eine und nur eine Aufgabe, um sicherzustellen, dass gültige Transaktionen sind zusammengefasst in einem neuen block. Wenn der block wird dann an das Netzwerk gesendet, jeder voller Knoten dieser block überprüft, um sicherzustellen, dass der miner wurde nicht Fehlverhalten (sofern eine fehlerhafte tx).

Die volle Knoten prüfen, ob der block und jedes tx-innen, basierend auf diesen Regeln. Sie können auch Lesen Sie über die Protokoll-Regeln, die in dieser Webseite. Diese zweite Reihe von Prüfungen, die von der full-nodes erforderlich ist, für Kontinuität. Zwei Gründe kommen mir in den Sinn: als Händler, ich will wissen, dass es nur gültig tx in der blockchain, und wenn ein miner sendet falsche Blöcke, es ist die IP-Adresse wird Hinzugefügt, um die Liste der Fehlverhalten der Gastgeber, und schließlich verboten werden (keine weitere tx an diese host). Wenn ein Fehlverhalten der miner nicht erhalten tx, er ist aus dem Geschäft, verliert alle seine investieren in mining hardware.

Dies ist eines der wichtigsten Dinge zu verstehen, in der bitcoin-Konzept: es ist mehr nützlich, um das Spiel zu spielen, als zu versuchen, um zu spielen gegen das system.

+245
emsr 05.06.2015, 10:54:13

Ich habe vier Fragen über die general mining bitcoin in der cloud.

  1. Ich habe eine unbegrenzte Bandbreite von web-hosting . Kann ich bitcoin mining mit web-host ? (meine web-host-Unterstützung : CGI, PHP, ASP.NET, SSI, FrontPage Extensions, Perl, Python, Ruby)

  2. Kann ich bitcoin mining in heroku oder google app engine oder amazon aws ?

+195
Aaron Burke 07.03.2016, 10:31:47

Wir bieten 3 Einzahlung Methoden für Benutzer in Großbritannien:

Schnellere Zahlungen - https://blockchain.info/wallet/deposit-bank-transfer

PingIt - https://blockchain.info/wallet/deposit-pingit

Sofortüberweisung - https://blockchain.info/wallet/deposit-sofort-banking

+183
Greg Gomez 11.06.2013, 07:27:06

Sind Sie die überprüfung der Transaktion auf einem BTC oder BCH-explorer ?

Haben Sie zu fegen, mit dem privaten Schlüssel (der Papier-Brieftasche) in eine bitcoin-cash-wallet.

Ich verwendet Coinomi auf Android (achten Sie darauf, Bitcoincash) mit Erfolg.

+173
Sann Manurith 10.07.2019, 20:51:09

Ich war in der bitcoin-community im Jahr 2011. Es scheint ziemlich sicher und hat eine Menge von Menschen auf der Suche hinein. Ich denke, einer der wichtigsten Wachstumsschmerzen eine crypto ist, dass es durch den wachsenden Stufen. Mit den vielen Abstürzen und hacks, die Bitcoins haben bekommen durch, es scheint, es ist hier zu bleiben.

+112
developeralways 29.09.2015, 12:28:56

Ja.

Nach den Ausgaben multisig Transaktion wird auf der blockchain (nicht die Finanzierung der Transaktion), können Sie den öffentlichen Schlüssel verwendet, um zu verbringen diese multisig-Fonds.

Diese öffentlichen Schlüssel sind in der vollen redeemScript in den Ausgaben der Transaktion. Finden Sie eine Aufschlüsselung der eine multisig Ausgaben transaction hier, was zeigt, dass ein redeemScript ist in der Tat enthalten in der Ausgaben-Transaktion. Finden Sie eine Aufschlüsselung der volle redeemScript hier, die zeigt, dass der öffentliche Schlüssel enthalten sind in diesem voll redeemScript.

Lassen Sie mich klarstellen, dass die öffentlichen Schlüssel sind nicht zu sehen in der Finanzierung der Transaktion, da nur die redeemScript hash offenbart sich hier, nicht die volle einlösen Skript.

Hinweis: In der Erklärung oben, ich nehme an, Sie reden über die Zahlen, um die Skript-Hash (P2SH) form-multisig, was die häufiger und moderne form der multisig. Die Antwort auf Ihre Frage wäre immer noch ja für einen nicht-P2SH multisig Transaktion, mit der Ausnahme, daß der öffentliche Schlüssel sichtbar in der Finanzierung der Transaktion, anstatt die Ausgaben Transaktion. Die öffentlichen Schlüssel sind, die uns in der scriptPubKey der Finanzierung der Transaktion, die wie folgt aussieht:

<m> <A pubkey> [B pubkey] [C pubkey...] <n> OP_CHECKMULTISIG

Quelle: https://bitcoin.org/en/developer-guide#multisig

+39
Mike Perez 28.08.2015, 08:44:23

Lesen Sie Ihre Frage, ich vermute die Ursache für deine Verwirrung ist etwa die Einstellung , in der Merkle Bäume verwendet werden. Ich glaube, Sie haben Recht, dass in der Bitcoin-Welt, die Einstellung ist selbstverständlich und wird meist nicht deutlich erklärt.

Hier ist meine zwei Cent. Um zu verstehen, die Effizienz Aspekt der Merkle Bäume, erwägen die beiden Parteien, die tatsächlich daran beteiligt sind, dem Protokoll:

  1. Eine Bitcoin - voller Knoten , der hat voll blockiert.
  2. Ein Bitcoin dünnen Knoten , wer hat die Header, sondern will, um zu überprüfen, dass eine Transaktion in einem der vollen Blöcken.
  3. (Es kann sein, erwähnenswert, dass die aktuellen Bitcoin-Protokoll nicht erlauben, einen dünnen Knoten effizient stellen Sie sicher, dass eine Transaktion nicht in die Blöcke.)

Erste, daran erinnern, dass beim Empfang einer neuen block B mit block-header H und Transaktionen T, die voller Knoten macht das folgende:

  1. berechnet h = SHA256(H), überprüft die proof-of-Arbeit in h und prüft die Zeitstempel in Husw.
  2. für jede Transaktion t \in T, stellt t's Unterschrift(en), prüft t nicht doppelt ausgeben, und fügt t als die am weitesten rechts liegenden Blatt des aktuellen Blocks, Merkle-Baum. (Daran erinnern, dass eine andere Merkle-Baum berechnet, für jeden block. Natürlich anfügen, die Transaktion geschieht in einer kanonischen Reihenfolge, so erhalten Sie die gleichen root-hash wie in die block-header H.)
  3. nachdem alle t \in T überprüft wurden und angefügt wird, berechnet und speichert das Merkle-Baum, natürlich-computing-alle inneren Knoten hashes und der root-hash - r (wie dargestellt, in Ihrem Merkle-Baum Abbildung).
  4. Entscheidend ist, überprüft, ob die berechnete root-hash - r entspricht dem root-hash in die block-header H.

Moral von der Geschichte: ja, Sie haben Recht, dass zu beweisen, die Mitgliedschaft in einem Blatt mit Bezug auf ein Merkle Wurzel r, der Gärschrank (in diesem Fall die volle node) muss den inneren Knoten hashes: er kann cache Sie neu berechnen, oder Sie (es gibt einige Literatur über die trade-offs hier). (Glaube ich) Bitcoin voller Knoten einfach cache alle hashes, wie oben in Schritt 3. Wichtiger ist, das innere hashes sind nicht Teil der 1MB-block B: es wäre eine Verschwendung von Speicherplatz, da voll den Knoten können Sie einfach berechnen Sie aus den Blättern (d.h., die TXNs) und passen Sie die neu root-hash mit dem in der block-header. Beachten Sie, dass dies verhindert, dass Netzwerk-Gegnern von der Manipulation der Transaktionen.

Zweitens, daran erinnern, dass beim Empfang einer neuen block-header H, einem dünnen Knoten, die nicht einfach Schritt (1) von oben.

Nun, hier ist die Einstellung in Bitcoin:

  1. Die voller Knoten hat alle Blöcke, einschließlich der inneren Knoten hashes berechnet in Schritt 3 oben.
  2. Die dünnen Knoten werden alle block-Header. Daran erinnern, dass jeder header enthält die Merkle root.
  3. Die full node überzeugen will, die dünnen Knoten, der manche Transaktion t ist in einigen block B mit block-header H (was natürlich die dünnen Knoten hat)

These: Merkle-Bäume erlauben die volle Knoten zu überzeugen, die dünner Knoten dieses effizient, verhindert die volle Knoten aus wechselnden t in t' (die es erlauben würde, eine vollständige Knoten trick einem dünnen Knoten zu denken, es bezahlt bekommen).

Beweis: Lassen r bezeichnen die Merkle Wurzel in H. Die dünnen Knoten hat, die gleichen H - und r -. Die volle Knoten die inneren Knoten "unter" r - Cache (recall-Schritt 3 aus der vollständigen Knoten). Die volle Knoten holt sich die (bereits im Cache) Geschwister-Pfad , beginnend am Blatt mit der Transaktion t und gehen den ganzen Weg bis zu der Wurzel r, indem er Sie an den dünnen Knoten. Die dünnen Knoten rekursiv hashes bis t mit der erhaltenen Geschwister, die Erlangung einer root-hash - r" (hand-waving hier, vorausgesetzt, Sie verstehen Merkle Beweise). Die dünnen Knoten überprüft, dass r == r'.

Effizienz: Die vollständigen Knoten (d.h., Gärschrank) nur zu senden, O(\log{n}) Geschwister, die in einem Merkle-Baum, der n Blätter an den dünnen Knoten (D. H., der Prüfstelle), die hat nur ein 256-bit-root-hash - r. (Natürlich, der Gärschrank haben muss, um alle Blätter und alle inneren Knoten, wie zuvor beschrieben.)

Natürlich, dieses Protokoll garantiert den vollen Knoten kann nicht "Lügen" über jede Transaktion "unter" root r. Informell, wenn eine Transaktion ist es, die voller Knoten nicht ändern, um eine andere Transaktion und Schmieden einen Beweis (d.h., ein Geschwister-Pfad). Auch informell, wenn eine Transaktion, die gar nicht da sind, die voller Knoten nicht fälschen, ein Beweis für es da zu sein.

Ihre Fragen beantworten:

Frage scheint zu sein, etwa wie die Mitgliedschaft in einer Transaktion t funktioniert. Sie sagen,

Um dies zu tun, würden Sie nicht einfach schauen Sie die Liste von Blatt-hashes, um zu bestimmen, ob H(D) gibt es? Warum alles mit der Merkle root?

Ich denke, Sie verkennen die Einstellung. Beachten Sie, dass bei der Diskussion über kryptographische Protokolle, es ist durchaus notwendig, auf die Parteien nach Namen, sondern als die Verwendung von mehrdeutigen Pronomen wie "du" und "I." "Gärschrank" und "verifier" können Sie lapidar und langweilig, aber präzise.

Die dünnen Knoten kann nicht "schauen Sie sich nur die Liste der Blatt-hashes", denn es ist nur der root-hash und keine Blätter , sondern will sicher sein, dass ein Blatt da ist. Der full-nodes senden Sie die dünnen Knoten alle die Blätter und die dünnen Knoten-hash-Sie erhalten die gleichen root-hash. Aber das wäre ineffizient: O(n) Bandbreite für n blš Attern. Im Gegensatz dazu, ein Merkle Beweis für ein Blatt unter einem root-hash ist viel effizienter: nur O(\log{n}) hashes + das Blatt selbst.

Frage B beantwortet werden sollten: der volle Knoten hat alle inneren Knoten hashes. Es sendet die Geschwister Weg, um die dünnen Knoten, die einfach rekursiv-hashes aus dem Blatt geprüft. Die dünnen Knoten überprüft, ob der root erhalten Sie entspricht der Wurzel in die block-header.

Frage C:

Hat Bitcoin bestehen der Merkle-tree hashes für die nicht nur die Endknoten, sondern für den gesamten Baum den ganzen Weg zum root?

Nicht in den Blöcken selbst: es wäre eine Verschwendung von Speicherplatz wie zuvor erwähnt. Full-nodes berechnen Sie die innen-hashes und den root hash und cache alles lokal auf der Festplatte (vermutlich, ich habe nicht wirklich sah den source code). Dann, Sie bereit sind zu dienen, Beweise für jede Transaktion in jedem block zu jedem dünnen Knoten.

Wo genau und wie genau speichert er diese Informationen? Alles, was ich jemals sehen, ist die Merkle Wurzel in den block...

Vermutlich auf der Festplatte in die Datenbank des vollen Knoten. Aber nicht in den block: Sie sind redundante info, weil Blöcke enthält Blätter => berechnen von hashes inneren Knoten und den Wurzelknoten.

Ich glaube, einmal sah ich ein Merkle-Wert für eine Transaktion ein Knoten, aber nie sah ich keine meta-Daten in Bezug auf nicht-Baum, Merkle-Knoten im Bitcoin-blockchain...

Ugh, ich möchte sagen, "ja, denn es wäre eine Verschwendung von Speicherplatz zum speichern von inneren Knoten hashes in die Blöcke." aber das Lesen näher ich weiß wirklich nicht, was du meinst mit "Merkle-Wert für eine Transaktion-Knoten" und "Metadaten für nicht-Baum, Merkle-Knoten."

Hoffe, das hilft!

+16
JudgeArt 21.06.2010, 13:46:49

Fragen mit Tag anzeigen