币优网区块链原理浅析

Posted 币优网格

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了币优网区块链原理浅析相关的知识,希望对你有一定的参考价值。

区块链的定义业界并没有一个特别明确和唯一的回答, 这里先给出个人根据所读论文而总结出的“区块链”应有特质:

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

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

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

介于比特币目前是区块链最典型且最有影响力的应用之一, 理解比特币如何使用区块链后, 再去理解其他形式各样的区块链应用就会容易很多。


以下引自我在知乎中另外一个区块链问题的答案

在谈应用之前,最重要的是先理解它的技术本质是什么, 所有介绍区块链的答案里, 都最先提到了区块链不可篡改的特性, 所以第一个要理解的是它到底是怎么实现不可篡改性的。

先修知识;

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

哈希链: 假如现在有顺序产生的数据块 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)

假如现在有顺序产生的数据块 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, 不诚实结点计算出新的哈希头的概率为 q 后,算出了一个 N 值。

这个 N 值的含义是当一个新的哈希头部 h1 计算出来后,其后追加N个头部(h2,h3,h4…)后,网络才应该承认这个新的头部 h1. 因为此时, 攻击者要想成功发动攻击, 需要在诚实节点继续追加哈希头部前, 计算出一个长度大于N的分支, 这个概率在攻击者没有掌握全网算力50%的时候是小到可以忽略的。

所以到这里, 区块链就已经清楚了,就是一个密码学工具的一种巧妙应用而已。

那这里思考一下, 不可篡改性其实并不是一个什么神奇的特性,密码学的签名技术就能提供不可篡改性呀, 区块链到底解决了一个什么问题。答案是

信任问题

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

关于区块链这个新兴的领域,我们对其中的重要概念,尽可能从多个维度为你解读。下面这些是我们整理的其中一部分概念,接下来我们还会为你陆续更新。

下面这些是关于区块链原理的概念。

01.区块链

【维基百科】

区块链(英语:blockchain 或 block chain)是用分布式数据库识别、传播和记载信息的智能化对等网络, 也称为价值互联网。

【老猫解读】

block chain,block是块,可以理解成把交易信息打包成的数据块,chain就是链条,可以理解为按照顺序把block连接起来,所有使用者都能查到按序列打包成的数据块,这其实就是个大账本,这个账本记录了所有的交易数据。

举例子:那么区块链是如何开始工作的呢?假设全世界就有一个大账本,这个账本管理着我们的钱,由很多人共同维护。我在此刻给你发送了十块钱,然后我把这个事情通过网络对所有维护账本的人喊了一声,你收到我发给你的十块钱后也通过网络对所有维护账本的人喊了一声。于是,第一个听到我们两个声音的维护者立刻把这笔账记好。然后维护者对其他维护者说,我已经完成记账了,大家根据我记得账把这个数据补全了。

【李笑来解读】

区块链技术的目标,就是“拥有一个历史数据不可篡改的数据库”。

在真实的世界里,每个商业模式都是需要记账的,每月一次,一年12本,那么这是12个子账簿构成一个总账。只不过在比特币的世界,每10分钟它发布一个子账本,每个子账本里有过去10分钟产生的所有的交易记录,不可更改,然后再把它们串起来。

02.去中心化

【维基百科】

去中心化(英语:decentralization)是互联网发展过程中形成的社会关系形态和内容产生形态,是相对于“中心化”而言的新型网络内容生产过程。

去中心化的性质源自于使用分布式账本的区块链(Blockchain)技术。

【李笑来解读】

区块链技术的目标,就是“拥有一个历史数据不可篡改的数据库”。实现这个目标的手段是什么呢?以第一代的区块链技术为例(比特币所使用的就是“第一代区块链技术”),去中心化、奖励机制、共识机制这三种方法拼在一起,就实现了区块链技术的目标。所以,去中心化,只是实现这个目标的手段,并且还只是实现目标的手段之一。

所谓的去中心化,并不是“消灭所有的中心”。在现实里,实际上是这样的:由“原本只有少量的大中心”,慢慢演化成“有大量的更小规模的中心”。比如目前为止,区块链世界里已经有几千个交易所了。

【只想一句话搞懂】

比如你在某宝上买东西,需要把钱先打给第三方支付宝,然后等你确认收货后,支付宝再把钱打给卖方。而去中心化是没有了第三方,通过区块链技术解决了信用问题,是个人对个人的交易,所有的交易记录每个人都可查询且不可更改。

03.对等式网络

【维基百科】

对等式网络(peer-to-peer, 简称P2P),又称点对点技术,是无中心服务器、依靠用户群(peers)交换信息的互联网体系,它的作用在于,减低以往网络传输中的节点,以降低数据丢失的风险。与有中心服务器的中央网络系统不同,对等网络的每个用户端既是一个节点,也有服务器的功能,任何一个节点无法直接找到其他节点,必须依靠其户群进行信息交流。

【只想一句话搞懂】

网络上的每一台计算机都可以互相访问,计算机之间也没有主次之分,各自都有绝对的自主权。这种网络的优点是安装维护方便,每台机器都可以是服务器,也都可以是客户机。相应的成本也会便宜很多。

04.哈希函数、哈希值

【百度百科】

哈希函数就是能将任意长度的数据映射为固定长度的数据的函数,主要应用于信息安全领域中加密算法。简单的说,哈希算法是一种只能加密,不能解密的密码学算法,可以将任意长度的信息转换成一段固定长度的字符串。将消息压缩得到的消息摘要就是HASH值,HASH值可以看作是原信息数据存储的逻辑位置,是用于保护原数据的指纹。

哈希在区块链中的应用,就是通过哈希算法对一个交易区块中的交易信息进行加密,并把信息压缩成由一串数字和字母组成的散列字符串,区块链的哈希值能够唯一而精准地标识一个区块。

【只想一句话搞懂】

哈希算法保证了比特币挖矿不能逆向推导出结果。所以,矿工持续不断地进行运算,本质上是在暴力破解正确的输入值(哈希值),谁最先找到,谁就能获得比特币奖励。

05.共识机制

【维基百科】

由于加密货币多数采用去中心化的区块链设计,节点是各处分散且平行的,所以必须设计一套制度,来维护系统的运作顺序与公平性,统一区块链的版本,并奖励提供资源维护区块链的使用者,以及惩罚恶意的危害者。这样的制度,必须依赖某种方式来证明,是由谁取得了一个区块链的打包权(或称记账权),并且可以获取打包这一个区块的奖励;又或者是谁意图进行危害,就会获得一定的惩罚,这就是共识机制。

【只想一句话搞懂】

比如在区块链应用—比特币中,为了维持区块链这个大账本的顺利运转,会通过某种方式证明谁是记账最快的人或作恶的人。这种证明方式就是共识机制。

06.工作量证明

【维基百科】

工作量证明(Proof-of-Work,PoW)是一种对应服务与资源滥用、或是阻断服务攻击的经济对策。共识机制的一种。一般是要求用户进行一些耗时适当的复杂运算,并且答案能被服务方快速验算,以此耗用的时间、设备与能源做为担保成本,以确保服务与资源是被真正的需求所使用。现时此一技术成为了加密货币的主流共识机制之一,如比特币所采用的技术。

【只想一句话搞懂】

在区块链这个大账本中,记账最快的那个人把自己的记账结果通知给大家,大家通过验证这个记账结果,就可以证明这个人为了得到这个记账结果做了大量的计算工作。

07.权益证明

【维基百科】

共识机制的一种。权益证明(Proof-of-stake, PoS)是以共识算法的方式,使用伪随机数的方式指定持有货币的人为交易的验证者,并创造新的区块并接续在最长的链后面。共识机制的一种。

【只想一句话搞懂】

权益证明与你拥有的数字货币的数量和时间有关。你拥有的货币越多以及持有的时间越长,那么你的话语权就越大。

08.公共链、私有链、联盟链

【维基百科】

公共链是真正的完全去中心的区块链。用户不用注册就能匿名参与,无需授权就能访问网络。公链的任何区块都对外公开,任何人都可以发送价值。

商业组织正在为各种应用开发分布式分类账和其他区块链启发的软件。由于这些软件被中心化机构控制,不具有区块链去中心化的属性,被称为私有链。私有链的价值主要是提供安全可追溯不可篡改自动执行的运算平台,必须先注册取得许可才可以访问和使用。

联盟链是行业内的可监管区块链。联盟链仅限于联盟成员参与,成员参与区块链运行需要按照规则获取读写记账的权限。 成员需要注册才可使用。 联盟链由机构成员共同维护,提供成员管理,认证,授权,监控,审计功能。

【只想一句话搞懂】

公共链,私有链,联盟链三者的区别主要体现在注册门槛,权限,使用范围和适用领域上。

共有链中任何人都可以参与区块链数据维护和读取,完全去中心化,不受任何机构控制,比特币就是共有链的代表。

私有链对单独的个人或实体开放,参与的节点只有自己,数据的访问和使用有严格的权限管理,一般用作内部审计使用。

联盟链则是指参与区块链的节点是事先选择好的,对特定的组织或团体开放。

09.默克尔树

【《区块链技术指南》】

默克尔树(又叫哈希树)是存储hash值的一棵树。它是一种二叉树,由一个根节点、一组中间节点和一组叶节点组成。最下面的叶节点包含存储数据或其哈希值,每个中间节点是它的两个孩子节点内容的哈希值,根节点也是由它的两个子节点内容的哈希值组成。

【只想一句话搞懂】

默克尔树是存储hash值的一棵树,底层数据的任何变动,都会传递到其父亲节点,一直到树根,数据间有强关联性。默克尔树经常运用于快速比较大量数据,快速定位修改和零知识证明。

10.椭圆曲线加密

【《精通比特币》

(英文书名 Mastering Bitcoin,作者 Andreas M. Antonopoulos)】

椭圆曲线加密法是一种基于离散对数问题的非对称(或公钥)加密法,可以用对椭圆曲线上的点进行加法或乘法运算来表达。在比特币系统中,我们用公钥加密创建一个密钥,用于控制比特币的获取。密钥对包括一个私钥,和由其衍生出的唯一的公钥。整个流程可以概括为:有私钥后,使用椭圆曲线乘法的单向加密函数产生一个公钥,然后在用单向加密哈希函数生成比特币地址,公钥用于接收比特币,而私钥用于比特币支付时的交易签名。

【只想一句话搞懂】

在区块链中基于私钥生成公钥的单向加密函数,用来保证比特币支付和交易的安全。

总结 :

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

最后说点闲话, 本人是硕士阶段出来留学的, 对比国内外,发现中国人的技术分享氛围真的比国外差很多, 不是国内的人水平没有,懂的人都自己掖着 , 或者说也懒得做清晰的分享, 我想这一点也不能怪我们国人自己, 毕竟是由于人太多, 资源匮乏导致的竞争心态过于强烈。 但是衷心希望, 随着国家实力的进步, 咱们中国人可以有一天不需要再把英语当成学习技术道路上的必须逾越的坎

以上是关于币优网区块链原理浅析的主要内容,如果未能解决你的问题,请参考以下文章

币优网区块链原理浅析

区块链迎来“政策红利”,优网边际云乘势而起

浅析 Fabric Peer 节点

币优_论简书砖如何应用区块链

区块链基本原理

币优_论简书砖如何应用区块链