目录
前言(为了回答这个问题,有几件事需要理解。)
1、首先是哈希是什么。
2、接下来要了解的是公钥和私钥
3、其他
公钥和公有地址有什么区别?
总结
前言(为了回答这个问题,有几件事需要理解。)
1、首先是哈希是什么。
简短的版本是它是一个返回特定长度值的函数。因此,无论输入是“Hi”还是“Hello”还是“This is an more piece of data”,哈希函数都将返回相同长度的输出,并且该输出将始终是相同的大小,并且对于给定的输入,输出将始终相同。哈希函数的另一个方面是它是“单向”的。将输入输入到哈希函数中并获得输出非常容易,但基本上不可能获得一些哈希输出并从中确定输入是什么。如果您能够这样做,则哈希被视为已损坏且无法使用。将哈希输出映射到输入的唯一方法是在输入和输出之间进行搅动,并将它们记录在查找表中。
2、接下来要了解的是公钥和私钥
无论是椭圆曲线还是RSA,总体思路都是一样的。你有一个“私钥”,你可以从中派生你的公钥。人们可以将内容加密到您的公钥,如果他们这样做,那么只有您的私钥才能解密它们。因此,您可以公开发布您的公钥,然后人们可以加密只能使用您的私钥解锁的消息。私钥/公钥的第二个特点是数字签名。签名只能由您的私钥创建,但您的公钥可用于验证签名是否确实必须使用您的私钥创建。例如,我可以使用我的私钥来“签名”PDF文档,如果你有我的公钥、文档和签名文本,你可以验证我确实为该文档做了那个签名,而且我是用我的私钥做的。签名证明我拥有私钥,即使它不会向您或其他任何人透露私钥。
3、其他
发送比特币的最常见方式是发送到地址,该地址是比特币公钥的哈希值。我们这样做的原因是,如果椭圆曲线存在漏洞,您的资金仍然是安全的,因为在您花钱之前甚至不知道公钥,只有哈希值是已知的。公钥只有在你花钱的时候才会显示,因为有必要证明数字签名来自你的私钥。比特币验证交易有效的方式是用公钥检查签名(被签名的数据不是PDF,而是比特币交易本身),比特币矿工和用户验证私钥确实做了那个签名(并为这个交易做了),然后他们还要验证公钥哈希与输出交易的哈希相同。如果这两件事是真的 - 签名是好的,哈希值匹配 - 那么交易是有效的,钱可以花掉。
除了公钥之外,比特币还使用哈希值的原因是安全性。假设椭圆曲线存在一个缺陷,允许某人在 3 小时内从公钥派生私钥,但哈希函数仍然没有被破坏。那么你的钱在绝大多数时间里都是安全的,因为你可以花掉它,并在有人查看该交易(显示你的签名和你的公钥)之前,使用你的公钥对你的私钥进行逆向工程。而且你的公钥在你花钱之前甚至不会被透露,所以只要哈希函数仍然安全,你基本上没问题。
因此,它是一种故障安全备份。在椭圆曲线或哈希函数被破坏的紧急情况下,用户仍然有一种紧急备份方式,可以在比特币软件更新时暂时保持他们的资金安全。这就是为什么很多人总是说你不应该重复使用地址,因为如果你以前从一个地址花钱,那么它的公钥已经是公开的,你就会失去紧急备份保护。
公钥和公有地址有什么区别?
- 生成方式:公钥是密钥对的一部分,直接由私钥生成;而公有地址是通过特定的算法,如哈希和编码,从公钥衍生出来的。
- 使用场景:公钥在加密和签名验证中使用,而公有地址则用于比特币交易中接收资金。
- 公开性:两者都可以公开,但公钥是生成公有地址的中间步骤,公有地址是最终用于交易的标识。
- 安全性:私钥必须保密,泄露私钥会导致资金损失;而公钥和公有地址可以公开,因为它们不包含私钥信息
总结
公钥,作为非对称加密体系中的一个关键元素,直接从私钥派生,它允许用户进行加密通信和安全的交易签名。而公有地址,则是公钥经过一系列哈希和编码过程后得到的,它为比特币网络中的资金转移提供了一个标准化的、可识别的格式。 公钥的公开性质使其成为生成公有地址的理想候选者,而公有地址的生成方式确保了即使在公开环境下,私钥的安全性也不会受到威胁。这种设计巧妙地平衡了实用性和安全性,是比特币系统安全性的基石之一。
(地址是公钥的哈希值。因此,当您拥有私钥时,可以使用它来派生公钥,也可以用它来派生地址/哈希值。这就是为什么你只需要备份私钥,因为其他一切都可以从中派生出来)