Pesan pembayaran on-chain
HOBCMSG1 memungkinkan dompet untuk melampirkan pesan UTF-8 pribadi ke pembayaran menggunakan satu output OP_RETURN. Teks sandi bersifat publik; hanya kunci pembayaran penerima yang dapat mendekripsinya.
Ringkasan
Fitur pengiriman Web Wallet mendukung pesan pribadi opsional (maksimal 300 karakter). Format transfer yang sama dipublikasikan sehingga Windows, Linux, Android, dan aplikasi pihak ketiga dapat mengimplementasikan pengiriman/penerimaan yang kompatibel di kemudian hari.
Model privasi
Jumlah pembayaran, alamat, dan waktu tetap bersifat publik. Byte pesan di blockchain berupa teks terenkripsi. Siapa pun yang memiliki kunci privat pembayaran penerima dapat mendekripsinya. Tujuan dompet web kustodian didekripsi oleh situs untuk penerima yang masuk (kepercayaan yang sama seperti kustodian).
Format kawat
Muatan data OP_RETURN tunggal:
HOBCMSG1 | ver:1 | flags:0 | utf8_plaintext
Awalan ASCII HOBCMSG1, kemudian ver (1 byte, saat ini 1), flags (1 byte; bit0 = terenkripsi), kunci publik terkompresi sementara (33 byte), nonce AES-GCM (12 byte), teks sandi, kemudian tag otentikasi 16 byte.
Kriptografi
Pengirim menghasilkan pasangan kunci secp256k1 sementara, ECDH dengan kunci publik pembayaran terkompresi penerima, HKDF-SHA256 (info HOBCMSG1-v1) ke kunci 32-byte, kemudian AES-256-GCM. Kunci publik penerima HARUS cocok dengan hash160 program saksi P2WPKH dari alamat tujuan hobc1….
Batasan
Dompet HobbyHash menggunakan batasan teks biasa UTF-8 300 karakter untuk memo pembayaran. Kebijakan relai node memungkinkan pembawa data OP_RETURN yang lebih besar; menjaga agar muatan aplikasi tetap mempertimbangkan biaya.
Kunci publik penerima
Jika alamat tujuan sudah memiliki kunci publik yang diketahui (pengeluaran sebelumnya, atau alamat dompet hanya-pantau/hot-wallet), dompet dapat menyelesaikannya secara otomatis. Jika tidak, pengirim harus memberikan kunci publik terkompresi yang sesuai dengan alamat tersebut. Tanpa kunci publik yang cocok, pesan pribadi tidak dapat dilampirkan (pengiriman biasa tetap berfungsi).
Contoh RPC
Buat pembayaran plus keluaran data (heksadesimal adalah muatan HOBCMSG1), lalu danai/tandatangani/siarkan — atau gunakan send RPC eksperimental bila tersedia:
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
Untuk pengembang aplikasi
Terapkan fungsi encode/decrypt pada dokumen ini. Deteksi HOBCMSG1 di penjelajah dompet dan tampilkan lencana pesan terenkripsi — jangan tampilkan teks sandi sebagai teks obrolan. Dompet desktop dan seluler HobbyHash akan menggunakan kembali format ini.