我正在构建和应用程序,它将提供比特币支付。我知道当我将比特币从一个地址发送到另一个地址时,可以通过blockain API跟踪它以验证交易。收到一些资产后我想发回一些资产。客户将有一个输入字段,他将粘贴他的存款钱包地址。我订阅了区块链API来跟踪收到的资产到我的比特币地址。如何确认付款是由某个客户付款的?检查他的地址似乎并没有解决问题,因为如果客户使用Coinbase,Bitstamp等钱包,则会从多个地址进行交易。
答案 0 :(得分:2)
这里有一些帮手:
答案 1 :(得分:0)
比方说,爱丽丝想发送交易或消息以授予您消费权限。
第一位爱丽丝向您发送了plain-message
而不进行哈希处理。
第二个Alice执行2步操作。它使用Fhash函数对消息进行哈希处理。
Fhash(plain-essage)=Hashed-message //digital-fingerprint
然后爱丽丝使用非对称加密,它使用她的私钥加密哈希消息并将其发送给您。
Fae(Hashed-message,k) =Encrypted-message
// ae=asymmetric encryption
// k= is the symbol for the private key
// this operation also called the "signing"
现在您收到了2件事。 plain-message
和Encrypted-message
。 plain-message
包含交易金额以及Alice的公钥。因此,您收到了该消息,并且想要确保此消息或交易详细信息来自Alice。你打算怎么办?
首先,使用非对称解密,您将解密Encrypted-message
。这是非对称加密的好处。由于爱丽丝使用她的私钥对其进行了签名,因此您只能使用她的公钥对其进行解密。
Fad(Encrypted-message,K)=Hashed-message
// ad= asymmetric decryption
现在您已成功解密它并获得了Hashed-message
。但是现在您要确保此数据未被篡改。因此,使用相同的哈希函数,您将对发送给您的plain-message
进行哈希处理,并将其与解密后的数据进行比较。因为哈希函数对于相同的输入产生相同的结果。
如果
Fhash(plain-message)=decrypted-data
您可以说爱丽丝发送的消息没有更改。
请注意,我交替使用文字消息和交易,因为在加密货币中没有令牌传输。交易只是一条消息,它使您有权拥有消费能力