On-Chain-Zahlungsnachrichten
HOBCMSG1 ermöglicht es Wallets, einer Zahlung mithilfe eines OP_RETURN-Ausgangs eine private UTF-8-Nachricht anzuhängen. Der Chiffretext ist öffentlich; nur der Zahlungsschlüssel des Empfängers kann ihn entschlüsseln.
Überblick
Web Wallet unterstützt das Senden einer optionalen privaten Nachricht (maximal 300 Zeichen). Das gleiche Übertragungsformat wird veröffentlicht, sodass Windows, Linux, Android und Drittanbieter-Apps später kompatible Sende-/Empfangsfunktionen implementieren können.
Datenschutzmodell
Zahlungsbetrag, Adressen und Zeitpunkt bleiben öffentlich. Die Nachrichtenbytes in der Blockchain sind verschlüsselt. Jeder, der über den privaten Zahlungsschlüssel des Empfängers verfügt, kann sie entschlüsseln. Verwahrungs-Web-Wallets werden von der Website für den angemeldeten Empfänger entschlüsselt (gleiches Vertrauen wie bei der Verwahrung).
Drahtformat
Einzelne OP_RETURN-Datennutzlast:
HOBCMSG1 | ver:1 | flags:0 | utf8_plaintext
Präfix ASCII HOBCMSG1, dann ver (1 Byte, aktuell 1), flags (1 Byte; Bit 0 = verschlüsselt), ephemerer komprimierter öffentlicher Schlüssel (33 Bytes), AES-GCM-Nonce (12 Bytes), Chiffretext, dann 16-Byte-Authentifizierungs-Tag.
Kryptographie
Der Absender generiert ein temporäres secp256k1-Schlüsselpaar, wobei ECDH mit dem komprimierten Zahlungsschlüssel des Empfängers, HKDF-SHA256 (info HOBCMSG1-v1) zu einem 32-Byte-Schlüssel und anschließend AES-256-GCM verwendet wird. Der öffentliche Schlüssel des Empfängers muss mit dem P2WPKH-Zeugenprogramm der Zieladresse hobc1… übereinstimmen (Hash160-Übereinstimmung).
Grenzen
HobbyHash-Wallets verwenden ein Limit von 300 Zeichen für UTF-8-Klartext in Zahlungsbelegen. Die Node-Relay-Richtlinie erlaubt größere OP_RETURN-Datenträger; die Anwendungsnutzdaten sollten gebührenbewusst verwaltet werden.
öffentlicher Schlüssel des Empfängers
Wenn die Zieladresse bereits einen bekannten öffentlichen Schlüssel besitzt (z. B. durch vorherige Ausgaben oder als Watch-Only-/Hot-Wallet-Adresse), können Wallets diesen automatisch auflösen. Andernfalls muss der Absender den komprimierten öffentlichen Schlüssel angeben, der zur Adresse passt. Ohne passenden öffentlichen Schlüssel kann keine private Nachricht angehängt werden (einfaches Senden funktioniert weiterhin).
RPC Beispiel
Erstellen Sie eine Zahlungs- und Datenausgabe (Hexadezimalwert ist die HOBCMSG1-Nutzlast), und führen Sie dann die Finanzierung/Signatur/Übertragung durch – oder verwenden Sie, falls verfügbar, das experimentelle send RPC:
hobbyhash-cli -rpcwallet=WALLET send '{"hobc1q…": 1.5, "data": "484f42434d534731…"}'
# Or raw construction:
hobbyhash-cli createrawtransaction '[]' '[{"hobc1q…":1.5},{"data":"484f42434d534731…"}]'
hobbyhash-cli -rpcwallet=WALLET fundrawtransaction HEX
hobbyhash-cli -rpcwallet=WALLET signrawtransactionwithwallet FUNDED_HEX
hobbyhash-cli sendrawtransaction SIGNED_HEX
Für App-Entwickler
Implementieren Sie die Kodierung/Entschlüsselung für dieses Dokument. Erkennen Sie HOBCMSG1 in Browsern und zeigen Sie ein Symbol für verschlüsselte Nachrichten an – der Chiffretext wird nicht im Chat angezeigt. Desktop- und mobile HobbyHash-Wallets verwenden dieses Format.