多可以组合成236个不同的数,这个庞大的集合能够满足与比特币相关的任何标记需 要。此外,任意两个不同的信息输入,想要通过SHA256产生相同数字输出的概率 可以说微乎其微。因为输入信息的微小变动将会导致输出数字的巨大变化。这就保证 了输入信息与输出数字的一一对应。最后,散列还有一个重要特征,即想要通过输 出数字来反推出输入信息,这是极其困难的。因此,如果想要生成一个特殊的输出数 字,就只能通过随机尝试的办法逐个进行正向运算,而不能由输出结果逆向推出输入 信息。这个特征是比特币能够顺利运行的重要基石。 (2)工作量证明( Proof- of- Work) 倾注了更多更复杂劳动的事物具有更高的价值,这是比特币运行的哲学基础。让 我们先以防范垃圾邮件为例来说明什么是工作量证明。不妨做出如下假定,即如果 个人愿意花10分钟写一封邮件,他就不会在意再多花一分钟对其进行处理,以证明 自己写邮件付出的努力是真实的。而对垃圾邮件的传播者而言,每封邮件都要多花一 分钟才能发送,这是完全不能接受的。因此我们可以设立以下规则,即在每次发送邮 件之前都要算出一个随机数,以至于将这个随机数和邮件内容一起输入SHA256散列 函数时,得到的256位二进制数的前10位均为0。如前所述,我们无法预先选择一个 前十位为0的数,并利用SHA256算法反推出这个随机数是什么。唯一可行的办法只 能是随机抽取一个数,将其和邮件内容放入SHA256中进行计算,看结果是否满足要 求。如果不满足,就换一个随机数继续进行尝试,直到要求满足为止。只要我们设定 的要求足够简单(要求全为0的个数不太多),那么寻找这个随机数的过程也就比较 简单,只不过要花去一定的时间(例如几秒或几分钟)。对于真实的邮件而言,为了 证明自身价值,付出少量时间进行计算是值得的。但对于垃圾邮件而言,这将导致邮 件发送者的时间成本急剧上升。因此,上述机制的引入将会显著减少垃圾邮件的产生。 对比特币而言,挖矿( Mining)也是使用随机数进行工作量证明的过程。这种过程虽 然从表面上来看没有产生任何价值,但却是解决互联网中信任问题的有效办法,是在 不可靠的网络环境中一种较为可靠的信用证明 (3)公开密钥密码体系 该体系简称公钥体系。在信息传递过程中,发送方通过一把密钥将信息加密,接 收方在收到信息后,再通过配对的另一把密钥对信息进行解密,这就保证了信息传递 过程的私密性与安全性。而密钥无非是一组数字,通过将原始信息与这组数字放在 起进行特定运算,就能够把信息转换为另外一种格式,从而实现加密。解密过程则刚4 多可以组合成 2 256 个不同的数,这个庞大的集合能够满足与比特币相关的任何标记需 要。此外,任意两个不同的信息输入,想要通过 SHA256 产生相同数字输出的概率, 可以说微乎其微。因为输入信息的微小变动将会导致输出数字的巨大变化。这就保证 了输入信息与输出数字的一一对应。最后,散列还有一个重要特征 ,即想要通过输 出数字来反推出输入信息,这是极其困难的。因此,如果想要生成一个特殊的输出数 字,就只能通过随机尝试的办法逐个进行正向运算,而不能由输出结果逆向推出输入 信息。这个特征是比特币能够顺利运行的重要基石。 (2)工作量证明(Proof-of-Work) 倾注了更多更复杂劳动的事物具有更高的价值,这是比特币运行的哲学基础。让 我们先以防范垃圾邮件为例来说明什么是工作量证明。不妨做出如下假定,即如果一 个人愿意花 10 分钟写一封邮件,他就不会在意再多花一分钟对其进行处理,以证明 自己写邮件付出的努力是真实的。而对垃圾邮件的传播者而言,每封邮件都要多花一 分钟才能发送,这是完全不能接受的。因此我们可以设立以下规则,即在每次发送邮 件之前都要算出一个随机数,以至于将这个随机数和邮件内容一起输入 SHA256 散列 函数时,得到的 256 位二进制数的前 10 位均为 0。如前所述,我们无法预先选择一个 前十位为 0 的数,并利用 SHA256 算法反推出这个随机数是什么。唯一可行的办法只 能是随机抽取一个数,将其和邮件内容放入 SHA256 中进行计算,看结果是否满足要 求。如果不满足,就换一个随机数继续进行尝试,直到要求满足为止。只要我们设定 的要求足够简单(要求全为 0 的个数不太多),那么寻找这个随机数的过程也就比较 简单,只不过要花去一定的时间(例如几秒或几分钟)。对于真实的邮件而言,为了 证明自身价值,付出少量时间进行计算是值得的。但对于垃圾邮件而言,这将导致邮 件发送者的时间成本急剧上升。因此,上述机制的引入将会显著减少垃圾邮件的产生。 对比特币而言,挖矿(Mining)也是使用随机数进行工作量证明的过程。这种过程虽 然从表面上来看没有产生任何价值,但却是解决互联网中信任问题的有效办法,是在 不可靠的网络环境中一种较为可靠的信用证明。 (3)公开密钥密码体系 该体系简称公钥体系。在信息传递过程中,发送方通过一把密钥将信息加密,接 收方在收到信息后,再通过配对的另一把密钥对信息进行解密,这就保证了信息传递 过程的私密性与安全性。而密钥无非是一组数字,通过将原始信息与这组数字放在一 起进行特定运算,就能够把信息转换为另外一种格式,从而实现加密。解密过程则刚