你如何將特定數量的比特幣返回到一個地址?
我正在嘗試編寫一個程序來接收比特幣,然後在一段時間後,將相同數量的比特幣返回到相同的地址。
你會怎麼做?比特幣是否有能力通過同一個地址發送和接收硬幣,還是我必須要求返回地址並以某種方式將發送的金額地址連結到返回地址?
您應該要求提供退貨地址。比特幣交易不包含任何“發件人地址”,它只引用另一個(先前)交易的輸出。輸出可以是 P2PKH(支付到公鑰雜湊),但也可以是 P2SH(支付到腳本雜湊),將來可能會實現其他一些。
獲得引用許多先前輸出的交易的可能性也很大,就像有人向您支付 1 BTC 之前收到許多較小的交易一樣。
這對您的使用者來說也是不直覺的,因為比特幣的最佳實踐是不關心比特幣來自哪裡,而是為收到的每筆交易生成一個新地址。
最重要的是,如果您還不是頂級專家,則不應該自己實施任何密碼學,因為有太多事情可能出錯。我建議使用適當的 API。
為了所有聖潔的愛,不要這樣做。考慮:
愛麗絲想向你發送 1 個比特幣。她要求她的錢包提供商向您發送 1 個比特幣。當 Bob 存入錢包時,她的錢包提供商會將其從 Bob 那裡獲得的比特幣發送給您。
您查看交易並看到硬幣來自 Bob 的存款地址。所以你把硬幣寄回那個地址。Alice 的錢包提供商看到收到的硬幣到 Bob 的存款地址並記入 Bob。
Bob 想知道為什麼他會從一個隨機的陌生人那裡收到一些比特幣,但由於他不知道你是誰,也無法聯繫到你,所以他只是保留了它們。哎呀,也許這是他作為小費罐公開的地址,他沒有理由不認為這是小費。
愛麗絲最終可能想知道為什麼她沒有得到她的比特幣。如果她與您聯繫,您將給她交易 ID。她會想,“嗯,這不是我的地址。但它必須屬於我的錢包提供商。所以他們必須有比特幣。當我向他們解釋他們是我的時,他們應該把它們記給我。”
現在我們有一個巨大的混亂,每個人都在指責其他人,而愛麗絲認為她的錢包提供商從她那裡偷了東西,而你認為這不是你的錯。但你錯了。
請不要這樣做。這沒有任何意義。(上面的故事是真實的。只是為了保護無辜者……和有罪者而改變了名字。)