织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 比特币 > 比特币资讯

Blockstream 创始人 Adam Back 往事:Hashcash 与比特币引擎 (3)

时间:2021-06-04 18:26来源:未知 作者:admin 点击:
Hashcash Hashcah 类似于 Dwork 和 Naor 的防滥发方案,目的也是一样的,但 Back 提出了一些额外的用途,比如抵抗滥用匿名中转商。但就像这个名字暗示的那样,

Hashcash

Hashcah 类似于 Dwork 和 Naor 的防滥发方案,目的也是一样的,但 Back 提出了一些额外的用途,比如抵抗滥用匿名中转商。但就像这个名字暗示的那样,Hashcash 的基础跟 Dwork 和 Naor 所用的不是同一套,它基于哈希算法。

哈希算法是一种密码学工具,它可以接受任意数据 —— 无论是一个字母还是一整本书 —— 作为输入,然后输出一个长度确定的、看起来毫无规律的数字。

举个例子,「This is a sentence」 这个句子的 SHA-256 哈希值,是如下的十六进制数字:

干货 | 创世文档:Adam Back 如何设计出比特币的引擎

「转换」 为常规的十进制数字为:

干货 | 创世文档:Adam Back 如何设计出比特币的引擎

二进制形式则是:

干货 | 创世文档:Adam Back 如何设计出比特币的引擎

但是,「This, is a sentence」 的 SHA-256 哈希值,却是:

干货 | 创世文档:Adam Back 如何设计出比特币的引擎

如你所见,仅仅只是插入一个标点,产生的哈希值也会完全不同。而且,重要的是,两个句子的哈希值都是完全无法预测的;即使你知道了第一个句子的哈希值,也无法从中推导出第二个句子的哈希值。要想知道,唯一的办法就是实际运行哈希计算。

Hashcash 很聪明地运用了这种数学工具。

在 Hashcash 中,邮件的元数据(如 「发送者地址」、「收件人地址」、发送时间,等)都被形式化为一个协议。此外,电子邮件的发送者必须给这部分元数据加入一个随机数字,称作 「nonce」。所有这些元数据,包括这个 「nonce」,(输入哈希函数后)可得出一个哈希值,这个哈希值看起来也会跟上面所示的随机数一样,毫无章法。

奥妙之处在于:不是随便什么哈希值都可以算作 「有效的」。哈希值的二进制形式,必须以预定数量的 「0」 开头,才算有效;比如说,要有 20 个 「0」 开头。发送者就要找出某个 nonce,使得哈希值的开头要有 20 个 「0」,才行。但是,他是没法预先知道哪个 nonce 能做到这一点的。

因此,要想得出这样的有效的哈希值,发送者只有一种办法:试错(也即 「蛮力计算」)。他只能不断尝试不同的 nonce,直到找出一个有效的组合。否则,TA 的邮件就会被收件人的邮件客户端拒绝。就像 Dwork and Naor 的方案,Hashcash 也要求付出计算资源:这是一种工作量证明系统。 (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容