Wenn die Bergleute arbeiten auf Ihren block, jeder block haben die gleichen Transaktionen in Ihnen?

Auf dem Bitcoin-Wiki Seite über Blöcke, es sagt, dass "Bitcoin-Transaktionen werden als broadcast an das Netzwerk durch den Absender, und alle Kollegen versuchen zu lösen, Blöcke zu sammeln, die Aufzeichnungen von Transaktionen und fügen Sie Sie auf den block, Sie arbeiten, zu lösen.".

Ja, haben alle peers die gleichen Transaktionen in Ihre Blöcke zu allen Zeiten?

+485
Yusuf Kamil AK 24.06.2015, 12:18:54
27 Antworten

Ich bin interessiert, lernen mehr über, wie die bitcoin, mining und blockchain-Technologie arbeiten. Ich bin ein student und don ' T haben einen starken hintergrund in der informatik, und ich bin auf der Suche für ein Laien-Erklärung, die ein paar grundlegende, aber kritische Fragen um die Währung und die Technik dahinter. Ich Plane auf den Austausch der Ergebnisse mit anderen interessierten Studenten, die verstehen möchten, mehr über dieses wichtige Konzept.

  1. Bergleute erhält 25 Bitcoins jedes mal, wenn Sie erstellen einen hash (ist das korrekt?)- wo sind die Münzen, die Sie erhalten, kommen aus - sind Sie hergestellt oder gibt es den schon irgendwo??? Was ich versuche zu verstehen ist, wie die Lieferung von Währung verpasst - gibt es eine Feste Anzahl an Bitcoins in der Existenz, oder ist Währung einfach "erstellt", wenn ein miner updates die blockchain? Wie die Zeit vergeht, wird die Geldmenge erweitern Sie mit einer bestimmten rate in etwa gleich dem Wachstum der Transaktionen - ist diese Art von wie, wie die Lieferung von fiat-Geld in den meisten Volkswirtschaften hat im Laufe der Zeit gewachsen?

  2. Gibt es eine einzige für Bitcoin blockchain, die enthält eine Aufzeichnung aller Transaktionen, die seit der ersten Transaktion? Wenn dem so ist, bedeutet das, dass die Kette wird einfach immer länger und länger, da mehr Transaktionen werden erfasst? Wenn Bitcoin steigt in der Nutzung und Popularität, nicht die blockchain weiter wachsen (vielleicht exponentiell) und hinzufügen, dass die Komplexität des Bergmanns Aufgabe?

  3. Dies kann zu Komplex zu erklären, um eine Durchschnittliche person wie mich, aber wie Transaktionen tatsächlich codiert/Hinzugefügt, um die blockchain? Ich weiß, dass es erfordert eine brute-force-Rechenleistung und ist Grundlage der Kryptographie, aber das ist wirklich der Umfang von meinem wissen... Wenn ich übertragen wollen 100 Münzen zu meinem Freund, dass einfache Transaktion erfasst werden muss irgendwie und übersetzt in der Kette - aber, wie ist diese übersetzung durchgeführt? Gibt es eine sich ständig ändernde Schlüssel werden iterativ gelöst, indem die Bergleute? Wenn eine person waren, zu "schauen" in die blockchain (ich nehme an das ist möglich) - was würde es Aussehen, nur eine scheinbar zufällige Sammlung von Zeichen?

Ich werde dort zu stoppen, wie ich bin sicher, es gibt keine einfachen Antworten auf diese Fragen, und ich bin sicher, ich habe missbraucht/missverstanden Terminologie und wie diese Dinge eigentlich funktionieren. Vielen Dank an alle, die Lesen meine Frage, und besonderen Dank an jeden, der bereit ist, zu beantworten, eine oder mehrere meiner Fragen. Wenn es ein besseres forum für mich posten Anfänger Fragen, wie die oben, ich würde sicherlich gerne wissen, dass, wie gut.

+879
Slaviks 03 февр. '09 в 4:24

Ich weiß, dass es mehrere Marken von hardware-wallets mit open-source-firmware, die als sicher angesehen werden. Ist es besser, nur eine, die sicher ist und Sie am besten vertraut sind? Oder würde die Absicherung durch die Speicherung Münzen in mehrere wallets Sinn machen, nur für den Fall einige exploit gefunden wird, in der Zukunft?

+846
Jessica DeLozier 17.01.2018, 12:46:11

Sie können verlangen, Eifer Testnet Münzen hier: https://nxtforum.org/testnet/some-testnxt-to-test-asset-exchange/

+814
metacapuche 08.12.2013, 02:37:58

Mit einer gegebenen Algorithmus und der hardware, gibt es etwas, das den Engpass: dieser Teil wird besteuert, um seine volle 100% Kapazität, während sich der rest der hardware verwendet wird, bei <=100% Ihrer Kapazität. Verschiedene Teile der hardware nehmen Sie unterschiedliche Mengen an Strom und Wärme zu führen, um die Kapazität. Erstellen eines Algorithmus, der die Steuern der unteren-power-Teile, während die high-power-Teile, die weitgehend frei, die Ergebnisse in ein cooler running-Algorithmus.

Zum Beispiel, sagen wir, Sie haben einen Algorithmus, der schwer Prozessor gebunden, und eine, die stark Speicher-gebunden ist. Es wäre durchaus vernünftig, zu erwarten, dass der Prozessor gebunden läuft heißer als der Speicher-gebunden ist, wenn Sie also wollen, dass Ihr Algorithmus ausgeführt kühlen, wählen Sie die memory-bound ein.

Ich sollte auch beachten, dass einige Prozesse sind kompliziert genug, dass es keinen Engpass, aber es verschiebt sich von Zeit zu Zeit (wenn Sie z.B. Lesen von Daten von der Festplatte, komprimieren und übertragen es über das Netzwerk, können drei völlig getrennte Engpässe an den unterschiedlichen Zeiten: disk-IO, CPU-Leistung und Netzwerk-IO). Sie können diese als eine Sammlung von algorithmen, die individuell (sollten) Folgen die Allgemeine Regel, die ich oben skizziert.

+791
duzzy 24.08.2012, 07:01:11

Das wird getan, um Betrug zu verhindern (in anderen Worten, die Menschen könnten "bezahlen" mit CC, bekommen Ihre bitcoins, und dann diskutieren Sie die Transaktion).

+774
chrisdembia 26.04.2016, 18:42:44

Die einzige Möglichkeit, die ich kenne, Ist so etwas wie Pywallet, wie Meni erwähnt.

Ich möchte jedoch darauf hinweisen, dass es am besten Praxis, um eine neue Adresse für jede Transaktion.

Wenn Sie besorgt sind, dass Ihr nicht in der Lage, herauszufinden, eine bestimmte Adresse, sollten Sie darauf achten, beschriften Sie alle Ihre Adresse auf sinnvolle Weise auf die Zeit, die Sie erstellen. Einmal beschriftet, Sie sind durchsuchbar.

+714
Daniel Gutierrez 31.07.2019, 14:55:56

Als Andrew sagte, Zeitstempelung ist eine sinnvolle Nutzung der blockchain. Ein weiteres Beispiel ist Namecoin verwendet blockchain für die DNS-Registrierung. Und auch, farbige Münzen, die verwendet werden, um zu verfolgen Eigentum grundsätzlich alles, was übertragen wird, um. Die blockchain kann auch verwendet werden, zum speichern von Zertifikaten, check-out Blockcerts. Es gibt wahrscheinlich viele weitere Beispiele, die Leute sind sehr kreativ :)

+664
Rafael Bugajewski 18.05.2018, 16:32:11

Die folgenden ergänzt die Antwort von @James mit einigen einfachen arbeiten bitcoin-explorer Mathematik Beispiele erleichtern das Verständnis:

k = 0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798 (private key)

G = 1E99423A4ED27608A15A2616A2B0E9E52CED330AC530EDCC32C8FFC6A526AEDD

K = k*G

wobei 0 < k < 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFfebaaedce6af48a03bbfd25e8cd0364141

Zum berechnen eines komprimierten public key (K) mit secp256k1 elliptische Kurven-Mathematik:

% bx EG-multiplizieren 0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798 1E99423A4ED27608A15A2616A2B0E9E52CED330AC530EDCC32C8FFC6A526AEDD

03f028892bad7ed57d2fb57bf33081d5cfcf6f9ed3d3d7f159c2e2fff579dc341a

Da G ist Fix für secp256k1, die komprimierte öffentliche Schlüssel kann einfach berechnet mit dieser:

% bx-EG-to-public 1E99423A4ED27608A15A2616A2B0E9E52CED330AC530EDCC32C8FFC6A526AEDD 03f028892bad7ed57d2fb57bf33081d5cfcf6f9ed3d3d7f159c2e2fff579dc341a

Die folgenden Informationen sollten bieten neben niedrigen Niveau Einsichten. Hinweis in den folgenden Beispielen, wenn elliptische Kurven-addition definiert ist, dann elliptischen Kurve Multiplikation definiert werden können:

G + G = 2*G:

% bx EG-add 0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798 0000000000000000000000000000000000000000000000000000000000000001 02c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5

G + G + G = 3*G:

% bx EG-add 0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798 0000000000000000000000000000000000000000000000000000000000000002 02f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9

2*G + 2*G = 4*G:

% bx EG-add 02c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5 0000000000000000000000000000000000000000000000000000000000000002 02e493dbf1c10d80f3581e4904930b1404cc6c13900ee0758474fa94abe8c4cd13

4*(G + 4*G = 8*G:

% bx EG-add 02e493dbf1c10d80f3581e4904930b1404cc6c13900ee0758474fa94abe8c4cd13 0000000000000000000000000000000000000000000000000000000000000004 022f01e5e15cca351daff3843fb70f3c2f0a1bdd05e5af888a67784ef3e10a2a01

256-bit privaten Schlüssel (k) ganze zahlen können zerlegt werden und neben Operationen oben wiederholt eingesetzt zum erstellen von lookup-Tabellen zur schnellen Berechnung von elliptischen Kurve Multiplikation Operationen:

% bx EG-multiplizieren 0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798 0000000000000000000000000000000000000000000000000000000000000001 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798

% bx EG-multiplizieren 0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798 0000000000000000000000000000000000000000000000000000000000000002 02c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5

% bx EG-multiplizieren 0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798 0000000000000000000000000000000000000000000000000000000000000003 02f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9

% bx EG-multiplizieren 0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798 0000000000000000000000000000000000000000000000000000000000000004 02e493dbf1c10d80f3581e4904930b1404cc6c13900ee0758474fa94abe8c4cd13

% bx EG-multiplizieren 0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798 0000000000000000000000000000000000000000000000000000000000000008 022f01e5e15cca351daff3843fb70f3c2f0a1bdd05e5af888a67784ef3e10a2a01

+514
MaO 31.08.2017, 06:47:17

Jeder Knoten wird in der Regel beheben und reorganisieren Ihre lokale Kette, sobald Sie Kenntnis von einer Kette mit mehr Arbeit.

Wenn zwei Blöcke abgebaut werden, bei block Höhe N gibt es eine Gabel. Sobald ein einziges N+1 ist abgebaut und ausgestrahlt, alle Knoten, die es empfangen wird, halten Sie den block N, dass es baut auf, und die Waise, den anderen block, da ist jetzt eine Kette mit mehr Arbeit.

Dies ist, was macht block Quellensteuer Angriffe möglich, wie ein Angriff übertragen könnte mehrere Blöcke auf einmal, die plötzlich eine neue, länger gültige Kette.

+512
Leo Rubiano 12.01.2013, 06:41:03

Ich bin dabei ein Programm zu schreiben, der bekommt Informationen aus der blockchain direkt.

Gibt es irgendwelche tools oder Bibliotheken, die zur Beschleunigung dieses Prozesses? Ich bin auf der Suche nach Dingen wie Kodierung und Dekodierung Transaktionen, überprüfen von Signaturen, Scannen für bestimmte Daten etc.

Bevorzugte Sprachen: Python, C/C++.

+469
Harshit rayal 29.05.2010, 23:15:47

Sie versenden können betragen die Papier-Brieftasche, ohne Sorge für die änderung. Der kritische Teil zu befürchten ist, wenn Sie verbringen der Fonds auf dem paper wallet. Wenn Sie verbringen nicht alle Fonds, was übrig bleibt, wird als Transaktionsgebühr Zusammenhang weniger der Betrag. uminatsu ist die richtige in die besagt, dass dies nur Auftritt, wenn Sie versuchen und Handwerk eine rohe Transaktion, indem Sie die Tasten, die Brieftasche. Es wird empfohlen, dass Sie vor dem importieren der private Schlüssel in Ihre eigene Brieftasche, bevor Sie versuchen, verbringen Sie diese Mittel, um sicherzustellen, dass Sie nicht einen Fehler machen. Sie müssen den importprivkey Funktion des bitcoin-qt-wallet-Anwendung in der Lage sein, um Sie verbringen Ihre BTC.

+403
8vius 30.09.2012, 10:44:25

Hallo, ich habe eine Menge von abgeleiteten öffentlichen Schlüssel und Ableitung Weg, wie bekomme ich root public key, die verwendet wurde, zu generieren, diese pub-keys?

+384
mrsserg 12.04.2019, 15:46:27

Wie kann ich die aktuelle Größe, vorzugsweise in bytes, der die blockchain? Gibt es einen CLI Befehl für bitcoind? Oder eine website, die zeigt die Größe?

+378
user213002 16.06.2016, 08:49:33

Szenario: A sendet 1 BTC für B.

scriptSig erscheint in der Eingabe-Skript.

scriptSig = <sig> <pubKey>
  1. Hier, public key ist der Öffentliche Schlüssel des Absenders, A. (dies ist der öffentliche Schlüssel entsprechend seine Bitcoin-Adresse, welche hat einige nicht ausgegebene Transaktion).

Was ist die sig Teil scriptSig?

scriptPubKey

scriptPubKey = OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG

pubKeyHash = Hash des Öffentlichen Schlüssels des Empfängers (in unserem Fall B).

  1. Der Absender (A) hat nur die Bitcoin-Adresse des Empfängers (B), also wie nimmt er das pubKeyHash aus seinem Bitcoin-Adresse?

Nun, dies ist mein Verständnis soweit:

  1. Input Script enthält Informationen über die "zurück-Transaktion" der Absender und verweist auf den entsprechenden "output" Teil des "vorherigen Transaktion" mit einem index. Die Ausgabe der vorherigen Transaktion ist die insgesamt verfügbare Guthaben für den sender (A) die geltend gemacht werden können zum senden von Bitcoins an den Empfänger (B).

  2. Dieser Input Script wird auch verwendet, um zu überprüfen, dass der Absender (A) ist der eigentliche Besitzer der Bitcoins statt in die referenzierte Ausgabe der vorhergehenden Transaktion.

  3. Ausgabe-Skript sagt uns, wie viele bitcoins der Sender will zur Übergabe an den Empfänger, und Sie erwähnt auch die Bitcoin-Adresse des Empfängers ein.

Fragen:

  1. Der öffentliche Schlüssel in scriptSig von der öffentlichen Schlüssel in scriptPubKey?

  2. Wie kann die signierte information von dem Absender verifiziert werden, indem der Empfänger, wenn Sie nicht teilen Sie die gleichen Öffentlichen Schlüssel?

  3. Ich habe versucht Verständnis das Beispiel auf wiki, das zeigt, wie das Skript ausgeführt wird, in einen stack-basierten Art und Weise, aber konnte es nicht verstehen.

Ich habe noch einige weitere Fragen, aber ich denke, ich werde Sie bitten, in einer anderen Frage, anstatt Sie insgesamt hier.

Danke.

+340
Max Wu 31.07.2019, 02:04:40

Die -blocknotify="{cmd}" ist eine der konfigurierbaren Einstellungen, die beim Start der bitcoin-daemon. Ich kann zum Beispiel meine bitcoind mit diesem Befehl:

bitcoind -blocknotify='echo %s'

Und wenn ein neuer block gelöst, block-hash, wird gedruckt.

00000000000000000e979c4a51dc6cb9606e47a2b499f591645f53fe801ae374
+325
user5194194 19.12.2018, 03:02:23

Sie können die Ausgabe-Geschenk-in-Art Quittungen, die gleiche Art, die Sie würde die Angelegenheit für alle anderen, nicht-cash-Spende.

(z.B. ich Danke Ihnen für Ihr großzügiges Geschenk von 7 Bitcoins, die wir erhalten am _(Datum)_. Ihre großzügige Spende wird helfen, weiter die wichtige Arbeit unserer Organisation.)

+281
nBlaze 22.06.2010, 09:16:12

Wenn ich mir einen neuen block auf meinem pc, wie kann ich ihn senden, um andere Altersgenossen, was es enthalten in der blockchain und immer meine Belohnung?

Gibt es eine API bietet eine Funktion wie "sendBlock" oder sowas?

Ich verlange es für bitcoin und andere criptocurrency. Ty

+264
DotMH 20.03.2019, 03:41:13
Speziell bezieht sich auf den Quellcode aus, welche Anwendungen kann kompiliert werden, oder der Prozess, sagte Zusammenstellung. Verwenden Sie nicht zu verlangen, eine Quelle von Informationen oder um zu bestimmen, die Quelle, aus der die Bitcoins stammen, etc.
+262
Brionius 11.09.2011, 18:24:19

Eine Menge von Finanz-Industrie - bevorzugt Python. Einige Bemerkenswerte Bitcoin-Börsen wie Bitstamp und LocalBitcoins sind gebaut auf der Spitze der Python-und Django - web-framework (obwohl es gibt andere web-frameworks, die Sie möglicherweise verwenden möchten).

Die Gründe für die Wahl von Python enthalten

  • Open-source-ökosystem mit einer Menge von Modulen wählen, wie diejenigen, die für Bitcoin

  • Es ist nicht nur web-Entwicklung Sprache, aber hat großen nutzen Basis im scientific computing, wodurch es ideal für die Analyse der Daten und der Anzahl Knirschen (siehe z.B. IPython, NumPy - Projekte). Dies macht Python unterscheidet sich von Ruby, das ist mehr stark nur im web.

  • Python-Anwendungen haben eine sehr gute security track record, im Vergleich zu z.B. PHP-Anwendungen. Um dies zu bestätigen, siehe CVE-Einträge zu der Programmiersprache, Verwandte frameworks (Python, PHP)

  • Im Gegensatz zu statischen Sprachen wie Java und C#, die Optimierung der CPU-Leistung gebunden, Python optimiert die Entwicklung Zeit, so dass es sehr produktiv ist. Sie können immer Anschluss Ihren code, um mehr schwere Plattform, wenn Sie Ihren Dienst wächst beliebt, und Sie haben Geld zu verbringen. Dies ist besonders wichtig, wenn Ihr Projekt ist nicht gesichert durch ein großes Unternehmen, aber mehr startup orientiert.

+241
JayDM 15.12.2013, 10:55:34

blockchain.info funktioniert zur überwachung der blockchain. Hier ein paar andere Ideen...

  1. Wenn die wallet-server mit dem internet verbunden ist, haben es überwachen Sie die Adresse (vielleicht mit der -walletnotify option) und erstellen Sie dann eine message queue (z.B. amazon sqs). Wenn ein wallet-Transaktion geschieht, DRÜCKEN Sie die relevanten Informationen in der message queue. Der web-server überwacht dann die message queue, Erscheint die Meldung und entsprechende Schritte unternimmt.

  2. Sie können auch einen Blick in die Uhr Nur pull-request für bitcoind. Dieser pull-request wurde nicht integriert in die wichtigsten bitcoind, aber Sie konnte es kompilieren, in Ihre eigene modifizierte version. Sie wäre dann erforderlich, dass Sie die öffentliche Adresse um die Uhr Nur Geldbeutel. Diese modifizierte version der bitcoind könnte, dann befinden sich auf Ihrem web-server, ohne die Angst vor der Kompromittierung privater Schlüssel.

Prost!

+232
thedanotto 24.12.2010, 08:01:51

Vor ein paar Jahren kaufte ich ein paar bitcoins von MtGox und beschlossen, rufen Sie die Brieftasche auf meinem PC.

Ohne jetzt ins detail ich wurde krank, die Kopfschmerzen und endete das Programm deinstallieren, bevor ich erhielt keine Münzen. Im Nachhinein hätte ich nicht schon eine größere idiot ist.

Nun sind diese Münzen Wert sind, ein kleines Vermögen, und ich habe alles getan, was ich denken konnte, um Sie abzurufen. Ich kontaktierte MtGox und alles, was Sie sagen konnte, war, dass das Netzwerk sagt, die Transaktion zeigt, wie vollständig. Ich habe ausgiebig und auf byte-Ebene durchsucht den PC in Frage für den Reste meines privaten Schlüssel, aber ohne Erfolg.

Das bringt mich zu der Frage bei der hand.

Ich habe noch meinen öffentlichen Schlüssel, das wissen die Münzen wurden nie erhalten und Zugriff auf das MtGox Konto Sie gesendet wurden, aus.

Was kann ich tun? MtGox einfach es Links an "das Netzwerk sagt, dass es abgeschlossen war, also fuck off"

+186
richardthepratt 22.06.2013, 05:43:19

Ich verstehe, dass das "miner' s Rolle ist zu überprüfen das blockieren von Transaktionen durch die Berechnung nonce basierend auf Schwierigkeitsgrad und die Suche nach hash {block + nonce + hash des vorherigen Blocks} .

Genauer: die Bergarbeiter-die Rolle ist zu bestätigen, wird der block von Transaktionen. Jeder Knoten (und Bergmann) wird unabhängig überprüfen Sie die Gültigkeit aller Transaktionen und Blöcken. "Validierung" ist nicht nur der Beruf des Bergmanns. Wie bereits erwähnt, durch JBaczuk, die POW blockhash ist tatsächlich berechnet auf version, vorherigen block-hash, merkle root, unix-Epoche, Zeit, Schwierigkeit Ziel (bits), und nonce.

Meine Frage ist, was passiert, wenn ein Knoten entscheidet, zu ändern, Transaktion die Daten in einem block und geht durch den Prozess der calulating nonce und dann Suche nach hash und das hinzufügen von diese block-Kette. Andere Knoten werden sehen, dass dieser Knoten hat richtig das Rätsel gelöst, und soll die neu geschaffene Kette. Richtig?

Nicht ganz. Sobald eine Transaktion bestätigt, wird in einem block, alle neuen nachfolgenden block, verbringt die gleichen UTXO ungültig (da UTXO wurde bereits ausgegeben).

Wenn der miner versucht zu re-mine, original-block (ie. ein neuer block mit der veränderten Transaktion, an der gleichen blockheight), dies wird wahrscheinlich fehlschlagen, und eine Verschwendung Ihrer Ressourcen. Selbst wenn Sie zu einem gültigen block, der rest des Netzes wird bereits wissen über die erste version des Blocks, und die anderen Bergleute arbeiten werden auf den nächsten block schon (oder haben Sie schon gefunden). Also selbst wenn deine geänderten block gültig ist, wird das Netzwerk immer noch ignorieren, da das Netzwerk schon akzeptiert hat ein längsten (die meiste Arbeit) - Kette, die nicht Ihren block.

Ich weiß es nicht und es ist nicht überall geschrieben, dass der Punkt, wenn ein Knoten-broadcasts, es hat das Rätsel gelöst und gefunden hash der Transaktionen manipuliert, ist es der Fall, dass der andere Knoten ist auch das Rätsel gelöst, und hoffentlich mit untampered Transaktionen?

Transaktionen können in der Regel nicht sinnvoll 'manipuliert'. Transaction malleability ist ein edge-Fall, die betrachtet werden könnten, aber sonst ändern sich die Inhalte in einer Transaktion, dann wird es ungültig. Wenn ein Knoten überprüft die Gültigkeit von einem block, es würde fangen Sie ungültige Transaktionen, und somit fallen die sperren für unwirksam.

Andere Möglichkeiten, Sie könnte sich ändern, eine block-Transaktion Inhalte, gehören das hinzufügen oder entfernen von bestimmten Transaktionen der block, ändern Sie die Reihenfolge der Transaktionen in den block, oder Substitution von einer Transaktion für ein weiteres (, die verbringt die gleiche UTXO, siehe double-spend-Attacken).


Kurz gesagt: Da die Bergleute immer angestachelt zu mir an die Kette Tipp, dass ein Bergmann arbeiten auf neu-mining-ein Alter block auf die Einführung einer 'veränderten' - block, in gewisser Weise letztlich nicht wirklich wichtig, der rest der Teilnehmer in einem Netzwerk. Das Netz ignoriert die geänderten block, d.h. das Netto-Ergebnis ist, dass die miner, die aus den veränderten block nur verschwendet Ihre Ressourcen.

+133
Bill Sacks 09.01.2017, 22:05:02

versuchen Sie es

#!/bin/bash
F=/home/btcdev/wallet_transaction_log
D=`date +"%Y%m%d%H%M%S"`
echo ${D} - ${1} >> ${F}

Ref: https://bitcointalk.org/index.php?topic=203438.0

+123
Carnaval 21.05.2016, 05:10:27

Unkomprimierte Tasten sind nur nicht zulässig für segwit Ausgabe-Typen. Da segwit Ausgänge sind eine völlig neue Art der Ausgabe erfordert neue Adressen (und eine neue Adresse geben schließlich), wird es keinen Einfluss auf Ihre aktuellen Adressen und Schlüsseln. Nicht-segwit Transaktionen und Ausgänge kann noch existieren und geschehen. Diese Transaktionen werden in der exakt gleichen Art und Weise Sie es jetzt tun; Sie werden nicht mit segwit (und damit sind nicht erlaubt unkomprimierte Tasten), es sei denn, Sie explizit zu verwenden.

Bitcoin ist Bargeld nicht haben segwit, so sind Sie nicht ungültig unkomprimierte Tasten. Der einzige Teil des BIP 143, dass der Bitcoin ist Bargeld verwenden, die sighashing Algorithmus.

+115
romazotov 27.06.2012, 00:57:21

Sowohl in der Basic-Blitz-Technologie (BOLT) Dokumente, und in der Spezifikation lnd, gibt es eine unterschiedliche Behandlung für den letzten Kanal in eine route. In BOLT#2 es bezieht sich auf eine variable min_final_cltv_expiry:

min_final_cltv_expiry ist die minimale Differenz zwischen HTLC CLTV-timeout und der aktuellen block Höhe, für den terminal-Fall (C).

Dieser Wert ist 9, im Gegensatz zu 144 für cltv_expiry_delta.

Dies ist wahrscheinlich im Zusammenhang mit der Ausgabe einer route beim Abfragen lnd, zum Beispiel, nehmen wir an, die route Alice -> Bob -> Lied -> Dave, geleitet von Alice: die Ausgabe ist:

$> lncli-alice queryroutes --dest=<Carol_pubkey> --amt=5 --num_max_routes=1
total_time_lock: 1443640
total_fees: 1
total_amt: 6
Hopfen {
 chan_id: <id_chan_alice_bob>
 chan_capacity: <cap>
 amt_to_forward: 6
 Ablauf: 1443610
 amt_to_forward_msat: 6000
 fee_msat: 1
}
Hopfen {
 chan_id: <id_chan_bob_carol>
 chan_capacity: <cap>
 amt_to_forward: 5
 Gebühr: 1
 Ablauf: 1443466
 amt_to_forward_msat: 5000
 fee_msat: 1000
}
Hopfen {
 chan_id: <id_chan_carol_dave>
 chan_capacity: <cap>
 amt_to_forward: 5
 Ablauf: 1443466
 amt_to_forward_msat: 5000
}
total_fees_msat: 1001
total_amt_msat: 6001

Beachten Sie die letzten beiden hops haben den gleichen Ablauf Wert. Warum ist der Letzte hop unterschiedlich im Hinblick auf den Ablauf?

+25
Kantemir 07.04.2016, 21:41:30

Bitcoins verbringen, in einer Transaktion komme aus einem Ausgang einer vorherigen Transaktion. Als solche ausgegeben, die Ausgabe ist immer im Zusammenhang mit der Adresse, erhalten Sie die Münzen.

Die Adresse identifiziert, die als Absender ist in der Regel eine der Adressen, die Ausgänge ausgegeben. Als solche gibt es so viele senden Adressen für jeden Geldbeutel gibt es den Empfang-Adressen, hinzufügen von ein paar Adressen für den Wandel, der Geldbeutel wird es automatisch zu erstellen.

Für details siehe die Protokoll-Spezifikation.

+21
John g 07.05.2015, 15:25:16

Das hat nichts zu tun mit RFC6979, aber mit ECDSA-signing und public-key-recovery.

Die (r, s) ist die normale Ausgabe von einer ECDSA-Signatur, wobei r wird berechnet als die X-Koordinate eines Punkts R, modulo Ordnung n der Kurve.

In Bitcoin, die für nachrichtensignaturen, verwenden wir einen trick, genannt public-key-recovery. Die Tatsache ist, dass, wenn Sie die volle R-Punkt (und nicht nur die X-Koordinate) und s, und eine Nachricht, dass Sie berechnen können, für die public-key-wäre dies eine gültige Signatur. Was dies ermöglicht, ist zu "überprüfen" eine Nachricht mit einer Adresse, ohne zu wissen, den Schlüssel (wir tun nur das public-key-recovery auf die Unterschrift, und dann die wiederhergestellten hash-key und vergleichen Sie es mit der Adresse).

Dies bedeutet jedoch, benötigen wir die vollständige R-Koordinaten. Es können bis zu 4 verschiedene Punkte mit einem vorgegebenen "X-Koordinate modulo n". (2 da jede X-Koordinate hat zwei mögliche Y-Koordinate, und 2, weil r+n kann immer noch eine gültige X-Koordinate). Diese Zahl zwischen 0 und 3 nennen wir die Erholung id, oder recid. Daher kehren wir ein zusätzliches byte, das auch Funktionen wie ein header-byte, mithilfe von 27+recid (für unkomprimierte erholt pubkeys) oder 31+recid (für komprimierte erholt pubkeys).

Streng genommen sind die recid ist nicht notwendig, da können wir einfach nacheinander alle möglichen Koordinaten-Paare und überprüfen Sie, ob Sie mit der Signatur übereinstimmen. Die recid nur beschleunigt diese überprüfung.

Im Allgemeinen, wenn h ist der Cofaktor, die maximale Anzahl der verschiedenen Punkte mit gegebenen "X-Koordinate modulo n" 2(h+1). Im Fall von secp256k1, die Co-Faktor 1 ist, erhalten wir 2(1+1) = 4.

+20
Vishal Tarkar 25.05.2019, 07:42:12

Fragen mit Tag anzeigen