Glossar / Entwicklerreferenz
Label
- Was ist das Label?
- Das Label in einem Bitcoin-URI benennt die Person oder das Unternehmen, das bezahlt wird, und in einer Wallet ist es die private Notiz, die Sie einer Adresse oder einer Transaktion beifügen.
Spezifiziert im BIP-21.
Labels sind der einzige Teil einer Bitcoin-Zahlung, der allein für Menschen existiert. Nichts, was Sie in ein Label eingeben, erreicht die Blockchain, und nichts in Ihrer Seed-Phrase bringt es zurück: Bitcoin Core ersetzte sein altes Kontensystem in Version 0.17.0 im Oktober 2018 durch Labels, und sie liegen allein in der Wallet-Datei. Verlieren Sie sie, kostet Sie das Ihre eigene Transaktionshistorie zum Zeitpunkt der Steuererklärung.
So funktioniert es
Das Wort Label umfasst zwei verschiedene Dinge, und sie auseinanderzuhalten erspart viel Verwirrung.
Das erste ist der Parameter label, den BIP21 definiert. Er reist in einem Zahlungs-URI als prozentkodiertes UTF-8, sodass label=Coffee%20Shop auf Ihrem Bestätigungsbildschirm als Coffee Shop erscheint. Es ist Hinweistext, den derjenige beisteuert, der den URI erstellt hat. Keine Signatur deckt ihn ab, keine Wallet prüft ihn, und ein Angreifer, der einen Phishing-Link baut, wählt ihn genauso frei wie ein ehrlicher Händler.
Das zweite ist die Notiz, die Sie selbst schreiben. Bitcoin Core stellt sie über setlabel, getaddressesbylabel und listlabels bereit, die API, die in 0.17.0 kam, als Konten als veraltet galten, und die sie fertig ersetzte, als die Kontoaufrufe in 0.18.0 entfernt wurden. Sparrow, Electrum und die meisten mobilen Wallets halten ein gleichwertiges Feld vor.
Labels auf Wallet-Seite sind Metadaten neben Ihren Schlüsseln, nicht in ihnen. Stellen Sie eine Seed-Phrase in frischer Software wieder her, kommt jede Coin zurück, ohne sich zu erinnern, woher sie stammt. BIP329 existiert, um die Hälfte dieses Problems zu lösen, die die Portabilität betrifft: Es definiert einen JSON-Lines-Export mit einem Datensatz pro Zeile, jeder mit einem Typ tx, addr, pubkey, input, output oder xpub, einer Referenz und dem Label-Text. Mehrere Desktop- und mobile Wallets können das Format lesen und schreiben, sodass Labels beim Wechsel der Software mitwandern können.
Wo Sie es sehen
Labels sind in drei Situationen tragend, die nichts damit zu tun haben, dass Zahlungen ordentlich aussehen.
Die Coin-Kontrolle ist die erste. Zu entscheiden, welche nicht ausgegebenen Outputs ausgegeben und welche getrennt gehalten werden, funktioniert nur, wenn Sie sie unterscheiden können, und das Label hält fest, dass diese Coin aus einer verifizierten Auszahlung einer Börse kam, während jene aus einem Peer-to-Peer-Handel einging. Führen Sie sie in einer Transaktion zusammen, haben Sie die beiden Historien dauerhaft verknüpft. Niemand betreibt Zusammenführungsvermeidung aus dem Gedächtnis.
Steuerunterlagen sind die zweite. Ihre Anschaffungskosten für eine bestimmte Coin stehen in Ihren eigenen Notizen, weil eine Übertragung in Selbstverwahrung keinen Preis trägt. Eine Wallet mit beschrifteten Einzahlungen und dem notierten Fiat-Betrag ist eine Tabelle, die Sie bereits haben; eine Wallet voller unbeschrifteter UTXO ist ein Nachmittag Rekonstruktion pro Jahr.
Phishing ist die dritte, und sie läuft in die andere Richtung. Ein URI-Label ist vom Angreifer kontrollierter Text. Einen vertrauten Firmennamen auf einem Zahlungsbildschirm zu sehen, bedeutet, dass jemand diesen Namen in eine Zeichenkette getippt hat, mehr nicht.
Praktische Gewohnheit: Beschriften Sie im Moment der Transaktion, wenn Sie noch wissen, worum es ging, und exportieren Sie die Labels zusammen mit Ihrem Wallet-Deskriptor, wann immer Sie eine Sicherung anlegen. Eine Seed-Phrase plus ein Deskriptor plus eine Label-Datei ist eine vollständige Wiederherstellung. Eine Seed-Phrase allein bringt das Geld zurück und verliert die Geschichte.
Label vs. PP memo
Ein Memo im BIP70-Zahlungsprotokoll war Händlertext, der in einer signierten Nachricht reiste, sodass eine Wallet es zumindest an einen Zertifikatsinhaber binden konnte. Ein BIP21-Label reist im Klartext, ohne dass etwas für es bürgt. Dieser Unterschied war das ganze Argument für das Zahlungsprotokoll, und es hat es nicht gerettet: BIP70 wurde in Version 0.20.0 im Juni 2020 aus Bitcoin Core entfernt, sodass unsignierte Labels das Format blieben, das tatsächlich alle verwenden.