专栏首页安智客简明区块链原理

简明区块链原理

“区块链”应有特质:

· 使用了具有 "哈希链" (下文有解释) 形式的数据结构保存基础数据

· 有多个结点参与系统运行(分布式)

· 通过一定的协议或算法对于基础数据的一致性达成共识(共识协议/算法)。

介于比特币目前是区块链最典型且最有影响力的应用之一 理解比特币如何使用区块链后, 再去理解其他形式各样的区块链应用就会容易很多。在谈应用之前,最重要的是先理解它的技术本质是什么, 所有介绍区块链的答案里, 都最先提到了区块链不可篡改的特性, 所以第一个要理解的是它到底是怎么实现不可篡改性的。

· 前置知识;

o 密码学Hash()函数的单向性: Hash(x) =y , 通过y很难找到x

o 哈希链: 假如现在有顺序产生的数据块 A, B , C 。 那么我们可以这样计算一个hash 。 注意 “||” 表示拼接

h0= Hash(A)

h1 = Hash(B || h0)

h2 = Hash(C || h1)

· h2是我们计算的hash头部,现在来看, 为什么我们管这个东西叫Hash链, 因为h2 的值依赖于之前一系列数据的内容和计算顺序。 假如说现在你知道了h2 , 别人拿着A,B, C, 他不管是修改A,B, C的任一点内容还是A,B, C的出现顺序,你都无法再次计算出正确的h2

· 好的, 其实到这里区块链的概念就有点感觉了不是吗。"区块链"这个词是英文 Block Chain 的翻译, 如果从字面上理解, "数据块组成的链条" 就足以阐释它的基本内涵了。比特币区块链其实就是哈希链的一个变种(注意, 下文描述的这种添加随机数以及对随机数有特殊要求的规则是比特币为了实现工作量证明 Proof of Work 的共识机制而添加的, 并不是区块链的一个必要特征)。 怎么变? 添加一个随机数(Nonce)

o 假如现在有顺序产生的数据块 A, B , C 。 我们来这样计算hash头。 注意 “||” 表示拼接

h0= Hash(A|| Nonce0)

h1 = Hash(B || h0 || Nonce1)

h2 = Hash(C || h1 || Nonce2)

· 这里我们还添加一个额外的要求, 就是 h0, h1, h2 必须都得是以指定数目的0 bit开头的,例如要求每个哈希值都必须以5个0开头,则h0,h1,h2都应该是这样的形式(00000*****************)

· 添加了这个要求以后, h0, h1, h2就都不是那么容易计算的了, 因为你不能根据输出的形式来反推输入是什么, 而A, B, C又是给定的, 那只能不断更改Nonce来穷举计算, 然后找到一个可以满足要求的Nonce值 ,使得h0, h1, h2符合要求

· 到这里大家就知道所谓的矿工是在干什么了, 就是接受广播出来的数据块,然后计算当前最新的哈希链的头部, 当成功计算出了一个符合要求的Hash后, 就告诉所有人,自己找到了, 让别人再去计算下一个哈希头部。

· 其实到这里, 区块链的本质就已经差不多了, 假如网络中大家都默认遵守协议, 只在最长的哈希链后计算新的头部,那么一切都很好, 但是如果有人想搞不一样,那他就得拥有更强的计算能力, 在诚实者都遵守规则的情况下, 自己能够计算出一个链条分叉甚至说直接计算出一个新的链条,让大家都承认。

·至于这个难度的证明,中本聪就是建立了一个泊松分布的概率模型, 假设了诚实结点计算出新的哈希头的概率p和不诚实结点计算出新的Hash头的概率q后,算出了一个N值。

o 这个N值的含义是给出了当一个新的哈希头部 h1 计算出来后,其后追加N个头部(h2,h3,h4....)后,网络才应该承认这个新的头部 h1. 因为此时, 攻击者要想成功发动攻击, 至少需要计算出一个长度大于N的分支, 这个概率在攻击者没有掌握全网算力50%的时候是很难达到的

所以到这里, 区块链就已经清楚了,就是一个密码学工具的一种巧妙应用而已。那这里思考一下, 不可篡改性其实并不是一个什么神奇的特性,密码学的签名技术就能提供不可篡改性呀, 区块链到底解决了一个什么问题。答案是

· 信任问题

o 区块链提供了一种方案, 让一个网络中,所有的结点都有能力去用计算能力投票, 从而保证了得到承认的结果是大多数人公认的结果, 不会因为少数结点作恶,而修改结果

o 传统的交易建立在什么基础上, 我们对于金融机构的信任, 对于中央银行的信任, 或者对于交易对手的信任, 对于第三方中间人的信任。

· 这里其实就引出了很多安全技术应用,或者说很多制度建立的本质, 如果你信任的越多, 需要做的工作就越少。

· 区块链就是因为不想信任网络中的任意一个单一结点, 所以让大多数人具有公平的投票权利, 而这个投票权利,不是按人头算的, 是按CPU算的, 每个CPU有一票。

· 区块链的最难以克服的缺点1: 效率问题

o 前面说过, 当你信任的越多, 需要做的工作越少, 就好比你和一个人做生意, 如果你完全信任对方, 那么合同都不用签, 口头约定就行。 如果不太信任, 签一个简单的合同, 规定最重要的事项。 如果特别不信任, 让律师对交易中所有存在风险的地方列出条款,规定责任, 签一个大大的合同。

o 所以看出来了吧, 信任越多, 效率越高。 信任越少, 效率越低。

o 区块链也是一样,因为没有单一结点可以信任,通过计算来换取信任。 所以简单的一个承认交易的操作, 需要大量的计算参与进来, 结果是什么, Bitcoin平均交易速度只有7笔每秒。

· 比特币的最难以克服的缺点2: 宏观金融的适应性

o 金融学和经济学作为人类多年来发展出来的科学具有不可替代的地位, 比特币的流通货币量是存在上限且增加速度基本固定的, 这符合经济规律吗? 显然不符合。 因为学过经济的人都知道, 货币只是对实物财富的衡量, 货币增长速度快于商品增长数量, 则发生通胀, 货币增长速度慢于增长速度则发生通缩。

· 比特币的最难以克服的缺点3: 匿名引发的安全性

o 想一想匿名对于罪犯的好处,就不难理解比特币的洗钱风险

o 比特币作为信息安全学者的发明产物, 现在常被应用于黑客入侵之后勒索的交易手段, 想起来也真是讽刺

· 比特币的最难以克服的缺点4: 用户的易用性

o 比特币的技术是基于密码学签名技术的, 你的账户安全由你的私钥保护, 如果不添加别的手段,比如在别人那里备份, 或者在别的地方备份, 你丢失了密钥, 账户里的 钱是没有人能给你找回来的。 想想人们丢银行卡, 忘记密码的频率, 这个问题有多大, 不用我说大家也懂

说了这么多缺点, 区块链技术和比特币技术就不行了吗? 显然不是,不然那些国际金融机构也不会下大功夫研究它, 但其实, 和其他所有的技术一样, 大家都只是在寻找一种能够更高效解决信任问题的手段而已, 金融机构的核心是什么, 交易投资与风险控制呗。 其实也都是围绕信任问题展开的。信任问题的解决在金融机构本来其实就是耗费了大量的成本的, 只不过很多成本在后台, 或者在人工的耗费上, 很多人看不到而已。

总结 :

区块链的技术有望以一个更低的成本解决更广泛的信任问题所以被受人关注。

作者:萧萧 链接:https://www.zhihu.com/question/31112808/answer/122099628 来源:知乎

本文分享自微信公众号 - 安智客(china_safer)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-01-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 简明介绍比特币钱包及其安全性

    前两天介绍了TEE与区块链、比特币钱包的一些东西!也许不是很明白比特币钱包这个东西,(本文来自于知乎内容、整理、编辑) TEE与比特币硬件钱包应用之Ledger...

    安智客
  • 四种比特币硬件钱包实现源码资源

    数字货币代表着一种趋势,不仅仅在金融领域,其背后的区块链技术未来一定会在社会发展中的其他领域深刻的改变着这个世界! 和在现实生活中一样,必须保护好自己的钱包。使...

    安智客
  • 《区块链安全白皮书-技术应用篇》2018|信通院 (PDF下载)

    当前区块链已成为技术创新和市场追捧的热点,区块链技术存在的安全风险和技术特点也给技术应用及网络安全监管带来了诸多挑战。中国信息通信研究院立足“政府智库,行业平台...

    安智客
  • 李克特量表是什么?

    李克特量表呈现出的不只是简单的“是/否”的回答,通过李克特量表可以反映出被调查者对某事物或主题的综合态度,因而被广泛用于衡量态度和意见。

    葆宁
  • 数字货币投资亏损避雷针,你必须得了解的防被骗技巧

      对于数字货币的套路你们遇到过什么样的真实经历呢?对于数字货币的套路你们有些什么样的见解呢?数字货币亏损你是否知道内部的真实原因?区块链亏损应该怎么办?投资被...

    用户5189524
  • 性能8倍提升,YRCloudFile Windows客户端破解SMB性能困局

    说起存储性能,我们就不得不说存储访问协议,Windows场景下的存储访问协议主要有:标准的SMB协议和私有客户端协议。SMB是Windows系统上主要的共享文件...

    焱融科技
  • Nature Reviews Neuroscience:大脑连接障碍中跨脑疾病的连接组形势(模式)

    请点击上面“思影科技”四个字,选择关注我们,思影科技专注于脑影像数据处理,涵盖(fMRI,结构像,DTI,ASL,EEG/ERP,FNIRS,眼动)等,希望专业...

    用户1279583
  • 斯坦福区块链匪帮传奇,致那些辍学、迷幻乐、睡地毯、没日没夜写代码的日子

    在斯坦福大学校园的格里芬(Griffin)大道上,有个编号304的学生宿舍,这个坐落在斯坦福大学角落的宿舍楼本来普普通通。

    区块链大本营
  • Java自学之路

    我见过很多之前都不是计算机专业出身的,现在从事Java开发或者大数据等职业,而且现在做的都还不错。我想这些人应该都是经过深思熟虑的做出选择的,或者是人云亦云,不...

    用户7116066
  • win10 java 1.8jdk换1.7jdk

    JAVA_HOME: C:\Program Files\Java\jdk1.7.0_80

    斯文的程序

扫码关注云+社区

领取腾讯云代金券