哈希算法
你可以把哈希法比作从政治家那里得到答案。你提供给他们的信息是清晰和可以理解的,而他们提供的输出看起来像是随机的文字流。

一个好的散列算法需要满足以下几个要求:
- 散列算法的输出长度必须是固定的(好的值是256字节)
- 即使输入数据的最小变化也必然导致输出的显著差异
- 相同的输入总是产生相同的输出
- 必须没有办法反转输出值来计算输入
- 计算 HASH 值不应该是计算密集型的,而应该是快速的
如果您查看一下简单的统计数据,就会发现可能的 HASH 值数量有限(但数量巨大) ,这仅仅是因为 HASH 长度有限。然而,我们的哈希算法(姑且称之为“政治化256”)应该足够可靠,它只会为不同的输入产生重复的哈希值,就像动物园里的猴子在打字机上正确输入哈姆雷特一样频繁!
签名
在签署一份文件时,你所需要做的就是在文件的文本上附加你的签名。数字签名是类似的: 您只需要将您的个人数据附加到您正在签署的文档中。
如果您理解哈希算法遵循的规则是,即使输入数据的最小变化也必须产生显著的输出差异,那么很明显,为原始文档创建的 HASH 值将不同于为附加签名的文档创建的 HASH 值。
原始文档和为文档生成的 HASH 值加上您的个人数据的组合是一个数字签名的文档。
这就是我们获取虚拟身份的方法,虚拟身份定义为在创建 HASH 值之前追加到文档中的数据。
接下来,您需要确保您的签名不能被复制,并且没有人能够代表您执行任何事务。确保您的签名安全的最佳方法是自己保存签名,并为其他人提供一种不同的方法来验证签名的文档。同样,我们可以求助于现成的技术和算法。我们需要使用的是公开密钥加密密码学,也被称为非对称密码学。
要实现这一点,您需要创建一个私钥和一个公钥。这两个键将处于某种数学关联中,并且相互依赖。您将用于生成这些密钥的算法将确保每个私钥具有不同的公钥。正如它们的名称所示,私钥是您将为自己保留的信息,而公钥是您将共享的信息。
如果您使用您的私钥(您的身份)和原始文档作为签名算法的输入值来创建 HASH 值,假设您保留了您的密钥秘密,那么您可以确保没有其他人可以为该文档生成相同的 HASH 值。

如果任何人需要验证您的签名,他或她将使用原始文档、您生成的 HASH 值和您的公钥作为签名验证算法的输入,以验证这些值是否匹配。
比特币如何工作?

当你把比特币发送给其他人时,你的钱包会创建一个交易输出,这是你发送比特币的人的地址。这笔交易将在比特币网络上注册,并将您的比特币地址作为交易输入。
当这个人将这些怎么比特币发送给其他人时,他们的地址将反过来成为交易输入,而其他人的比特币地址将成为交易输出。
使用这个系统,人们可以追踪比特币的交易,一直追溯到比特币最初创建的时候,了解在任何时候谁把它发送给了谁。这将创建一个完全透明的系统,其中所有事务都可以在任何时候进行检查。
参考文献:
https://www.toptal.com/bitcoin/cryptocurrency-for-dummies-bitcoin-and-beyond
https://maibitebi.cn/archives/3703
浙公网安备 33010602011771号