区块链与防疫:比特币哈希函数简述

  对比特币感兴趣的人或多或少应该都听说过“加密哈希函数(cryptographic hash function)”这个术语。但是它究竟是什么意思,与加密货币又有什么联系?

  

  哈希函数不仅是比特币协议的重要部分,还是也是整个信息安全的重要部分。

  我们将在下文中通过一些简单的例子来展示哈希函数的工作原理。

  什么是哈希函数??

  从理论上讲,哈希函数就是一种数学流程,将任意大小的输入数据放入该流程,然后返回固定大小的输出数据。

  更具体地讲就是,提取任意长度的字母序列作为输入——我们将其称为string——然后返回一个固定长度的字母序列。无论这个输入string是一个单一的字母,单词,句子还是整部小说,而输出的长度——叫做摘要(digest)——永远都是相同的。

  这种类型的哈希函数的常见用例就是存储密码。

  当你使用任何一种网络服务创建一种需要密码的用户账户时。这种密码都是通过哈希函数运行的,存储的就是该密码信息的哈希摘要。当你输入密码来登录账号时,然后相同的哈希函数就会去运行你输入的密码,然后服务器就会检查其结果是否与存储的摘要相匹配。

  这就意味着即使黑客能够访问用于存储哈希的数据库,他们也不可能立即破坏所有用户账户,因为无法轻易找到生成某一特定哈希的密码。

  Python简单哈希函数

  ?

  你可以使用Python(Mac和Linux操作系统在默认情况下安装的编程语言)来实验哈希值。(本教程假设使用了某种版本的OSX或者Linux系统,因为Windows使用Python会更加复杂)

  首先,打开终端,输入python并点击Enter。

  然后你将进入Python REPL,在这种环境下,你可以直接试用Python命令,而不是在单独的文件中编写程序。

  然后输入以下数值,在每行之后敲击Enter,并在标记处输入TAB:

  import hashlib

  def hash(mystring):

  [TAB] hash_object=hashlib.md5(mystring.encode())

  [TAB] print(hash_object.hexdigest())

  [ENTER]

  这样你就创建了一个函数——hash(),该函数将计算出某一特定的使用MD5哈希算法的字符串的哈希值。将字符串插入上述的括号()中便可运行该函数。例如:

  hash(“CoinDesk rocks”)

  按下Enter并查看该字符串的哈希摘要。

  你将看到在同一字符串上调用该哈希函数将会总是生成相同的哈希,但添加或改变其中的某一个字符将会生成一种完全不同的哈希值:

  hash("CoinDesk rocks")=> 7ae26e64679abd1e66cfe1e9b93a9e85

  hash("CoinDesk rocks!")=> 6b1f6fde5ae60b2fe1bfe50677434c88

  比特币哈希函数

  ?

  在比特币协议中,哈希函数是区块哈希算法的一部分,区块哈希算法可以用来通过挖矿流程将新的交易编写到区块链中。

  在比特币挖矿过程中,函数的输入都是来自于最近的尚未确认的交易(以及一些与前一个区块相关的时间戳和引用一些额外输入)

  在以上代码示例中,我们已经看到改变哈希函数中的一小部分会导致产生一种完全不同的输出。这个属性与挖矿过程中的“工作量证明(POW)”算法至关重要:为了成功“解决”一个区块,矿工需要以这种方式将所有输入与他们自己的输入数据结合,由此产生的哈希将以某些0开头。

  作为一种基础的演示,我们可以通过在“CoinDesk rocks!”后面手动添加尝试感叹号(!),以此尝试使用我们的Python哈希函数来进行“挖矿”,知道我们找到以单个0开头的哈希。

  >>> hash("CoinDesk rocks!!")

  66925f1da83c54354da73d81e013974d

  >>> hash("CoinDesk rocks!!!")

  c8de96b4cf781a6373766c668ceac0f0

  >>> hash("CoinDesk rocks!!!!")

  9ea367cea6a2cc4a6f5a1d9a334d0d9e

  >>> hash("CoinDesk rocks!!!!!")

  b8d43387d98f035e2f0ac49740a5af38

  >>> hash("CoinDesk rocks!!!!!!")

  0fe46518541f4739613b9ce29ecea6b6=> SOLVED!

  当然,为比特币区块解决哈希——编写该文时,必须以18个0开头——需要一个非常大的计算量(比特币网络的所有计算机处理能力结合在一起仍旧需要接近10分钟才能解决一个区块)。

  需要大量的处理能力就意味着新比特币的挖掘需要一个长期的过程才能完成,而无法一次性将所有的比特币全部挖出。

  为了能够从挖矿中赚取比特币,你需要投入大量的工作来解决区块——通过获得这种奖励,你将所有的新交易锁入区块中,也就是添加到之前所有交易的永久性记录中:区块链。

  更多区块链数字货币资讯:http://www.qukuaiwang.com.cn/news

文章内容系本站作者个人观点,不代表本站对其观点赞同或支持,文章的版权归该作者所有。如需转载,请注明文章来源。本文地址:http://www.cis.net.cn/kejikuaixun/42889.html
留言与评论(共有 条评论)
验证码:

最新文章

比特币哈希函数简述

科技快讯
对比特币感兴趣的人或多或少应该都听说过“加密哈希函数(cryptographichashfunction)”这个术语。但是它究竟是什么意思,与加密货币又有什么联系?哈希函数不仅是比特币协议的重要部分,还是也是整个信息安全的重要部分。

王福重再谈区块链,泡沫是价值的另一种说法,区块链可能是普通人最后一次逆袭的机会了

科技快讯
比特吴导读:和大家一起探讨王福重老师的这两个视频,主要是想安抚一下大家焦躁的内心,不要急,现在的亏损只是暂时的,如果不等着用的资金,已经亏损超过70%的Token,就不建议割肉出来了,时间换空间而已,典型的泡沫期,泡沫只是价值的另一种说法而已,所以从本质上来讲,数字资产的增长空间还有无限大,关于这一点,王福重老师的视频中均可看到。昨日

支付宝区块链怎么玩(支付宝区块链怎么用)

科技快讯
日前,首单支付宝理赔出现,用户从提交申请到理赔款到账,全程用时仅5秒。“秒级”理赔速度背后离不开蚂蚁金服先进技术支撑,基于的电子票据更是一键保险理赔的关键。作为理赔凭证的区块链电子票据具有全程不可篡改、可追溯等特

巴西建立多个加密货币协会 促进加密货币规范发展

科技快讯
巴西著名的加密货币交易所包括Bitcointrade、MercadoBitcoin、Foxbit等,最近联手创建了一个加密货币协会,目标是捍卫加密货币用户的利益。这个被称为“ABCripto”的组织最近发现,其他公司也创建了一个类似的协会。

MANA(Decentraland)介绍、网址及交易平台

科技快讯
Decentraland是一个分布式共享虚拟平台。在这个平台上,用户可以浏览和发现内容,并与其他人和实体互动。用户还可以通过基于区块链的土地账本宣称对虚拟领地的所有权。领地由直角坐标(X,Y)来划定,其所有者可以决定领地上发布的内容,包括从静态3D场景到游戏等互动式系统。领地是存储在以太坊智能合同中的不可替代的、可转移的稀有数

英国|区块链大咖云集,来听一听ICO的融资方法!

科技快讯
2017年7月7日,在英国伦敦,将举办英国第一次专门讨论众筹、ICO和区块链社区建设议题一天的会议。真儿真儿地可谓是全世界高水平的区块链大咖云集的大party,16位大咖们将陆续登上演讲台演讲,上海快贝董事长作为唯一的中国区块链大咖,将会带来《ICOsinChina》的演讲,向世界发声讲述中国的ICO项目。那么,如何参与大会呢?答案是:登录我们的

闪链ShineChain(SHE)介绍、网址及交易平台

科技快讯
在区块链变革的大时代中,ShineChain的使命是:用技术的革新改变全球平安健康保障行业的商业模式,打造全球区块链平安健康互助生态体系,让更多的人们能够拥有平安健康保障的权益。我们的愿景是:全球73亿人,无论贫穷富有,人人拥有SHE,人人享有保障。ShineChain的执行方案1.

YOYOW钱包使用说明第二篇:充值、提现、转账

科技快讯
充值、提现、转账A.主网充值到交易平台主网→BTS内盘1.操作方式:将主网YOYO转账至43752382,转账memo备注填“bts#内盘帐号”(双引号不需要填写)扣1YOYO转账手续费。主网→ETH钱包、Hitbtc2.操作方式:将主网YOYOW转账到43752382,转账memo备注填“eth#以太地址”(双引号不需要填写),比如“eth#0xB3D1E07734d47FBE633

比特币现金生态系统看到了商家接受的浪潮

科技快讯
据报道,Bitpay为该平台的可装载的Visa借记卡发行了BCH集成系统。从此该公司可以为公司的所有供应商实现BCH的发票支持,现在,比特币现金可以在全球范围内成千上万的商家中使用。现在,成千上万的商人和非营利组织接受比特币现金最近,商户对BCH生态系统的接受度越来越高,但在某一天,这个指标大幅上升。Bitpay为所有使用该公司支付处理

加密货币谬论

科技快讯
英国经济学家威廉?斯坦利?杰文斯(WilliamStanleyJevons)在他的著名著作《货币与交换机制》(MoneyandtheMechanismofExchange)中解释称,货币解决了一个核心