Zincir içi ödeme mesajları
HOBCMSG1, cüzdanların tek bir OP_RETURN çıktısı kullanarak ödemeye özel bir UTF-8 mesajı eklemesine olanak tanır. Şifrelenmiş metin herkese açıktır; yalnızca alıcının ödeme anahtarı şifreyi çözebilir.
Genel Bakış
Web cüzdanı, isteğe bağlı özel mesaj (en fazla 300 karakter) göndermeyi destekler. Aynı havale formatı yayınlanmıştır, böylece Windows, Linux, Android ve üçüncü taraf uygulamalar daha sonra uyumlu gönderme/alma işlevlerini uygulayabilirler.
Gizlilik modeli
Ödeme tutarı, adresler ve zaman herkese açık kalır. Zincir üzerindeki mesaj baytları şifrelidir. Alıcının ödeme özel anahtarına sahip herkes şifreyi çözebilir. Saklama web cüzdanı hedefleri, oturum açmış alıcı için site tarafından şifresi çözülür (saklama ile aynı güven ilişkisi).
Tel formatı
Tek bir OP_RETURN veri yükü:
HOBCMSG1 | ver:1 | flags:0 | utf8_plaintext
ASCII öneki HOBCMSG1, ardından ver (1 bayt, şu anda 1), flags (1 bayt; bit0 = şifrelenmiş), geçici sıkıştırılmış genel anahtar (33 bayt), AES-GCM nonce (12 bayt), şifreli metin, ardından 16 baytlık doğrulama etiketi.
Kriptografi
Gönderici, alıcının sıkıştırılmış ödeme genel anahtarıyla ECDH kullanarak geçici bir secp256k1 anahtar çifti oluşturur, ardından 32 baytlık bir anahtar için HKDF-SHA256 (bilgi HOBCMSG1-v1) ve son olarak AES-256-GCM şifrelemesi uygular. Alıcı genel anahtarı, hedef hobc1… adresinin P2WPKH tanık programıyla hash160 eşleşmesi ZORUNLUDUR.
Sınırlar
HobbyHash cüzdanları, ödeme notları için 300 karakterlik UTF-8 düz metin sınırı kullanır. Düğüm aktarım politikası, daha büyük OP_RETURN veri taşıyıcılarına izin verir; uygulama yüklerini ücret duyarlı tutun.
Alıcının genel anahtarı
Hedef adresin önceden bilinen bir genel anahtarı varsa (önceden yapılan harcama veya sadece izleme/sıcak cüzdan adresi), cüzdanlar bunu otomatik olarak çözümleyebilir. Aksi takdirde, gönderenin adresle eşleşen sıkıştırılmış genel anahtarı sağlaması gerekir. Eşleşen bir genel anahtar olmadan, özel mesaj eklenemez (düz metin gönderme işlemi yine de çalışır).
RPC örneği
Ödeme ve veri çıktısı oluşturun (hex, HOBCMSG1 yüküdür), ardından fonlayın/imzalayın/yayınlayın — veya mevcut olduğunda deneysel send RPC'i kullanın:
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
Uygulama geliştiricileri için
Bu belgeye karşı şifreleme/şifre çözme işlemini uygulayın. Dosya gezginlerinde HOBCMSG1'ı algılayın ve şifrelenmiş mesaj rozeti gösterin; şifrelenmiş metni sohbet metni olarak göstermeyin. Masaüstü ve mobil HobbyHash cüzdanları bu formatı yeniden kullanacaktır.