在比特幣交易中附加額外的數據/簡訊?
我正在建構一個單頁網路應用程序,我需要將使用者輸入的字元串(電子郵件地址)連同他們的比特幣付款一起發送。例如,我有一個單頁 Web 應用程序,它發出禮券條碼並接受比特幣或山寨幣。我遇到的問題是,如果使用者向我的靜態比特幣地址付款,我怎麼知道將條碼資訊發送到哪裡?我需要某種形式的聯繫方式,在我的情況下,它是使用者在頁面上輸入的電子郵件地址。使用者可以通過哪些方式向我發送他們的電子郵件地址?
我遇到的一些問題是靜態比特幣地址。如果多個人向同一個比特幣地址付款,我將不知道將條碼發送給誰。但是如果我有 100 個預先生成的地址。其中一個是隨機選擇的,然後與電子郵件地址相結合。同時向同一個 btc 地址付款的人發生衝突的可能性較小。
現在的問題是向我發送電子郵件+btc 地址以驗證交易是否已完成。
我想出的其他解決方案之一是需要另一個具有內置消息傳遞功能的山寨幣。我知道的唯一 2 個是 Florincoin 和 NXT,你可以在每筆交易中包含一條消息。唯一的問題是它要求應用程序所有者持有 florincoin 或 nxt(我不相信你可以在乙太坊中附加消息?)。使用 shapeshift 將 BTC 轉換為其中一種硬幣是可行的,但在此 shapeshift 交換期間您無法附加消息。如果 shapeshift 啟用了在轉換過程中附加消息的功能,這將通過將電子郵件地址發送給應用程序所有者來從技術上解決問題。
還有哪些其他解決方案可能不需要集中式伺服器來收集這些數據?如果您有解決方案,集中式伺服器解決方案也可以。
顯而易見的解決方案是要求付款具有 OP_RETURN 輸出,其中包含加密給您的電子郵件地址。這並不簡單,也沒有支持類似功能的錢包,但它在技術上是可行的。
對於 1 地址問題,您可以使用確定性錢包,它可以根據需要生成任意數量的地址。如果您想花哨並能夠提供退款,您可以使用 BIP47。
不久前,我為 Armory 建構了一個網上商店範例應用程序,您可能想查看它,它會為任何交易生成一個新地址。你可能想看看:
<https://github.com/etotheipi/BitcoinArmory/tree/master/webshop>