0 Gebühr Transaktionen - möglich, dass Sie nie bestätigen?

Ich habe ein Bitcoin Trinkgeld service für reddit: https://news.bitcoin.com/bitcoin-tipping-reddit-minitip/

Derzeit zahlen die Nutzer eine flat von 0,1 mBTC miner-Gebühr, tip anderen, da es völlig auf-Kette (das ist eine große Abschreckung von der Nutzung des Dienstes). Ich hatte gedacht wenn.

Was mache ich, wenn ich Tipps von Benutzer-zu-Benutzer bezahlen 0 Gebühren für Transaktionen und stellen Sie Sie für den Widerruf auch bei 0 Bestätigungen?

Die Art und Weise der service funktioniert, ist, dass ein Benutzer Einlagen sagen 5000 bits (5 mBTC) zu einer Freiheitsstrafe Adresse. Diese Ablagerung erscheint in Ihrer Bilanz nach 1 Bestätigung.

Also mein denken ist jetzt, dass der Betrag in der Bilanz bestätigt, die Freiheitsstrafe-Konto senden können Teile, die balance-Tipps der Empfänger braucht keine Angst vor Doppel-verbringt, da die Tipps sind nicht direkt vom Absender-Konto.

Das einzige Problem, das ich sehen kann, ist, dass die Spitzen nie bestätigt bekommen wegen 0 Gebühren, also wollte ich klären. Ist es möglich, dass die Transaktion nie bestätigt, wenn die Teilnahmegebühr ist 0?

Dank

+685
Leo Espedilla Fernandez 18.06.2012, 08:05:23
16 Antworten

Sie denken, Sie haben Ihre Schritte ein exploit falsch. Es klingt wie Sie versuchen zu beschreiben, eine 51% attack, aber zu ignorieren sind mehrere Faktoren

First off, Schritt 1 ist nicht erforderlich für die Schritte 2-4 auftreten. Ein schlechter Schauspieler könnte änderungen an einem alten block (zum Beispiel entfernen einer Transaktion) und dann führen Sie den Nachweis der Arbeit an, dass der block und alle Blöcke auf der Oberseite. Gewinn der aktuelle block ist nicht erforderlich, bis alle Blöcke auf der Oberseite der bearbeitete berechnet und fing bis zu den aktuellen block Höhe (oder wirklich chainwork). So ist die Reihenfolge der Angriff wäre Schritt 2, Schritt 3.

Schritt 4 ist auch nicht wirklich erforderlich. Sobald der Angreifer hat eine längere Kette als der rest des Netzwerks, können Sie einfach veröffentlichen Sie Ihre Blöcke, und die anderen Knoten führt eine Reorganisation. Ob der Angreifer oder jemand anderes, die gewinnt, der nächste block ist egal. Die Bearbeitung von einem vorherigen block hat bereits stattgefunden, und der Angriff abgeschlossen ist.

Also, in Ihrem bevorzugten format:

  1. Schlechte Schauspieler, der änderungen an einem Alten Block
  2. Schlechte Schauspieler, re-hashes betroffen block-Segmenten, vom Alten Block-zum Letzten Block — (nun möglich, durch geringe Kosten)
  3. Angriff abzuschließen

Das problem mit diesem ist, dass Sie unter der Annahme, dass nur der Angreifer hat die Reduzierung der Kosten für die PoW. Wenn jeder hat Zugang zu billiger hashing, dann ist es egal, dass der Angreifer Zugriff hat, weil Sie würde immer noch im Wettbewerb der rest des Netzwerks zusammen. Auch dann, wenn der Angreifer ist der einzige mit Zugriff gibt es nur eine begrenzte Anzahl von Blöcken, die Sie in angemessener Weise neu berechnen, in einem Zeitrahmen. Jeder 2,016 blockiert die Schwierigkeit wird neu berechnet, basierend auf der Höhe der Zeit, die es brauchte, um die Berechnung der vorherigen 2,016 Blöcke. Wenn eine anständige Anzahl dieser Blöcke berechnet wurden, die im geheimen an dieser viel höheren rate, steigert sich die Schwierigkeit auch für Blöcke berechnet Geheimnis. An einem gewissen Punkt, kann der Angreifer damit Ihre eigene Arbeit schwieriger.

Sie können Lesen wollen, diese Frage besser zu verstehen: Was kann ein Angreifer mit 51% der hash-Leistung zu tun?

+985
Lordy 03 февр. '09 в 4:24

Einige Möglichkeiten:

1) Pool-hopping.

2) Passwort-cracking.

3) Unterstützung einer bestimmten mining-pool / alternative blockchain Währung.

4) Wetten auf die Schwierigkeit sinken (relativ zu dem Wechselkurs), und der Sicherung einer langfristigen Vertrag, die profitabel sein wird, dass die Kontingenz.

+901
DC Le 05.04.2013, 14:31:53

In den aktuellen Implementierungen des Blitz-Netzwerk-Protokoll (c-lightning eclair und lnd), gibt es keine Kontrolle, Stoppt spamming/flooding von channel_announcement, mode_announcement oder channel_update Nachrichten? Angenommen, diese Meldungen sind nur gültig und beweisbar.

+883
Sabastien Green 14.04.2017, 07:29:00

Haben Sie vielleicht missverstanden, wie einige Brieftaschen versuchen Sie, fügen Sie die Anonymität einer Transaktion durch den Beitritt mehrere Eingabe-Adressen-und immer das hinzufügen von mehreren neuen "Adresse ändern" als zusätzliche Ausgabe-Adressen. Diese kann getan werden, mit einem HD-wallet, wo man ändern Sie die Adresse jedes mal, wenn Sie erhalten ein paar Bitcoins. Und wenn Sie nicht damit verbringen möchte, diese gleich werden Sie mehrere Eingänge, die alle auf unterschiedliche Adressen. Dann sind Sie jetzt in der Lage, eine Transaktion, die besitzenden multiple-input-Adressen. Die wallet kann auf der Oberseite von diesem fügen Sie dann eine Reihe von "Adressen ändern", und Ihre Letzte Transaktion könnten dann (als Beispiel) plötzlich in der 7 Eingänge und 9 Ausgänge. Das macht die gesamte Transaktion so Aussehen, als ob Ihre Ausbreitung irgendwie, möglicherweise unter mehreren Benutzern, wenn in der Tat die Eingangs-Adressen sind alle Ihre eigenen, während 8 von 9 Ausgabe-Adressen auch Ihre eigene, neu generierte Adressen ändern - und die Letzte Ausgabe ist die person, die Sie wollte, um Geld zu senden, um in den ersten Platz.

Das gleiche Szenario kann auch mit viel mehr verschiedenen Eingänge und Ausgänge durch eine Funktion namens coinjoin. Hier, statt mit den eigenen mehrere wallet-Adressen, kombinieren Sie Ihre Transaktion mit etwa 10 anderen Personen, die auch über eine einzelne Transaktion, und jetzt können Sie alle haben eine große, komplizierte Transaktion, die mit so etwas wie 10+ Eingänge und 10 Ausgänge + mehrere Adressen ändern (ändern von Adressen benötigt werden, um es schwieriger machen, um zu sehen, welche Eingabe-und Ausgabe, die es möglicherweise gehen könnte zusammen).

Aber die Millionen von Adressen würde nicht wirklich geben jede Nutzung, und weit mehr als das, was möglich ist, um den Einsatz in etwas wie diese Art von beigetreten Transaktionen.

+856
Rammstein84 01.06.2010, 13:03:34

Ich bin Handel auf crypto-Austausch sehr aktiv mit durchaus ein paar Strategien. In meinem "system" bekomme ich die Daten aus tauscht, dann ich, dann muss ich Ordnung schaffen, und ich senden Sie es an den Börsen. Aber ich bin kämpfen, um zu finden, die effizienteste (Latenz wise) Methode mit der ich meine Aufträge ausführen. Mein problem/Frage ist folgende: - Was ist der Schnellste Weg zum senden der erzeugten Aufträge durch meine Strategien, um andere Prozesse/threads, wird die Bestellung an den Austausch ohne Unterbrechung der sagte Strategie, während wir warten auf die Reaktion aus der Börse? (Die Idee ist, erstellen zu können, andere Aufträge, wenn die Umstände es erlauben.)

Derzeit Teste ich viele Methoden, aber ich bin mir nicht sicher, welche ist die eine, die kommt mit der geringsten Latenz. Ich mache arbitrage, also die Latenz ist ziemlich wichtig für den code als auch die gleichzeitige Ausführung.

Viele Methoden habe ich ausprobiert, und grundsätzlich bin ich auf der Suche nach dem schnellsten einer, mit dem ich noch eine gewisse Kontrolle über die Warteschlange von meinen Bestellungen. Derzeit ZMQ REQ-REP-Protokoll gibt mir die meiste Kontrolle (wo der Auftragsabwicklung Anforderungen sendet, wenn es hat die Kapazität zum senden neuer Aufträge, so dass Bestellungen nicht häufen sich an, um die Ausführung), aber das REQ-REP-Muster kommt mit Kommunikations-overhead. Also ich bin auf der Suche nach einem ähnlichen Verfahren mit niedriger Latenz, oder jede andere Idee, die mir hilft, halten Sie die Kontrolle über die Warteschlange (ich kann nicht unendliche Prozesse oder threads die Ausführung von Bestellungen, da ich nicht die macht haben) und senkt meine Latenz.

Ich verwende python für die Codierung.

+760
june efaryuh 01.03.2016, 09:08:59

Nach der Lektüre dieses: ECDSA-Signatur und der "z-Wert"

Ich bin immer noch verwirrt über die 'Z' - Wert für diese Transaktion: https://blockchain.info/tx/ea6aa5d49b8e351e307bf9220f2d7cd31d41e640683539e00580e17cb4cf3e36?show_adv=true

die Signatur wird in das input-Skript, und wird die output-script ist es quellvorgang bei der Berechnung der message-hash. So ist die Anzahl der Ausgänge der Transaktion ist egal, Sie sind immer ein Hashwert unverändert in die messagehash für jeden Eingang. – Willem Hengeveld

Ich finde das obige Zitat ist verwirrend, sorry!

Dies ist, was ich Hash: 01000000 01 e3dbc4fada0034ad8581cb429af4953d7d092b137ebd9e193344db376314ab65000000001976a9147e7fe35e49f0e8a920780c00d40b7171d880811988ac1976a914942920e041353162b0d8bd006d09c2ca25cdc27888acffffffff 02 1004df02000000001976a9147e7fe35e49f0e8a920780c00d40b7171d880811988ac c05f3b04000000001976a914942920e041353162b0d8bd006d09c2ca25cdc27888ac 00000000 01000000

Und bekam dies:

0x76041b6949563e76d77012f9723bec3c7a1a21fd84c74bb58df47087cef056d7

Ist es richtig? Gibt es einen Weg, um es zu überprüfen?

+698
SHANA BURRIS 03.03.2010, 21:00:18

Wiederausstrahlung einer ähnlichen Transaktion mit einer Gebühr an das erlöschen der, der wartet. Im Grunde initiieren Sie ein Doppel-verbringen und die neue (mit einer Gebühr) wird bestätigt. Sobald bestätigt wurde, die alte Transaktion ungültig und vergessen.

Ihr Kunde wahrscheinlich nicht erlauben Doppel-verbringen versucht, aber es ist möglich über blockchain.info. Warnung: erstellen Sie keine raw-Transaktion, es sei denn, Sie wirklich wissen, was Sie tun!

Die Leute arbeiten auf, die Gebühr macht änderungen einfacher für uns Sterbliche; ein Beispiel ist/war (scheint veraltet) ConfirmNext.

+593
Yaakov Saxon 30.09.2015, 10:14:23

Hier ist eine mathematische Erklärung:

Berechnen Sie die Anzahl der Blöcke pro 4-Jahres-Zyklus:

6 Blöcke pro Stunde
* 24 Stunden pro Tag
* 365 Tage pro Jahr
* 4 Jahre pro Zyklus
= 210,240
~= 210,000

Summe aller block-Belohnung Größen:

50 + 25 + 12.5 + 6.25 + 3.125 + ... = 100

Multiplizieren Sie die beiden:

210,000 * 100 = 21 Millionen.

Ökonomisch, weil die Währung ist effektiv unendlich teilbar, dann wird der genaue Betrag spielt keine Rolle, solange die Grenze fixiert bleibt.

+462
Igor Klimer 21.09.2017, 19:31:19

Ist das routing dezentral und trustless:

In der Regel, ja. Er verwendet die sphinx Zwiebel-routing, um zu verhindern, dass jeder peer auf dem Weg zu wissen, Ursprungs - /Zielland der Zahlung.

Beachten Sie auch, dass die Informationen von Kanal-Salden können Auslaufen, wenn routing-versuche werden verwendet, um die Sonde Liquidität entlang einer route.

Routing ist nicht robust gegen sybil Angriffe kompromittierten Knoten bestimmen können Routen durch die Rekonstruktion Pfad über payment_hash in die htlc Ausgabe Skripte.

Es ist, jedoch obliegt es dem Kanal-Betreiber, um sicherzustellen, der Blitz-die Umsetzung ist immer synchronisiert mit einem full-node. Nur auf diese Weise kann es erkennen, ein Betrug-Kanal-Zähler-Partei-und broadcast-eine Strafe Transaktion. Wachtürme bereitstellen kann, die Wachsamkeit als eine Dienstleistung, aber Sie sind nicht trustless

Beachten Sie auch, dass die Blitz-Netzwerk ist eine separate p2p-Netzwerk.

Entdecken Topologie Auftritt, mit Kollegen zu tratschen.

+436
user2830451 26.01.2013, 04:47:11

Gibt es überhaupt eine Möglichkeit zu schaffen, eine rohe Transaktion mit Bitcoin-cli createrawtransaction API , ist es nicht erforderlich, die Ausgaben der gesamten input?

Was mache ich jetzt verbraucht, die gesamte Eingabe zu senden 0.01 an die angegebene Adresse und senden Sie die änderung zurück zu der Adresse, die ich bin Rückzug aus.

Wenn ich eine Einzahlung 0.5 BTC auf meiner wallet und Auszahlungen 0.01 gibt es irgendeine Methode, um in der Lage sein, die Arbeit mit meinen 0.49 BTC habe ich übrig, ohne es vollständig verbraucht und an die Adresse ändern, da bin ich dann stecken und warten, um zu bestätigen, und es gibt den Eindruck, mein wallet balance ist 0, wenn es wirklich 0.49 BTC.

+374
user63434 14.01.2013, 01:31:10

versuchen Sie, diese:

bitcoind getrawtransaction 2f50fdf7adbf58e91d738869948f4b191eb3cafa016c6df7e9182c06e4513852 1

Hinweis: die 1 am Ende, das weist bitcoind zu betreiben, im verbose-Modus.

+332
Rossette 03.05.2018, 17:00:38

Ich möchte die Förderung von Bitcoin in meiner Nachbarschaft, aber ich möchte auch, es zu tun, effizient... So versuche ich herauszufinden, wo und wie direkte Geschäft Inhaber, die in einem einfachen A-B-C Satz von Schritten erklärt alles von der hardware / software zu den steuerlichen Auswirkungen / software benötigt.

Ich weiß, es existieren Listen von tools, die Unternehmen nutzen könnten, aber diese Listen oft scheinen überwältigend. Irgendwelche Ideen würde geschätzt!

+221
Tami 08.08.2017, 22:56:39

Aus Ihrer Frage, es klingt wie Sie nicht wissen, was der Unterschied zwischen einem smart-Vertrag, und die Münze ist.

Zuerst von allen, smart-Verträge lief durch die Astraleums Netzwerk. Wenn Sie Gabel-litecoin oder bitcoin, macht es keinen Sinn, warum sind Sie reden über smart-Verträge.

Zweitens, wenn Sie Gabel-litecoin und erstellt eine neue Münze, die Sie noch brauchen, um meinen es. Dies kann entweder durch kompilieren der GUI-Portemonnaies, oder coind, in denen Sie benötigen zwei peers ausgeführt, so mining beginnen kann (ich würde empfehlen den Kauf eines VPS). Kann man nicht überweisen, die Sie nicht haben. Wenn Sie möchten, premine müssen Sie code hinzufügen, in der block-reward-Funktion zu geben, eine große Belohnung auf den ersten block.

Drittens, warum würden Sie brauchen, ein pool für eine Münze, die nicht populär ist? Der Punkt, der pool-mining ist weil es zu schwer für einen einzelnen miner zu finden, einen block für sich. Stattdessen können Sie arbeiten zusammen und teilen den block Belohnung, wie viel Arbeit jeder miner setzen. Also Nein, Erzeugung pool würde nicht eine gute Idee sein, es sei denn, die Münze ist sehr beliebt.

+202
Abracadabra555 18.04.2012, 22:35:48
  1. Die nicht ausgegebene Transaktion Ausgang (UTXO) Satz enthält nur gültige Transaktion Ausgänge, die noch nicht ausgegeben worden noch. Einmal TXO verwendet wird, ist es entfernt von der UTXO gesetzt. Also, zu überprüfen, wenn ein Ausgang vorhanden ist und aufwendbare, sehen Sie, ob es in der UTXO gesetzt.
    Dies macht eigentlich die Entdeckung eines Doppel-verbringen Sie einen Versuch, "im Alter von Transaktionen" viel einfacher als die Suche nach Doppel-verbringen Sie versuche in unbestätigten Transaktionen.

  2. Eine Mehrheit der Angriff ist nicht nur theoretisch, es sei denn, Sie meinen, dass jemand, den Erwerb von 51% der hashing power eine theoretische Möglichkeit. Aber es ist wirklich teuer und würde wohl zerfallen Bitcoin Wert, so könnte man argumentieren, dass es eher unwahrscheinlich ist.

  3. Es stellt das Risiko der Umkehrung von weniger als 0,1% mit einem Angreifer, der nur noch 10% der hashing power. Warum ist die 6 die Anzahl der bestätigt, dass die als sicher angesehen wird?

+142
edelans 27.01.2014, 19:38:53

Bitcoin-Transaktion und block-hashes werden als little-endian, wenn Sie behandelt als ganze zahlen. Im Netzwerk sind Sie nur 32-byte-Sequenzen in der Reihenfolge, wie Sie erzeugt werden, indem die hash-Funktion.

In beiden Transaktions-und block-hashes bytes Umgekehrt werden bei der Anzeige von Bitcoin-software und websites in hexadezimaler form. Das macht die Blöcke zeigen in big-endian-form, die ist, wie wir Menschen schreiben, die zahlen nach unten.

Ich nehme an, dass die Idee der Umkehrung bytes kommt von der Tatsache, dass block-hashes in Bitcoin sind als zahlen behandelt, die für die Zwecke der Schwierigkeit der Berechnungen, d.h. die hash-muss unter einer bestimmten Schwelle, um zu übergeben. Es ist natürlich für einen Menschen mit solch einer Nummer auf dem Bildschirm angezeigt werden mit führenden Nullen. Dies ist jedoch nicht eine sehr solide Grund, da die block-hashes haben könnte interpretiert werden als big-endian-Format bei Konvertierung zu integer, während die Zahlung einen kleinen performance-Einbußen.

Für Transaktions-hashes, ich habe keine gute Erklärung dafür, warum Sie werden auch Umgekehrt. Vielleicht ist es nur für die Konsistenz.

+41
timfreeman 09.08.2011, 17:45:26

Sagen wir user A schicken will, bitcoin zu Benutzer B stealth-Adresse.

  1. Was ist genau das, user B's stealth Adresse? Ist es seine öffentlichen Schlüssel? Da Benutzer A muss sich zu vermehren seinen privaten Schlüssel mit dem Benutzer B's öffentlicher Schlüssel basierend auf Elliptischen Kurven Diffie-Hellman - also ich nehme an, Benutzer A ist Eingang der vollständigen point, die Benutzer B's öffentlichen Schlüssel.

  2. Benutzer A soll berechnet PrivA * PublicB die Ergebnisse in ein Koordinatensystem. Soweit ich weiß, dieser Punkt wird verwendet werden durch Multiplikation der publicB und eine nonce und wird an das Netzwerk gesendet. Wenn das, was ich sage, richtig ist, wie kann ich Sie vermehren sich diese Koordinate mit PublicB werden, da beide Punkte. Wir bekommen nur eine Achse von diesem Punkt aus die diffie hellman-Berechnung?

+20
x smart 08.06.2016, 12:01:26

Fragen mit Tag anzeigen