前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >区块链的核心技术

区块链的核心技术

作者头像
dys
发布2018-06-04 16:34:30
1.2K0
发布2018-06-04 16:34:30
举报
文章被收录于专栏:性能与架构性能与架构

区块链的技术基石主要有:

  • SHA256 Hash
  • 公钥加密技术
  • 工作量证明机制

(1)SHA256 Hash

区块链使用的核心哈希算法是 SHA256,计算后的值不能被解密回原始内容,它是单向的,而且不管原始内容有多少,其结果的长度都是固定的,例如:

可以看到,即使原始内容的差异非常小,其结果的差异却是极大的。

SHA256 可以实现免碰撞,即不会出现输入x≠y,但是H(x)=H(y)

SHA256 会有2^256种输出,如果我们进行2^256+1次输入,那么必然会产生一次碰撞,我们可以计算一下,假设一台计算机以每秒10000次的速度进行哈希运算,要经过10^27年才能完成2^128次哈希,所以碰撞的几率是极其小的。

(2)公钥加密技术

这个加密技术帮助用户创建一个公钥和一个私钥,公钥是可以分享给他人的,私钥是需要自己秘密保管的。

如果 Chandler 给 Joey 转一些比特币,这笔交易中会包含3部分信息:

  • Joey 的比特币地址(Joey 的公钥)
  • 交易的比特币数量
  • Chandler 的比特币地址(Chandler 的公钥)

所有这些数据以及加密数字签名都会通过网络发送进行验证。数字签名是Chandler的比特币地址和他向joey发送的数量的组合的哈希值,这个数字签名是通过私钥加密的。

当矿工收到这个数据后,他会进行验证,会同时做两项工作:

  1. 把所有非加密数据(交易金额、两个人的公钥)放入哈希算法中,得到一个哈希值(例如为 Hash1)
  2. 使用 Chandler 的公钥对数字签名进行解密,得到一个哈希值(例如为 Hash2)

如果 Hash1 与 Hash2 相同,那么它就是一个合法的交易。

(3)工作量证明

区块链中每个人都平等的拥有账本,那么谁来向区块链添加区块?如何信任这个人呢?

为此,有了工作量证明 POW这个概念,可以理解为解一道复杂的题,需要付出大量的计算,做这个工作的人被称为“矿工”。这些矿工的工作就是验证交易并解决与创建块相关的复杂数学难题。

每个区块都有一个哈希值,是几项数据的组合,包括:

  1. 前一个区块的哈希值
  2. 交易数据的哈希值
  3. nonce

最终的哈希值必须以指定数量的0开头才行。

举个例子,给定的一个基本的字符串 Hello, world!,我们给出的工作量要求是:可以在这个字符串后面添加一个叫做nonce的整数值,对变更后的字符串进行SHA256哈希运算,如果得到的哈希结果(以16进制的形式表示)是以"0000"开头的,则验证通过。

为了达到这个工作量证明的目标。我们需要不停的递增nonce值,对得到的新字符串进行SHA256哈希运算。按照这个规则,我们需要经过4251次计算才能找到恰好前4位为0的哈希散列。

谁先找到这个 nonce 谁就是获胜的矿工,可以添加他的区块到区块链中,所有人都可以进行验证,如果正确就更新他们的区块链,继续计算下一个区块。

小结

希望通过上面的简单介绍,能让大家对区块链技术有个大体了解,之后会详细介绍区块链技术的应用细节。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • (1)SHA256 Hash
  • (2)公钥加密技术
  • (3)工作量证明
  • 小结
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档