区块链信任怎么做到的?

区块链使用安全如何来保证呢

区块链本身解决的就是陌生人之间大规模协作问题,即陌生人在不需要彼此信任的情况下就可以相互协作。那么如何保证陌生人之间的信任来实现彼此的共识机制呢?中心化的系统利用的是可信的第三方背书,比如银行,银行在老百姓看来是可靠的值得信任的机构,老百姓可以信赖银行,由银行解决现实中的纠纷问题。但是,去中心化的区块链是如何保证信任的呢?

实际上,区块链是利用现代密码学的基础原理来确保其安全机制的。密码学和安全领域所涉及的知识体系十分繁杂,我这里只介绍与区块链相关的密码学基础知识,包括Hash算法、加密算法、信息摘要和数字签名、零知识证明、量子密码学等。您可以通过这节课来了解运用密码学技术下的区块链如何保证其机密性、完整性、认证性和不可抵赖性。

基础课程第七课 区块链安全基础知识

一、哈希算法(Hash算法)

哈希函数(Hash),又称为散列函数。哈希函数:Hash(原始信息) = 摘要信息,哈希函数能将任意长度的二进制明文串映射为较短的(一般是固定长度的)二进制串(Hash值)。

一个好的哈希算法具备以下4个特点:

1、 一一对应:同样的明文输入和哈希算法,总能得到相同的摘要信息输出。

2、 输入敏感:明文输入哪怕发生任何最微小的变化,新产生的摘要信息都会发生较大变化,与原来的输出差异巨大。

3、 易于验证:明文输入和哈希算法都是公开的,任何人都可以自行计算,输出的哈希值是否正确。

4、 不可逆:如果只有输出的哈希值,由哈希算法是绝对无法反推出明文的。

5、 冲突避免:很难找到两段内容不同的明文,而它们的Hash值一致(发生碰撞)。

举例说明:

Hash(张三借给李四10万,借期6个月) = 123456789012

账本上记录了123456789012这样一条记录。

可以看出哈希函数有4个作用:

简化信息

很好理解,哈希后的信息变短了。

标识信息

可以使用123456789012来标识原始信息,摘要信息也称为原始信息的id。

隐匿信息

账本是123456789012这样一条记录,原始信息被隐匿。

验证信息

假如李四在还款时欺骗说,张三只借给李四5万,双方可以用哈希取值后与之前记录的哈希值123456789012来验证原始信息

Hash(张三借给李四5万,借期6个月)=987654321098

987654321098与123456789012完全不同,则证明李四说谎了,则成功的保证了信息的不可篡改性。

常见的Hash算法包括MD4、MD5、SHA系列算法,现在主流领域使用的基本都是SHA系列算法。SHA(Secure Hash Algorithm)并非一个算法,而是一组hash算法。最初是SHA-1系列,现在主流应用的是SHA-224、SHA-256、SHA-384、SHA-512算法(通称SHA-2),最近也提出了SHA-3相关算法,如以太坊所使用的KECCAK-256就是属于这种算法。

MD5是一个非常经典的Hash算法,不过可惜的是它和SHA-1算法都已经被破解,被业内认为其安全性不足以应用于商业场景,一般推荐至少是SHA2-256或者更安全的算法。

哈希算法在区块链中得到广泛使用,例如区块中,后一个区块均会包含前一个区块的哈希值,并且以后一个区块的内容+前一个区块的哈希值共同计算后一个区块的哈希值,保证了链的连续性和不可篡改性。

二、加解密算法

加解密算法是密码学的核心技术,从设计理念上可以分为两大基础类型:对称加密算法与非对称加密算法。根据加解密过程中所使用的密钥是否相同来加以区分,两种模式适用于不同的需求,恰好形成互补关系,有时也可以组合使用,形成混合加密机制。

对称加密算法(symmetric cryptography,又称公共密钥加密,common-key cryptography),加解密的密钥都是相同的,其优势是计算效率高,加密强度高;其缺点是需要提前共享密钥,容易泄露丢失密钥。常见的算法有DES、3DES、AES等。

非对称加密算法(asymmetric cryptography,又称公钥加密,public-key cryptography),与加解密的密钥是不同的,其优势是无需提前共享密钥;其缺点在于计算效率低,只能加密篇幅较短的内容。常见的算法有RSA、SM2、ElGamal和椭圆曲线系列算法等。 对称加密算法,适用于大量数据的加解密过程;不能用于签名场景:并且往往需要提前分发好密钥。非对称加密算法一般适用于签名场景或密钥协商,但是不适于大量数据的加解密。

三、信息摘要和数字签名

顾名思义,信息摘要是对信息内容进行Hash运算,获取唯一的摘要值来替代原始完整的信息内容。信息摘要是Hash算法最重要的一个用途。利用Hash函数的抗碰撞性特点,信息摘要可以解决内容未被篡改过的问题。

数字签名与在纸质合同上签名确认合同内容和证明身份类似,数字签名基于非对称加密,既可以用于证明某数字内容的完整性,同时又可以确认来源(或不可抵赖)。

我们对数字签名有两个特性要求,使其与我们对手写签名的预期一致。第一,只有你自己可以制作本人的签名,但是任何看到它的人都可以验证其有效性;第二,我们希望签名只与某一特定文件有关,而不支持其他文件。这些都可以通过我们上面的非对称加密算法来实现数字签名。

在实践中,我们一般都是对信息的哈希值进行签名,而不是对信息本身进行签名,这是由非对称加密算法的效率所决定的。相对应于区块链中,则是对哈希指针进行签名,如果用这种方式,前面的是整个结构,而非仅仅哈希指针本身。

四 、零知识证明(Zero Knowledge proof)

零知识证明是指证明者在不向验证者提供任何额外信息的前提下,使验证者相信某个论断是正确的。

零知识证明一般满足三个条件:

1、 完整性(Complteness):真实的证明可以让验证者成功验证;

2、 可靠性(Soundness):虚假的证明无法让验证者通过验证;

3、 零知识(Zero-Knowledge):如果得到证明,无法从证明过程中获知证明信息之外的任何信息。

五、量子密码学(Quantum cryptography)

随着量子计算和量子通信的研究受到越来越多的关注,未来量子密码学将对密码学信息安全产生巨大冲击。

量子计算的核心原理就是利用量子比特可以同时处于多个相干叠加态,理论上可以通过少量量子比特来表达大量信息,同时进行处理,大大提高计算速度。

这样的话,目前的大量加密算法,从理论上来说都是不可靠的,是可被破解的,那么使得加密算法不得不升级换代,否则就会被量子计算所攻破。

众所周知,量子计算现在还仅停留在理论阶段,距离大规模商用还有较远的距离。不过新一代的加密算法,都要考虑到这种情况存在的可能性。

区块链信任怎么做到的?

区块链技术是通过什么方式实现信任化的?

区块链为很多产业都提供了潜在的解决方案,其中也包括供应链产业。其实,供应链管理也是区块链技术应用最好的产业之一,因此,我们可以预计在不久地未来,区块链技术在供应链中会有更大用处。

成功运行供应链的关键,就是保证系统处于稳定,透明和端对端的通信状态。

区块链系统中不同节点之间是如何建立信任的?

区块链是从零开始有序的链接在一起的,每个区块都指向前一个区块,称为前一个区块的子区块,前一区块称为父区块。

 

每个区块都有一个区块头,里边包含着父区块头通过算法生成的哈希值,通过这个哈希值可以找到父区块。当父区块有任何改动时,父区块的哈希值也发生变化。这将迫使子区块哈希值字段发生改变,以此类推,后边的子子区块,子子子区块都会受影响。一旦一个区块有很多后代以后,除非重新计算此区块所有后代的区块,但是这样重新计算需要耗费巨大的计算量,所以区块链越长区块历史越无法改变。

区块链常见的三大共识机制

区块链是建立在P2P网络,由节点参与的分布式账本系统,最大的特点是“去中心化”。也就是说在区块链系统中,用户与用户之间、用户与机构之间、机构与机构之间,无需建立彼此之间的信任,只需依靠区块链协议系统就能实现交易。

可是,要如何保证账本的准确性,权威性,以及可靠性?区块链网络上的节点为什么要参与记账?节点如果造假怎么办?如何防止账本被篡改?如何保证节点间的数据一致性?……这些都是区块链在建立“去中心化”交易时需要解决的问题,由此产生了共识机制。

所谓“共识机制”,就是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认;当出现意见不一致时,在没有中心控制的情况下,若干个节点参与决策达成共识,即在互相没有信任基础的个体之间如何建立信任关系。

区块链技术正是运用一套基于共识的数学算法,在机器之间建立“信任”网络,从而通过技术背书而非中心化信用机构来进行全新的信用创造。

不同的区块链种类需要不同的共识算法来确保区块链上最后的区块能够在任何时候都反应出全网的状态。

目前为止,区块链共识机制主要有以下几种:POW工作量证明、POS股权证明、DPOS授权股权证明、Paxos、PBFT(实用拜占庭容错算法)、dBFT、DAG(有向无环图)

接下来我们主要说说常见的POW、POS、DPOS共识机制的原理及应用场景

概念:

工作量证明机制(Proof of work ),最早是一个经济学名词,指系统为达到某一目标而设置的度量方法。简单理解就是一份证明,用来确认你做过一定量的工作,通过对工作的结果进行认证来证明完成了相应的工作量。

工作量证明机制具有完全去中心化的优点,在以工作量证明机制为共识的区块链中,节点可以自由进出,并通过计算随机哈希散列的数值解争夺记账权,求得正确的数值解以生成区块的能力是节点算力的具体表现。

应用:

POW最著名的应用当属比特币。在比特币网络中,在Block的生成过程中,矿工需要解决复杂的密码数学难题,寻找到一个符合要求的Block Hash由N个前导零构成,零的个数取决于网络的难度值。这期间需要经过大量尝试计算(工作量),计算时间取决于机器的哈希运算速度。

而寻找合理hash是一个概率事件,当节点拥有占全网n%的算力时,该节点即有n/100的概率找到Block Hash。在节点成功找到满足的Hash值之后,会马上对全网进行广播打包区块,网络的节点收到广播打包区块,会立刻对其进行验证。

如果验证通过,则表明已经有节点成功解迷,自己就不再竞争当前区块,而是选择接受这个区块,记录到自己的账本中,然后进行下一个区块的竞争猜谜。网络中只有最快解谜的区块,才会添加的账本中,其他的节点进行复制,以此保证了整个账本的唯一性。

假如节点有任何的作弊行为,都会导致网络的节点验证不通过,直接丢弃其打包的区块,这个区块就无法记录到总账本中,作弊的节点耗费的成本就白费了,因此在巨大的挖矿成本下,也使得矿工自觉自愿的遵守比特币系统的共识协议,也就确保了整个系统的安全。

优缺点

优点:结果能被快速验证,系统承担的节点量大,作恶成本高进而保证矿工的自觉遵守性。

缺点:需要消耗大量的算法,达成共识的周期较长

概念:

权益证明机制(Proof of Stake),要求证明人提供一定数量加密货币的所有权。

权益证明机制的运作方式是,当创造一个新区块时,矿工需要创建一个“币权”交易,交易会按照预先设定的比例把一些币发送给矿工本身。权益证明机制根据每个节点拥有代币的比例和时间,依据算法等比例地降低节点的挖矿难度,从而加快了寻找随机数的速度。

应用:

2012年,化名Sunny King的网友推出了Peercoin(点点币),是权益证明机制在加密电子货币中的首次应用。PPC最大创新是其采矿方式混合了POW及POS两种方式,采用工作量证明机制发行新币,采用权益证明机制维护网络安全。

为了实现POS,Sunny King借鉴于中本聪的Coinbase,专门设计了一种特殊类型交易,叫Coinstake。

上图为Coinstake工作原理,其中币龄指的是货币的持有时间段,假如你拥有10个币,并且持有10天,那你就收集到了100天的币龄。如果你使用了这10个币,币龄被消耗(销毁)了。

优缺点:

优点:缩短达成共识所需的时间,比工作量证明更加节约能源。

缺点:本质上仍然需要网络中的节点进行挖矿运算,转账真实性较难保证

概念:

授权股权证明机制(Delegated Proof of Stake),与董事会投票类似,该机制拥有一个内置的实时股权人投票系统,就像系统随时都在召开一个永不散场的股东大会,所有股东都在这里投票决定公司决策。

授权股权证明在尝试解决传统的PoW机制和PoS机制问题的同时,还能通过实施科技式的民主抵消中心化所带来的负面效应。基于DPoS机制建立的区块链的去中心化依赖于一定数量的代表,而非全体用户。在这样的区块链中,全体节点投票选举出一定数量的节点代表,由他们来代理全体节点确认区块、维持系统有序运行。

同时,区块链中的全体节点具有随时罢免和任命代表的权力。如果必要,全体节点可以通过投票让现任节点代表失去代表资格,重新选举新的代表,实现实时的民主。

应用:

比特股(Bitshare)是一类采用DPOS机制的密码货币。通过引入了见证人这个概念,见证人可以生成区块,每一个持有比特股的人都可以投票选举见证人。得到总同意票数中的前N个(N通常定义为101)候选者可以当选为见证人,当选见证人的个数(N)需满足:至少一半的参与投票者相信N已经充分地去中心化。

见证人的候选名单每个维护周期(1天)更新一次。见证人然后随机排列,每个见证人按序有2秒的权限时间生成区块,若见证人在给定的时间片不能生成区块,区块生成权限交给下一个时间片对应的见证人。DPoS的这种设计使得区块的生成更为快速,也更加节能。

DPOS充分利用了持股人的投票,以公平民主的方式达成共识,他们投票选出的N个见证人,可以视为N个矿池,而这N个矿池彼此的权利是完全相等的。持股人可以随时通过投票更换这些见证人(矿池),只要他们提供的算力不稳定,计算机宕机,或者试图利用手中的权力作恶。

优缺点:

优点:缩小参与验证和记账节点的数量,从而达到秒级的共识验证

缺点:中心程度较弱,安全性相比POW较弱,同时节点代理是人为选出的,公平性相比POS较低,同时整个共识机制还是依赖于代币的增发来维持代理节点的稳定性。

什么是“区块链”?

区块链有两个含义:

1、区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。

2、区块链是比特币的底层技术,像一个数据库账本,记载所有的交易记录。这项技术也因其安全、便捷的特性逐渐得到了银行与金融业的关注。

狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。

广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。

为什么说区块链是“去信任”的?

维基百科中,从心理学角度对信任的解释如下:

Trust is believing that the person who is trusted will do what is expected.

信任是指,相信被信任的人会做出预期的事 。

结合我对信任的理解,信任包含几个关键点:

1.  信任是一个心理预判 。

2. 信任是有程度的。

3. 信任是单向的。比如我信任你,但你不一定信任我。

4. 信任是有维度的。

    道德上的信任:我信任他不会干坏事。

    能力上的信任:我信任他能搞定这个事。

心理预判一般来源于两个因素:历史经验和客观规律 。当然,这两个因素并不矛盾。事实上,我们大部分的预判,是同时建立在这两个因素之上的。

构建信任关系除了可以让彼此的信任的双方得到心理的上的愉悦感外,更重要的是, 信任可以提升合作效率 ,甚至完成一些单体无法完成的事情。对于历史经验形成的信任关系,需要 靠时间来积累 。如果双方合作,都要从0开始积累,显然是低效的。为了提升效率,我们常常会引入第三方,在双方无历史经验可供参考的情况下,来实现两者间的合作关系。我们可以把这个 第三方信任机构或工具称之为“信任中介”。

原子模型

信任传递 :A信任T,T信任B,A可以通过T间接的与B产生合作关系。比如B想借钱,T没钱,A有钱;此时A可以把钱先给T,T再把钱给B。当B违约时,T帮B把钱还给A。

去信任 :A信任T,B信任T。在A和B在互不信任的情况下,A和B将各自需求提给T,由T来达成A和B各自的需求;或者A直接与B产生合作关系,但都是在T的监视下完成,由T来确保A和B都是按交易的要求完成的。

注:黄色箭头代表着信任的方向。

其中 “信任传递”和“去信任”的主要区别在于,信任传递中的T参与双方的交易,也承担责任;而去信任模型中的T,不参与交易,也不承担责任。

区块链本身是一个平台工具,提供了一个不可篡改的记账服务。他无法促使交易双方彼此互相信任,也无法参与到双方的交易中;作为一个没有生命的工具,当然也无法承担交易责任(比如A违约,B发假货啥的,都属于交易责任;至于记账的正确性,系统的安全性责任,当然还是由区块链保障)。因此 区块链所实现的是“去信任”模型,而非“信任传递”模型。

当然,在区块链记录大量交易数据后,则给人提供了一种可靠的经验数据。比如当A不信任B时,但在链上可以查阅B发生了大量的成功交易。此时A可以判断,B是一个可以相信的人。这是一个衍生的能力。也就是我们常提的“增信”的由来。无论是否有历史交易数据,在区块链平台上的交易仍然是在去信任模型下完成的。

信任是一个泛概念,包含的场景非常丰富,比如合作信任、感情信任、交易信任……而在区块链的世界里,当前主要涉及的场景是 交易信任 。当然,还可以利用区块链的不可篡改性提供 存证服务,以解决其他场景的信任 问题。

至于区块链如何做到不可篡改的记账服务,请参见《区块链如何确保交易安全?》

以上内容为新媒号(sinv.com.cn)为大家提供!新媒号,坚持更新大家所需的区块链知识。希望您喜欢!

版权申明:新媒号所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请发送邮件至 k2#88.com(替换@) 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023-03-08 21:56
下一篇 2023-03-08 21:56

相关推荐

发表回复

登录后才能评论