比特币客户端的消息签名功能
比特币客户端有个消息签名功能,很多人不知道干嘛用的。
其实他的用处是证明某个收款地址确实是你的,主要用于身份确认,或者私下交易时的余额检查,确定对方是否那么多钱。
如果说我直接客户端截图就行了,话说,这年头PS改个数字或文本一点代价都没有,谁知道是不是真实的截图。比如我PS成1DkyBEKt5S2GDtv7aQw6rQepAvnsRyHoYM这个地址哈,妥妥的61W比特币的拥有者,你信么
而签名验证就是可以验证对方是否真的拥有这个收款地址了,再结合blockchain查询其余额,就可以确认对方是否拥有那么多钱了。
验证操作流程:
1.客户,把自己的QQ号或商家的QQ号,或任意的短句,发送给商家。
2.商家,使用点击【对消息签名】,第一行,点击地址簿,选择要签名的地址,这个地址只能是商家真实拥有的,因为需要私钥才能签名,blockchain上随便复制个收款地址过来是签不了名的。第二行,中间的大框里填写客户端要求签名的信息,如QQ号,如指定的短句。我这里以hello为例。点击消息签名生成,在第三行会出现的一串文本,发给客户。
3. 客户收到签名后的信息后,在客户端点击【对消息签名】,点【验证消息】,第一行填写商家当时签名的收款地址,第二行大框里填写之前要求签名的信息,QQ号码或短语。第三行填写刚收到的签名信息,点击【验证消息签名】,如果这个地址确实是商家所有的,那会效验通过,如果是PS伪造的,肯定通过不了。
4. 搞定,你可以放心跟对方交易了
比如14cZMQk89mRYQkDEj8Rn25AnGoBi5H6uer这个地址,拥有1200个比特币,谁都可以说这个地址是我的,但怎么证明这个地址确实是属于你的?
总不能每次证明都得发0.00001比特币给别人才能证明吧,那多麻烦,而且还浪费钱,所以通过签名这东西就可以证明了。ps: 事实上这是btcguild的收款地址
再比如1NhL5trpj2HTvZG1xPDiVcGsjKqE4USNpv这个地址,里面有0.1比特币
你在签名验证里,第一行填这个地址 1Nh....
第二行填我是cross1943,拥有1NhL5trpj2HTvZG1xPDiVcGsjKqE4USNpv里的比特币
第三行填写我的签名后信息HHncYjCbXkMvA7mje6xIJYRpZCHngHYaubJrhR7i/EwgGBCazV7rTm6qKtuxPUUYuIxMKInXmcuSNHCNTkrulmg=
如果你效验通过了,就证明1Nh....确实是属于cross1943的,如果签名效验失败,那就说明我没有拥有1Nh....的私钥,也就不是1Nh....的所有者。。
而一开始举例的14cZ.....这个地址我并未拥有他的私钥,也就不是他的拥有者,根本做不出签名出来,也无法提供给其他人效验,而若做假的签名信息,其他人在签名验证时会被提示签名错误的,一检查就知道是假的了,你可以拿btcguild的那个地址试试就知道了
来自:http://bbs.btcman.com/forum.php?mod=viewthread&tid=3191
Scan QR code with WeChat