testnet3 häufige TX-Formbarkeit

Related Wie bestätigen, dass meine eigene Doublespend-Transaktion bestätigt wurde

Hier geht es nicht um doppelte Ausgaben und ich glaube, dass es bei der damit verbundenen Frage nicht um doppelte Ausgaben für Äther geht!

Auf dem Testnet3 von Bitcoin sehe ich (unter Verwendung von https://github.com/bitpay/bitcore-p2p ) viele TX -Änderungs-IDs


Szenario:

  1. Ich sende etwas tBTC über http://testnetwallet.com

  2. Ich sehe ein utx mit txid von XXXX, das mit meinen Eingaben ins Netzwerk gesendet wird und zu meiner Testadresse geht (alles sieht cool aus)

  3. Ich beobachte weiterhin alle ausgestrahlten Txs

  4. ein neuer Block passiert.

  5. Ich sehe die txids im Block durch, finde aber meine txid nicht

  6. Ich frage meine Empfangsadresse bei einem Block-Explorer-Webdienst ab und sehe, dass die txid meiner tx in YYYY umbenannt wurde

  7. Ich gehe und schaue mir den Block noch einmal an und sehe, dass YYYY in seinem tx-Array ist!

  8. Ich höre auf, alle ausgestrahlten Txs zu überwachen


Ich fange an zu glauben, dass es (tx-Formbarkeit) passiert, wenn die Miner die txs in die Blöcke aufnehmen!

Ich sehe nie eine tx mit txid YYYY, die NIE gesendet wird (ich sehe jede Transaktion!), dies deutet darauf hin, dass die txid geändert wird!

Ich sehe das jetzt seit über 2 Wochen und habe niemanden gefunden, der darüber gesprochen hat, abgesehen von der ersten Person heute (4. April 2017) in der verwandten Frage.


Ich habe viele Dinge in meinem Code ausprobiert, um mich nicht mehr auf die txid zu verlassen, um festzustellen, ob meine tx 6 Bestätigungen hat. Aber ich finde es unmöglich, meinen TX mit seiner neuen TXID zu aktualisieren !

Ich habe (viele Male auf unterschiedliche Weise) versucht, Peers (P2P-Peers) getdata für jede nicht erkennbare txid in neuen Blöcken zu fragen, aber die Peer scheint die meiste Zeit die Verbindung zu trennen ....

Meine Frage ist: Was soll ich in dieser Situation tun?

Hinweis: Ich versuche, keine Dienste von Drittanbietern zu verwenden

auch verwandt: Wie hat blockr.io das gesehen?


AKTUALISIEREN

Ich sehe, dass alle TXs die ID ändern, nicht nur meine! Ich sammle jede txid, die ich ausgestrahlt sehe, und lege sie in ein Array namens seen. Wenn dann ein Block auftritt, suche ich nach jedem tx auf dem Block in meinem gesehenen Array.

für die letzten etwa zehn Blöcke heute habe ich bei jedem Block console.logged

gesehen:1/52 von 73 Peers gesehen:0/4 von 73 Peers gesehen:0/35 von 73 Peers gesehen:0/22 von 73 Peers etc...

99 % aller TXs (alle) auf testnet3 ändern txid

Ich höre max peers 150

DER BEWEIS, DASS DIES MIT JEDER TX GESCHIEHT

{ hash: '00000000000017f2a1d8ff44f149e7ead61a38e1a03217c33762ed9ace3c0c7d', validProofOfWork: true, validTimestamp: true, prevHash: '000000000000178c28b96e945965b9311ea4005a66e8c5c2701d30f928a498d8', txs: [ '775b7b0bf9345cbee62e3af57e1660a6fd92d0a089fd0694e4804a7190dd4a05', '1133ba34f4ef95af8a53c9698877cf8b7dc0e03d3095c371c0e2a1b8cd395ce2', '14df326c04bf2da2edbd4f9f04810916b95144eeef67570458c06449d3a56fc4', 'b969a4bdab4b6a5ea91500b4230c3eadc9aa807cca000ecce6686450d2676b42', 'fa5acc2feecae6a603673c6a817f79fa3a4dd1516d50c59014772c80500b7063', '0cd386804b65a3fb826557881dc3b50c1b298b7f0a0372da8faec97a2744d0e0', '24ca695bac05c4500a596415b70bd199c935308f7a90ccfc8ae01d7b96e6b115', '8125ed124dd4d0b3af98bc6028905fb329ff311c22f484be41bf9def8ea7b63e', '4f1e5a894be245d2a68c79e2b73dde54dbeaa8bb2e872b9b1115f40c0b93585b', 'aee4a615c617d71c544930d5dbacdb62d66fb089d556d84cbe92682295895d91', '545b2164e6bc2e764a702eac1bd69e625c6100c8cbeaa9528c16cd74eb144ecb', '450c86ef90858943f6b6ba284da3987191880b2b534749d3ae762d7c9060bb7c', '83d9107d90c36b0302af47f2b7e7bece30aaf20431dcdf251faa025d31f02fa8', '4785a7fb5b0a6106152dc80d2c028b2aa80cb9b4f0ce81985b8c672a34561703', '232a70178859760c5cd75ae054c503af9db4515d92a47b9da17ca5c81cee5d34', '5c218f9e957cfd7fa97dbbdd29a81673d4c91b3441279c23607a7d3889533855', 'b2472c88eb6c7a38476444c22cb560793624216e1e36354b406f15b09dd8316b', '5a7f3652282429eedf7bd2a6d0a8404e7844515f4139d14f8d7ed1e871efd373', '5147d190550b44eddad2d8ea6cdd022e47fe71a2517458b69c07c2424fd08bb2', '8e64ee1dcde8feb6b39ee043ecc43be719d0999ad181acee4d01e9d603976ff1', '0223ed8beb7d466d9d4026665d2ba58a97cbd1e6641be22f16d23be2b4574688', '18efc474f89835fb9eb1fa9ed1fc1dc296621aae3b727aab64f4f80ff76a098f', '8f38f6030a0471c7bef2b1e1757a6db0b63edf07aab3fe12a7e85d86b35c5eb5', '6b88744cba8f7661e64c67cd554d07a1b1981fe10614647a18b101520d289816', '6aee3deb7c0cb7247c2a85f14f96f8cb8447dee00e98a72ace80cbb850f5a709', '67de891a99a4c62fc90af91f5d880f9c2be80c1fc55bc444d10b74b63dd1ae1a', '62f955cf10d52f34a0b7bf2328c5095051d8dcf5009b65dd53632d54de4a515c', 'c42685086053a0b2d989453b6f0cb17a1b60642ac963acc782b5269c8e563b89', 'e2c2114e7cd15e47a84a4a48e7c1adbb29daff0f85afb5be6015a17271859909', 'cc834a0f20e43f4eb05638398e8cfc61bfaaa303dcd82705be2c9cbf80189ded', '10907000e1062dc63c817b995683a4a7433836f450f763c910fe6191aa555f24', 'a5bf7009e9c97b1b7652d3f5ed4067c1eeb40d1625e2fadb6ffb11ca18a27e74', '40c3ffce0140a9db634e4b869e79848f4316fd40528e48b0899e2b5606075ef2', '22b9db7c0ee380ec0c4eed97788dbf6f75fedbec569fb84a6c0d27bf36923cfa', 'f4906eda20607d733ae55caf3274fa91d5c2f20506881857af59be4d8bb0af25', '98dfd83a0506b7a56e7cc6b1c91623a38ecf504c9b78c658bb8a6e5c56f7af72', 'cd2711ab3400f03cb3830e6d7401058c99f5b3c0c438fe78180785582994b884', '566251b6b27cfbca202678f87ab6ebe5e6a71f306dea8e4035bca96207e630c1', '68eb0e868ebc4f0388c130bac9adcfb26fb526d8fdd7af6646ddcb9969e045df', '1cc856b20b1a66702782b4063caa1cce1cfd9a77600d53dbb727bc8d59cdeee3', 'd5312340a7bd04a732ea6da056fa4a32ef92558a30160cb63c457b9d72603823', 'd6cadd383605ab45e1cab2499349724d8973b160cd85e226115cbb30df383d44', '30a09d4abd5f3f52d47b7a7d2da05c5e0db2e40d93ae26a3d8b772227dffed48', 'efb6889c4507f2e7ccb781dc5982e14d111b696098acaa450a286b100322ca5d', 'cb7d6e3b904b49f01c85de319d4f3ed5ecc80aa3048dfbb97bb7300bc2fb4bd1', 'bb70bd40d0d9d2ceda243172a10c05b2f9099d4ea6c62414e6c04c0309e5f7d1', '7912e77605eddb2e18a5baac16326f5ee3f31ebee5ed5badec7f9327dda75a7e', '75255b0e2000c546b5f9e3836a8ed483b401280f993b5320f433507b7dad4981', '77af8d90ecca1b09f072b244a032775f025a82c148ae8393a56bdf2f055e687f' ] } Schauen Sie sich den Block an: http://tbtc.blockr.io/block/info/1115996

Als nächstes können wir einen zufälligen TX aus dem Block auswählen, der jeder TX sein könnte:

http://tbtc.blockr.io/tx/info/a5bf7009e9c97b1b7652d3f5ed4067c1eeb40d1625e2fadb6ffb11ca18a27e74

Sie werden sehen, dass dieser TX zwei Ausgänge hat. Schauen wir uns eine der Adressen an, zu denen ein Ausgang führt:

http://tbtc.blockr.io/address/info/mjSujFSUn1uCVHkD4bDj5cs3mZrp8ayec5

Oh, was für eine Überraschung! es hat 1 bestätigten tx und einen unbestätigten tx

unbestätigt: http://tbtc.blockr.io/zerotx/info/8d7778e2238db427149f0c7fa46a572e0ea5c3ae9eeefe78c0ec9e4b795f0d38

bestätigt: http://tbtc.blockr.io/tx/info/a5bf7009e9c97b1b7652d3f5ed4067c1eeb40d1625e2fadb6ffb11ca18a27e74

Die Ein- und Ausgänge sind bei beiden gleich!

Ich habe das heute zufällig aus einem zufälligen TX in einem zufälligen Block herausgeholt, was vor ein paar Minuten passiert ist!

Wenn Sie jede dieser Sendungen durchgehen, werden sie zu 99% alle so sein!

testnet verhält sich vermutlich genauso wie mainet. bei einigen/vielen Minern im Testnet ist eindeutig etwas kaputt ... also ist Testnet derzeit zum Testen unbrauchbar.
Ich würde genau das Gegenteil sagen. Formbarkeit ist im Mainnet gleichermaßen möglich (und legal). Es passiert einfach so, dass es derzeit niemand in großem Umfang tut, aber sie könnten es sicherlich tun. Daher muss jede Anwendung, die Sie entwerfen, in der Lage sein, damit angemessen umzugehen. Wer auch immer dies im Testnet tut, tut uns allen einen Gefallen, indem er uns zwingt, diesen wichtigen Fall zu behandeln, den wir sonst möglicherweise ignorieren oder abweisen würden.
Ich verstehe jetzt

Antworten (2)

Jemand (nennen wir sie weiter Alice) bringt Testnet-Transaktionen durcheinander, das ist heute einer meiner Minen passiert.

Was ist los

Alice ändert die sDarstellung der EDCSA-Signatur ( siehe ECDSA-Signaturerzeugungsalgorithmus ) von mindestens einer der Eingaben der Transaktionen. Dadurch ändert sich die Signatur, bleibt aber gültig und damit die txidgeänderte.

Wie geht es ihr?

Wie im BIP62 erklärt , gibt es zwei gültige Darstellungen des sWerts, je nachdem, wie groß der Wert ist. Darüber hinaus kann je nach Ergebnis auch die DER-Kodierung geändert werden .

Alice ändert einfach einen der sWerte von einer der ursprünglichen Transaktionssignaturen, indem sie eine Subtraktion zwischen der Ordnung nder Kurve (d . h. FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141für Secp256k1 ) und dem Wert durchführt s.

Beispiel:

Nehmen wir an , die sKomponente einer Signatur einer unserer Transaktionen ist s = 37c0af486123367bc7839d507894bd30cba3f61e0d1bbf54727e43199864452c, wenn wir von subtrahieren :sn

s' = n - s = c83f50b79edcc984387c62af876b42cdef0ae6c8a22ce0e74d541b7337d1fc15

Das ist eine gültige Darstellung von s.

Da s'beginnt mit 0xc8, was größer als 0x80ist, benötigt die DER-Codierung ein führendes 0x00:

00c83f50b79edcc984387c62af876b42cdef0ae6c8a22ce0e74d541b7337d1fc15

Wer tut das?

Es könnte ein Miner sein, so wie Sie es vorgeschlagen haben, aber es könnte auch ein normaler Knoten sein.

Wenn es sich um einen Miner handelt, könnte er die Änderungen vornehmen, bevor er die Transaktionen in den Block einbezieht, den er abbaut. Wenn andererseits ein normaler Knoten (besser verbunden als Sie) die Transaktion empfängt, modifiziert und sendet, könnte sie anstelle Ihrer ursprünglichen Transaktion in einen Block aufgenommen werden. Beachten Sie auch, dass Sie, da Sie die ursprüngliche Transaktion von Ihrem Knoten gesendet haben, wahrscheinlich keine Transaktionen bemerken, die versuchen, sie doppelt auszugeben, da Ihre Nachbarn (an die Sie die ursprüngliche Transaktion gesendet haben) die doppelte Ausgabe fallen lassen versuchen und nicht an Sie weiterleiten.

Was kannst du tun?

Sie können die Transaktion von einer anderen Quelle weiterleiten als der, die Sie zur Überwachung des Netzwerks verwenden, und sich nicht auf Transaktionen von letzterer verlassen, um zu sehen, was vor sich geht. Darüber hinaus können Sie das Netzwerk mithilfe des Symbols, das UTXOSie auszugeben versuchen ( prev_txid+ index), anstelle des txidvon der Transaktion, die Sie gerade erstellt haben, überwachen. Wenn eine andere Transaktion aus derselben Quelle ausgegeben wird, werden Sie es wissen.

Ich sehe, dass alle TXs die ID ändern, nicht nur meine! Ich sammle jede txid, die ich ausgestrahlt sehe, und lege sie in ein Array namens seen. Wenn dann ein Block auftritt, suche ich nach jedem tx auf dem Block in meinem gesehenen Array. seen:0/63, seen: 0/45, seen: 0/87 usw.... alle txs auf testnet3 ändern txid
Ich weiß, wie gesagt, es ist mir auch passiert, ich habe nur alle möglichen Fälle in Betracht gezogen.
Ich habe meine Frage aktualisiert, und wenn Sie mir etwa 20 Minuten Zeit geben, um weitere Beweise hinzuzufügen, wird es Sie überraschen!
Ich habe unbestreitbare Beweise in der Frage gepostet
Entschuldigung, aber was ist das Problem? Bitcoin-Transaktionen sind formbar. Der Bergmann kann diese Technik anwenden und wendet sie jetzt an. Lebe einfach mit diesem Wissen.
@ben-muircroft Ich verstehe nicht, worauf es ankommt, niemand sagt dir, dass du nicht Recht hast, sondern erklärt dir nur, warum es passiert.
ja das verstehe ich. aber ich verstehe nicht, wie ich eine verstümmelte txid in einem Block mit der ursprünglichen tx abgleichen soll
Wenn Sie sie nur identifizieren möchten, können Sie überprüfen, welchen UTXO beide Transaktionen ausgeben, dh welche vorherige TX-ID und welchen Index beide Transaktionen auszugeben versuchen. Es werden zwei Transaktionen aus derselben Quelle ausgegeben, eine im Block und eine andere, die Sie über das Netzwerk erhalten haben.
aber ich sehe nie die malteated txs. Ich sehe nur die malteierte txid im Block, also weiß ich nicht, welche Ausgänge die malteierte tx hat
Aber Sie kennen die Eingaben der Transaktion, die Sie gesehen haben, Sie müssen überprüfen, ob die Transaktion im neu generierten Block von derselben vorherigen Ausgabe ausgegeben wird.
aber da ich nie malteed txs ausgestrahlt sehe, habe ich nichts zu überprüfen
Sie hatten auch Recht damit, dass es zusätzliche TX-Informationen in Blöcken gibt

Der Miner, der aktuelle Blöcke im Testnet bestätigt, manipuliert Transaktionen. Das kann ich bestätigen.Geben Sie hier die Bildbeschreibung ein

Aber was ist das Problem? Aktuelle Konsensregeln erlauben dies. Vertrau mir. Ich bin ein Experte für Formbarkeit :)

Abschließend danke!! wem melden wir das?
Bitcoin ist dezentralisiert. Es gibt keine zentrale Beschwerde- und Meldestelle. Dies ist ein normales Verhalten. Vielleicht testet jemand etwas.
in den letzten 2 wochen?
Ich sehe hier überhaupt keine Probleme.
Das Problem ist, dass ich die manipulierten TXS nie sehe, die über das Netzwerk gesendet werden (ich sehe nur die Original-TXS).
Es ist Ihr Problem, kein Bitcoin-Netzwerkproblem :) Niemand kann Ihnen helfen, da aktuelle Clients keine HI-S-Transaktionen weiterleiten. Sie existieren also nur auf dem Miner-Knoten, bis sie im Block bestätigt werden