- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在介绍比特币的运行原理之前,必须首先厘清以下六个重要的基本概念:散
列、工作量证明、公开密钥密码体系、交易、区块与挖矿。
(1)散列(Hash )
在计算机科学中,Hash 通常被翻译为“散列”。散列函数的功能是将任意长
度的不同信息(例如数字、文本或其他信息)转化为长度相等但内容不同的二进
制数列(由0 和 1 组成)。以比特币采用的SHA256 为例,任意长度的信息输入
通过这个函数都可以转换成一组长度为256 个的二进制数字,以便统一的存储和
识别。256 个0 或 1 最多可以组合成2256 个不同的数,这个庞大的集合能够满
足与比特币相关的任何标记需要。此外,任意两个不同的信息输入,想要通过
SHA256 产生相同数字输出的概率,可以说微乎其微。因为输入信息的微小变动
将会导致输出数字的巨大变化。这就保证了输入信息与输出数字的一一对应。最
后,散列还有一个重要特征,即想要通过输出数字来反推出输入信息,这是极其
困难的。因此,如果想要生成一个特殊的输出数字,就只能通过随机尝试的办法
逐个进行正向运算,而不能由输出结果逆向推出输入信息。这个特征是比特币能
够顺利运行的重要基石。
(2 )工作量证明(Proof-of-Work )
倾注了更多更复杂劳动的事物具有更高的价值,这是比特币运行的哲学基础。
让我们先以防范垃圾邮件为例来说明什么是工作量证明。不妨做出如下假定,即
如果一个人愿意花 10 分钟写一封邮件,他就不会在意再多花一分钟对其进行处
理,以证明自己写邮件付出的努力是真实的。而对垃圾邮件的传播者而言,每封
邮件都要多花一分钟才能发送,这是完全不能接受的。因此我们可以设立以下规
则,即在每次发送邮件之前都要算出一个随机数,以至于将这个随机数和邮件内
容一起输入SHA256 散列函数时,得到的256 位二进制数的前 10 位均为0 。如
前所述,我们无法预先选择一个前十位为0 的数,并利用SHA256 算法反推出这
个随机数是什么。唯一可行的办法只能是随机抽取一个数,将其和邮件内容放入
SHA256 中进行计算,看结果是否满足要求。如果不满足,就换一个随机数继续
进行尝试,直到要求满足为止。只要我们设定的要求足够简单(要求全为0 的个
数不太多),那么寻找这个随机数的过程也就比较简单,只不过要花去一定的时
间(例如几秒或几分钟)。对于真实的邮件而言,为了证明自身价值,付出少量
时间进行计算是值得的。但对于垃圾邮件而言,这将导致邮件发送者的时间成本
急剧上升。因此,上述机制的引入将会显著减少垃圾邮件的产生。对比特币而言,
挖矿(Mining )也是使用随机数进行工作量证明的过程。这种过程虽然从表面上
来看没有产生任何价值,但却是解决互联网中信任问题的有效办法,是在不可靠
的网络环境中一种较为可靠的信用证明。
(3 )公开密钥密码体系
该体系简称公钥体系。在信息传递过程中,发送方通过一把密钥将信息加密,
接收方在收到信息后,再通过配对的另一把密钥对信息进行解密,这就保证了信
息传递过程的私密性与安全性。而密钥无非是一组数字,通过将原始信息与这组
数字放在一起进行特定运算,就能够把信息转换为另外一种格式,从而实现加密。
解密过程则刚好相反。在大多数情况下,一组密钥由公钥和私钥组成。私钥由自
己保存,公钥则需要向其他人公开。在信息传递过程中,公钥和私钥相互配合,
既能够对持有私钥的发信人进行身份验证,也能够确保发信人对自己发出的信息
不能抵赖,还能够保证收发信息的完整性、防止中间环节被截获篡改。如果公钥
丢失,还可以通过私钥进行恢复。但试图通过公钥反推出私钥的努力,从理论上
来讲是基本不可行的,这就保证了私钥的私密性。
(4 )交易(Transactions )
交易是指一个用户用比特币向另一个用户进行支付的过程。不过,比特币的
交易并非简单的支付货币本身。以图 1 中的交易1 为例,如果B 想支付 100 个
比特币(100BTC)给C,那么B 不仅需要在交易单上注明金额,而且需要注明
这100 个比特币的来源。如图1 所示,B 的100BTC 其实来自A ,是B 通过交易
0 得到的(交易 0 已经通过了全网用户的认证,保存在所有用户的电脑中)。为
完成交易1,B 需要在交易单上填写的信息包括:一是100BTC 的来源,此处为
交易单0 的ID ;二是C 的公钥,也即C 的比特币收款地址;三是将交易单0 的
内容和C 的公钥输入散列函数,得到一串数字。B 用自己的私钥加密这串数字,
作为数字签名放在交易单1 中。C 在
原创力文档


文档评论(0)