区块链再认识

2021-03-10  本文已影响0人  徐薇薇

1.技术原理

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

狭义地说,每个区块均由三部分构成:本区块的哈希值(包括本区块的大小、生成时间等所有信息)、所有交易单(每一笔交易的详细情况)与在其先后的区块哈希值(即前后区块中所有交易信息经过算法压缩后形成的一个字符串)。区块链让全网所有节点都在每一个区块上盖一个时间戳以记录每一条信息写入的时间,整个区块链由此形成了一个不可篡改、不可伪造的数据库。

2.作用

区块链是无须中心节点提供信任担保的数字化账本。

区块链之所以似乎能保护用户隐私,原因在于区块链的账户及其对应的真实用户身份在区块链上不存在对应关系。

3.盲点

数据上链并不是把数据全部放在区块链上,而是把数据仍然保存在原有的地方,只是把数据的校验信息放在链上。

所谓共识的本质,就是一种让区块链各个节点上的数据保持一致的方法。

4.区块链架构

区块链系统由数据层(必备)、网络层(必备)、共识层、激励层、合约层和应用层(必备)组成。激励层将激励机制集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;

5.如何达成共识

为了成为一个有“共识”的、可靠的分布式数据库,而且能够不依赖任何中间人,区块链必须在网络传输上有所突破,解决这个问题的方法就是P2P(点对点)通信。所谓P2P通信,就是节点之间直接通信而不需要经由第三方。

区块链是由很多台运行区块链软件的计算机组成的网络系统,每台这样的计算机被称为节点。

区块链每个节点都独立地和其他节点进行通信,每个节点都会采用“存储—转发”策略来“收听”其他节点发送的内容,并且广播自己产生的信息或者转发收到的信息。

6.如何验证?

区块链如何进行数据的验证呢?这涉及两个重要的计算机密码学相关的技术:一是哈希算法,二是数字签技术。

只要把块内的数据按照相同的哈希算法计算一遍,再比较一下结果是否一致,就能知道这块数据是否正确。而区块链里每一块的数据还包含着前一块的哈希计算结果,并且把前一块的哈希计算结果用于自己这一块来计算哈希结果。

数据上链通常并不是把数据本身放入区块链,而是把数据真实性和一致性的证明信息(例如数据的哈希验证码)或加密后的数据放在区块链上。

验证数字签名的流程如下:

• 首先,签名的验证方,一定要持有发送方A的非对称密钥对的公钥;

• 在接收到数字签名与A的原始数据后,首先使用公钥,对数字签名进行解密,得到原始摘要值;

• 然后,对A的原始数据通过同样的哈希算法计算摘要值,进而比对解密得到的摘要值与重新计算的摘要值是否相同,如果相同,则签名验证通过。

A的公钥可以解密数字签名,保证了原始数据确实来自A

7.区块链的应用场景

现阶段适合的场景有三个特征:第一,存在去中心化、多方参与和写入数据需求;第二,对数据真实性要求高;第三,存在初始情况下相互不信任的多个参与者建立分布式信任的需求。

区块链适用于多状态、多环节,需要多参与方协同完成,多方相互不信任,无法使用可信第三方(Trusted Third Party, TTP)完美解决的事情。

什么样的数据适合上链呢?简单来说就是需要共享的、需要具备可信度、不能被篡改并且需要可追溯的数据。

如果一个区块链只有一个写入者,那么无论拥有多少共识节点都是没有意义的,因为写入者可以随意写入、随意变更数据,本质上又变成了一个集中式的系统。因此,一个合理的区块链应用是要求参与的各方都可以具备预先规定好的写入权限,

上一篇下一篇

猜你喜欢

热点阅读