Ich verwende ein 0-Bestätigungstool. Um neue Transaktionen zu verfolgen, verwende ich:
Ich vertraue meinem Bitcoin-Client-Transaktionsverifizierungsprozess (Protokollregeln). (Ich erwarte, dass es alle Schritte in: https://en.bitcoin.it/wiki/Protocol_rules#.22tx.22_messages ausführt )
Ich gehe davon aus, dass ich nicht die Garantie habe, dass der Kunde / die Person, die den neuen Block erstellt hat, die Protokollregeln für die enthaltenen Transaktionen befolgt hat, daher möchte ich die „fehlende“ Transaktion aus meinem Mempool überprüfen.
Ich weiß, dass 6 Bestätigungen als "sicher" erwartet werden, aber ich möchte eine 0-Bestätigung (oder 1-Bestätigung bezüglich eines neuen Blocks) so sicher wie möglich machen.
1: Wird jede Transaktion von meinem Bitcoin-Client geprüft, bevor ein neuer Block (lokal) akzeptiert wird? (um sicherzustellen, dass jede Transaktion, die in Mempool und Blockchain meines (offiziellen) Kunden verfügbar ist, die Protokollregeln erfüllt)
2: Wenn 1. nicht wahr ist: Welche Bitcoin-API oder (Python-)Programm ist verfügbar, um Transaktionen zu überprüfen, die in einem neuen Block enthalten sind, wenn sie die (offiziellen) Protokollregeln erfüllen?
Ja, Ihr Kunde wird jeden empfangenen Block vollständig verifizieren.
Ihr größtes Problem beim Akzeptieren von 0-Bestätigungstransaktionen besteht darin, sicherzustellen, dass ein Angreifer Ihren Knoten keine Transaktion senden kann, die der Rest des Netzwerks als doppelte Ausgabe verwirft. Grundsätzlich sollten Sie direkte Verbindungen zu Ihren Knoten verbieten und sie mit vertrauenswürdigen Knoten wie großen Minern verbinden.
Dies eliminiert das Risiko nicht, reduziert es jedoch etwas auf Finney-Angriffe und einen Angreifer, der das Glück hat, die schlechte Transaktion durch einen großen Miner zu Ihnen zu bringen, der diese Transaktion am Ende nicht in einen Block legt, bevor die widersprüchliche Transaktion abgebaut wird.
pvz
Decker