区块链基础知识

时间:2024-04-04 21:08:56

区块链(BlockChain)

定义:区块链是一个共享的、不可变的分类帐,用于记录交易、跟踪资产和建立信任。本质上是一个去中心化的分布式账本数据库,其本身是一串使用密码学相关联产生的数据块,每一个数据块上包含了多次比特币网络交易有效的确认信息。

共享的理解:它要求我们所有的人共用同一本账本。所有的参与方从原材料的第一步一直到最终的使用者、消费者、买单者每个人都可以去查看账本。它是全透明的、有距离的、不可修改的、不可删除的。

现在网上购物的时候,如果说除了整个快递和支付的过程,自己也可以跟踪,对于商品的起源、生产的源头都可以追溯的话,那么就可以解决消费时候的疑虑。有一些乳制品企业现在已经在做这方面的尝试了,这是从消费者的角度

不可变的理解:不能随意更改数据。例如商品的例子。hash算法,给任意一个文件生成了一串固定长度的乱码一样的标签,算法是不可逆的,就是说,你拿到这个标签,无法反向推导出原来的数据文件。正是这种不可逆性,决定了区块链的不可更改性。每个区块中,除了十分钟内的转账交易数据之外,还有一个区块头。区块头包含了对上一个区块数据的 hash 值。这些 hash 层层嵌套,长度固定,最终将所有区块串联起来,形成区块链

去中心化的理解:

中心化与去中心化的对比(谁拥有记账权)

1.中心化机构拥有公认”记账权”

 

区块链基础知识

2.去中心化的区块链网络所有人具有”记账权”

区块链基础知识

 

区块链是什么的例子:https://www.bilibili.com/video/BV1J7411Z7T9?from=search&seid=5524688675302547308

 

 

区块链的结构:

一个完整区块是由神奇数、区块大小、数据区块头部信息、交易计数、交易详情等组成。在这当中,数据区块头部信息的HASH值是下一个新区 块的HASH值的参考目标数,最后一项交易详情记录了该区块中所有的交易记录。

区块头由4字节的版本号、32字节的上一个区块的散列值、32字节的Merkle Root Hash、4字节的时间缀、4字节的当前难度值、4字节的随机数 组成。区块包含的交易列表则附加在区块头后面,其中的第一笔交易是coinbase交易,这是一笔为了让矿工获得奖励及手续费的特殊交易。 见图示:

 

区块链基础知识

 

 

区块链基础知识

链式结构

矿工挖矿的过程 就是产生新的数据区块的过程,这个过程需要对比前一个数据区块头部的HASH值和随机数,如果满足一定条件则生成新的区块。 Merkle树的根值为该区块中所有被记录交易的根节点HASH值,中本聪用一个HASH树来对每一比交易进行数字签名,以确保每一比交易都不可 伪造和没有重复交易,Merkle树就是HASH树的一种。

数据区块的交易记录中,详细记载了交易记录和相关细节。例如比特币收支详情里面记录了当前区块中所记录的支出交易数量、地址信息、接收 地址信息、接受的交易数量等。 见图示:

区块链基础知识

 

区块链的分类

 

(1)公有链

所谓公有就是完全对外开放,任何人都可以任意使用,没有权限的设定,也没有身份认证之类,不但可以任意参与使用,而且发生的所有数据都可以任意查看,完全公开透明。

比特币就是一个公有链网络系统,大家在使用比特币系统的时候,只需要下载相应的软件客户端,创建钱包地址、转账交易、挖矿等操作,这些功能都可以*使用。

公有链系统由于完全没有第三方管理,因此依靠的就是一组事先约定的规则,这个规则要确保每个参与者在不信任的网络环境中能够发起可靠的交易事务。通常来说,凡是需要公众参与,需要最大限度保证数据公开透明的系统,都适用于公有链,比如数字货币系统、众筹系统、金融交易系统等。

(2)私有链

私有链是与公有链相对的一个概念,所谓私有就是指不对外开放,仅仅在组织内部使用的系统,比如企业的票据管理、账务审计、供应链管理等,或者一些政务管理系统。私有链在使用过程中,通常是有注册要求的,即需要提交身份认证,而且具备一套权限管理体系。

(3)联盟链

联盟链的网络范围介于公有链和私有链之间,通常是使用在多个成员角色的环境中,比如银行之间的支付结算、企业之间的物流等,这些场景下往往都是由不同权限的成员参与的,与私有链一样,联盟链系统一般也是具有身份认证和权限设置的,而且节点的数量往往也是确定的,对于企业或者机构之间的事务处理很合适。联盟链并不一定要完全管控,比如政务系统,有些数据可以对外公开的,就可以部分开放出来。

 

 

公有链

联盟链

私有链

中心化程度

去中心化

多中心化

中心化

参与者

任何人

预先设定、具有特殊特征的成员

中心控制者制定的可以参与的成员

信任机制

工作量证明

共识机制

自行背书

记账者

所有参与者

参与者协商决定

自定

优势

1、完全解决信任问题 2、全球可用户访问,应用程序容易部署,进入壁垒最低

1、容易进行控制权限定

2、具有很高的可扩展性

1、一般而言没有挖矿过程,网络能耗低

2、规则修改容易,交易量,交易速度无限制

3、节点通过授权进入,不存在51%攻击风险

缺点

交易量受限,挖矿能耗高

不能完全解决信任问题

1、接入节点受限

2、不能完全解决信任问题

使用场景

网络节点之间没有信任的场景

连接多个公司或中心化组织

节点之间高度信任场景

典型案例

比特币、以太坊

清算、支付

R3联盟等金融领域联盟、审计发行

区块链的关键技术

分布式账本、共识机制、密码学、智能合约。它们在区块链中分别起到了数据的存储、数据的处理、数据的安全、以及数据的应用作用。

(1)分布式账本(分布式存储)

分布式账本构建了区块链的框架,它本质是一个分布式数据库,当一笔数据产生后,经大家处理,就会储存在这个数据库里面,所以分布式账本在区块链中起到了数据储存的作用。因为分布式账本去中心化的特点,决定了区块链网络是一个分布式的结构,每个人都可以*地加入其中,共同参与数据的记录。但与此同时,就衍生出来了令人头疼的“拜占庭将军问题”,即网络中参与的人数越多,全网也就越难以达成统一。于是就需要共识机制。

 

(2)共识机制

一套机制来协调全节点账目保持一致,共识机制就制定了一套规则,明确每个人处理数据的途径,并通过争夺记账权的方式来完节点间的意见统一,最后谁取得记账权,全网就用谁处理的数据。所以共识机制在区块链中起到了统筹节点行为、明确数据处理的作用。

 

(3)密码学

打包好的数据块,会通过密码学中的哈希函数处理成一个链式的结构,后一个区块包含前一个区块的哈希值,因为哈希算法具备单向性、抗篡改等特点,所以只要在区块链网络中,数据一旦上链就不可篡改、且可追溯。另外账户也会通过非对称加密的方式进行加密,进而保证了数据的安全,验证了数据的归属

 

(4)智能合约

可以在分布式账本的基础上,搭建应用层面的智能合约,当我们想要解决一些信任问题,可以通过智能合约,将用户之间的约定由代码的形式,将条件罗列清楚,并通过程序来执行,而区块链中的数据,则可以通过智能合约进行调用。所以智能合约在区块链中起到了数据的执行与应用的功能。简单讲,智能合约就是双方在区块链资产上交易时,触发执行的一段代码,这段代码就是

 

应用场景

1.金融行业、跨境支付

2.数字代币

3.电商物流

4.公益募捐

5.身份认证

...

 

公链

共识机制:

区块链是一个公共账本、公开的数据库,同时也是一个点对点的协作网络。协作方(节点)共同维护数据,每个节点都有一份完整的数据备份,所有节点的数据内容必须完全一致,每个节点都可以在本地查找交易记录,每个节点也可以在本地添加交易。

因为区块链是去中心化的,没有一个中心来指挥、协调,要完成这个协作,区块链就必须有一个共识机制,这个机制必须解决两个基本问题:

1. 谁有权写入数据——一次只有一个人可以记账;

2. 其他人如何同步数据——因为要保持账本的一致性。

数据写入(区块添加)的过程是这样的:有权打包交易的节点,将打包的交易(区块)放在既有的数据库(区块链)上,并向全网广播,其他节点收到信息,验证区块无误,就会同步这个新打包的交易。每个打包的交易叫作一个区块,区块不断叠加,延长区块链。

同步数据有一个问题,就是如何对在一定时间段内发生的交易的先后顺序达成一致?

由于各个节点都在自发地记账或者同步,在点对点相互通信下的情况下存在较高的网络延迟,因此各个节点收到数据的先后顺序是不一致的。你记你的,我记我的,如何保证每个节点副本数据的一致性?

区块链的共识是:以最长链作为主链,即每个节点总是选择并尝试延长主链,也就是各节点都以区块最多的那条链作为自己添加、更新区块的选择,这样多节点就能同步一个权威的公共账本了。

 

几种共识机制:

pow工作量证明

就如字面的解释,PoW就是工作越多,收益越大。这里的工作就是猜数字,谁能最快的猜出这个唯一的数字,谁就能做信息公示人。通过极其大量的计算,才能找到一个随机值,使得区块的哈希值符合一定的条件。这个过程就叫做挖矿。

pos权益证明

通过持有Token(代币)的数量和时长来决定你获得记账的机率,类似于股票的分红制度,持有股权越多的人就能够获得更多的分红

dpos股份授权证明

是基于POS衍生出的更专业的解决方案,类似于董事会投票,指拥有Token的人投票给固定的节点,选举若干代理人,由代理人负责验证和记账。不同于POW和POS的全网都可以参与记账竞争,DPOS的记账节点在一定时间段内是确定的

pbft

它与之前两种都不相同,PBFT以计算为基础,也没有代币奖励。由链上所有人参与投票,少于(N-1)/3个节点反对时就获得公示信息的权利。

拜占庭容错共识机制:https://www.jianshu.com/p/6420eb1661a0

dbft

此算法在PBFT基础上进行了以下改进:在区块链中引入数字证书,解决了投票中对记账节点真实身份的认证问题

是由权益来选出记账人,然后记账人之间通过拜占庭容错算法来达成共识。dBFT和PBFT的关系类似于 PoS和DPoS的关系

 

 

共识机制比较

文档编写目的:比较主流区块链优、劣势、 应用场景、是否经济适用、长远功能规划等,便于技术、商务、对外共识。

首先,没有一种共识机制是完美无缺的,各共识机制都有其优缺点,有些共识机制是为解决一些特定的问题而生。

共识算法必须具备三个基本要求:

1.一致性 (safety):所有参与共识的诚实的节点,得到的计算结果是相同的,而且是符合共识协议的。

2. 终局性 (liveness):所有参与共识的诚实的节点,最终可以达成一致性结果。

3. 容错性 (fault tolerance):在共识算法的成功执行过程中,可以容许参与共识的节点发生一些错误。

以下,以表格形式列举了主流的几种共识机制(PoW,PoS,DPoS,PBFT,DBFT)的特点:

共识机制

Pow( Proof of Work)工作量证明

Pos (Proof of Stake)权益证明

Dpos(Delegated Proof of Stake)股份授权证明

Pbft (Practical Byzantine Fault Tolerance)实用拜占庭容错

 

DBFT(delegated BFT )授权拜占庭容错算法

代表项目

 

比特币,莱特币

以太坊,NXT

比特股,EOS

央行计划推出的区块链平台,Zillipa

小蚁

简介

依赖机器进行数学运算来获取记账权。 

主要思想是节点记账权的获得难度与节点持有的权益成反比,该共识机制容错性和PoW相同。它是Pow的一种升级共识机制,根据每个节点所占代币的比例和时间,等比例的降低挖矿难度,从而加快找随机数的速度

与PoS的主要区别在于节点选举若干代理人,由代理人验证和记账。其合规监管、性能、资源消耗和容错性与PoS相似。类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账。

 

在保证活性和安全性的前提下提供了(n-1)/3的容错性。

 

由权益来选出记账人,然后记账人之间通过拜占庭容错算法来达成共识。

此算法在PBFT基础上进行了以下改进:

在区块链中引入数字证书,解决了投票中对记账节点真实身份的认证问题

优势

1)算法简单,容易实现;

2)节点间无需交换额外的信息即可达成共识;

3)破坏系统需要投入极大的成本;

 

1)在一定程度上缩短了共识达成的时间;

2)不再需要大量消耗能源挖矿。

 

大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证。

 

1)系统运转可以脱离币的存在,pbft算法共识各节点由业务的参与方或者监管方组成,安全性与稳定性由业务相关方保证。

2)共识的时延大约在2~5秒钟,基本达到商用实时处理的要求。

3)共识效率高,可满足高频交易量的需求。

1)专业化的记账人;

2)可以容忍任何类型的错误;

3)记账由多人协同完成,每一个区块都有最终性,不会分叉;

4)算法的可靠性有严格的数学证明;

 

劣势

1)浪费能源;2)区块的确认时间难以缩短

3)新的区块链必须找到一种不同的散列算法,否则就会面临比特币的算力攻击;

4)容易产生分叉,需要等待多个确认;

5)永远没有最终性,需要检查点机制来弥补最终性;

还是需要挖矿,本质上没有解决商业应用的痛点;所有的确认都只是一个概率上的表达,而不是一个确定性的事情,理论上有可能存在其他攻击影响。例如,以太坊的DAO攻击事件造成以太坊硬分叉,而ETC由此事件出现,事实上证明了此次硬分叉的失败。

整个共识机制还是依赖于代币,很多商业应用是不需要代币存在的。

1)当有1/3或以上记账人停止工作后,系统将无法提供服务;

2)当有1/3或以上记账人联合作恶,且其它所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使系统出现分叉,但是会留下密码学证据;

 

1)当有1/3或以上记账人停止工作后,系统将无法提供服务;

2)当有1/3或以上记账人联合作恶,且其它所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使系统出现分叉,但是会留下密码学证据;

 

应用场景

主要用于交易结算领域,包括转账、支付、借贷等

除交易系统以外,主要被用于众筹和一些简单的区块链游戏。

去中心化交易所、去中心化社交平台。

金融证券保险等行业,基于区块链的数字票据交易平台

目前主要应用于金融服务行业,小蚁是基于区块链技术,将实体世界的资产和权益进行数字化,通过点对点网络进行登记发行、转让交易、清算交割等金融业务

是否经济实用

浪费资源,目前比特币挖矿每年消耗的电力已经超过爱尔兰全国每年消耗的电力

浪费资源,没有摆脱挖矿的机制。

相较于POW和POS更加经济实用节省能源,DPOS共识过程一般需要11、21或101个节点

节点总数为3F+1,共识过程中不需要挖矿比较节省资源

和pbft基本一致

 智能合约

区块链实现去信任的核心在于智能合约。对于智能合约的定义依然存在差异,例如:“区块链网络智能合约是存储在区块链上的一段代码,它们可以被区块链上的交易所触发,触发后,这段代码可以从区块链上读取数据或者向区块链上写入数据”、“一个智能合约是一套以数字形式定义的承诺(promises) ,包括合约参与方可以在上面执行这些承诺的协议。”数据的执行与应用。

其本质是将传统需要第三方来监督执行的合约(合同、协议、法律规章等),通过编程的形式实现在条件被触发情况下强制执行。便不再存在违约、风险及不确定性的情况发生。