- 1.前言
- 2.为什么是区块链编程而不是比特币编程?
- 3.为什么是 C#?
- 4.预备条件
- 5.本书众筹
- 6.补充阅读
- 7.图标
- 8.许可: CC (ASA 3U)
- 9.项目设置
- 1.比特币地址
- 2.交易
- 3.区块链
- 4. 区块链不仅仅是比特币
- 5.支付比特币
- 6.作为真实性验证方法的所有权证明
- 1.足够随机了吗?
- 2.秘钥加密
- 3.秘钥的生成
- 1.P2PK[H] (向公钥付款 [Hash])
- 2.多重签名
- 3.P2SH ( 向脚本哈希付款)
- 4.灵活机动性
- 5.使用 TransactionBuilder
- 1.颜色币
- 2.发行一项资产
- 3.传输资产
- 4.单元测试
- 5.李嘉图合约
- 6.流动的民主
- 7.烧钱和声誉证明
- 8.存在性证明
- 1.比特币发展的挑战
- 2.如何证明一个币存在于区块链上
- 3.如何证明一个颜色币存在于区块链上
- 4.断开与第三方 API 的信任关系
- 5.防止延展性攻击
- 6.保护你的私钥
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
6.作为真实性验证方法的所有权证明
在开始下一章节前,我授予你一个秘钥,用于向我付款。
还记得我说的吗:
地址: 1KF8kUVHK42XzgcmJF4Lxz4wcL5WDL97PB
签名: H1jiXPzun3rXi0N9v9R5fAWrfEae9WPmlL5DJBj1eTStSvpKdRR8Io6/uT9tGH/3OnzG6ym5yytuWoA9ahkC3dQ=
消息: Nicolas Dorier Book Funding Address
这些构成了我拥有这本书私钥的证明。
你可以通过下面的代码验证正确性:
var address = new BitcoinAddress("1KF8kUVHK42XzgcmJF4Lxz4wcL5WDL97PB");
var msg = "Nicolas Dorier Book Funding Address";
var sig =
"H1jiXPzun3rXi0N9v9R5fAWrfEae9WPmlL5DJBj1eTStSvpKdRR8Io6/uT9tGH/3OnzG6ym5yytuWoA9a
hkC3dQ=";
Console.WriteLine(address.VerifyMessage(msg, sig));
这些就是我将授予你的。
因此如果我给你这个任务:
消息: Prove me you are 1LUtd66PcpPx64GERqufPygYEWBQR2PUN6
你可以使用私钥按照以下方法证明:
msg = "Prove me you are 1LUtd66PcpPx64GERqufPygYEWBQR2PUN6";
sig = paymentSecret.PrivateKey.SignMessage(msg);
Console.WriteLine(paymentSecret.GetAddress().VerifyMessage(msg, sig));
你将被提醒在以下网址证明自己的 ID: http://blockchainprogramming.azurewebsites.net/
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论