Ein BIP (Bitcoin Improvement Proposal) ist ein Änderungsvorschlag zur Verbesserung des Bitcoin-Codes. Jeder Benutzer kann solche Vorschläge einreichen, und nach der Diskussion und Genehmigung durch die Community können sie angenommen und umgesetzt werden. BIPs enthalten normalerweise Vorschläge für wesentliche Updates (Bugs und ähnliche Updates werden nicht zur groß angelegten Diskussion vorgelegt).
Wir werden uns einen bestimmten BIP mit der Seriennummer 0069 ansehen und herausfinden, warum er so wichtig ist. Dieses Update soll die Sicherheit von Bitcoin-Transaktionen verbessern, indem es sie widerstandsfähiger gegen Analysen macht.
Welche Daten werden analysiert?
Um genau zu verstehen, was BIP 0069 vorschlägt, müssen wir verstehen, wie Vermögenswerte im Bitcoin-Netzwerk übertragen werden. Jede Transaktion hat Ein- und Ausgaben, wobei es wichtig ist, zu beachten, dass nichts durch sie fließt. Sie zeichnen im Wesentlichen auf, wohin und woher Bitcoins gesendet werden. Eingaben stellen Links zu den Ausgaben vorheriger Transaktionen dar, die als nicht ausgegebene Transaktionsausgaben (UXTOs) bezeichnet werden. Das mag etwas kompliziert klingen, deshalb geben wir ein Beispiel.
Vergleichen wir Transaktionen in Bitcoin mit Zahlungen in Papiergeld. Sie möchten beispielsweise etwas von Ihrem Freund für 15 BTC kaufen. Zuvor haben Sie zwei Transaktionen von jeweils 10 BTC erhalten und Sie haben zwei Banknoten mit einem Nennwert von jeweils „10“ in Ihrer Brieftasche. Die Quelle, aus der Sie sie erhalten haben, ist mit Bleistift auf jeder „Banknote“ vermerkt. Dies sind die Eingaben für Ihre neue Transaktion. Da es zwei Banknoten gibt, gibt es auch zwei Eingaben.
Du kannst nun diese Banknoten nehmen, „für Peter von Charlie“ darauf schreiben und sie deinem Freund geben. Diese Nachricht wird zum ersten Output der Transaktion. Da dein Freund dir das Wechselgeld zurückgeben muss, nimmt er 5 BTC aus seiner Brieftasche, schreibt „Wechselgeld für Peter von Charlie“ – wodurch ein weiterer Output für das Wechselgeld entsteht – und gibt es dir.
Wir haben den Prozess massiv vereinfacht, und an der Transaktion sind nur drei Banknoten beteiligt. Sie erhalten Ihre 20 BTC möglicherweise in „Kleingeld“, was bedeutet, dass es eine Reihe kleinerer Transaktionen statt zweier größerer geben wird. Dies würde daher viel mehr Ein- und Ausgaben erzeugen.
Das Sicherheitsproblem
Das Problem liegt in der Art und Weise, wie Ein- und Ausgaben sortiert werden. Es gibt keinen Standard für die Aufzeichnung dieser Daten; jede Geldbörse kann ihre eigene Sortiermethode verwenden. Einige listen zuerst die Ausgabeneingänge und dann die Ausgaben für das ausgegebene Wechselgeld auf, sodass Beobachter Informationen über die Geldmittel in den Geldbörsen von Absender und Empfänger erhalten. Andere sortieren die Eingänge nach dem Datum, an dem sie der Geldbörse hinzugefügt wurden, und die Liste wird fortgesetzt. Dies bedeutet, dass durch Datenanalyse Muster identifiziert werden können, die für eine bestimmte Geldbörse oder einen bestimmten Dienst spezifisch sind.
Es gibt noch ein weiteres potenzielles Problem bei der Entwicklung von Krypto-Wallets. Kristov Atlas, der Autor hinter BIP 0069, hat ein hypothetisches Szenario vorgeschlagen, bei dem ein Angreifer mit Zugriff auf den Code eines Wallets (z. B. ein Entwickler) diesen so ändert, dass die Ein- und Ausgaben basierend auf den Bits des privaten Schlüssels sortiert werden. Diese Änderung würde es dem Angreifer ermöglichen, den privaten Schlüssel allein durch die Verfolgung der Transaktionen zu finden, und dieses „Implantat“ wäre sehr schwer zu erkennen.
Wie kann das Problem gelöst werden?
Die Schwachstelle kann überwunden werden, indem die Ein- und Ausgaben der Transaktionen so geordnet werden, dass keine Muster erkennbar sind. BIP 0069 schlägt einen nichtdeterministischen Sortieransatz vor, also einen, der nicht aus einer gegebenen Eingabe bestimmt werden kann. Darüber hinaus sind dafür keine komplexen Algorithmen erforderlich; Sie müssen die Daten lediglich lexikografisch (in aufsteigender alphabetischer Reihenfolge) anordnen.
Tangem Wallet verwendet diesen Ansatz bereits. Ja, es ist für iOS- und Android-Geräte verfügbar.