区块链定义
区块链本质上是一个去中心化的分布式账本,其本身是一系列使用密码学而产生的互相
关联的数据块,每一个数据块中包含了多条经比特币的网络交易有效确认的信息。
凭什么帮你记账
奖励机制
分叉问题听谁的
分叉问题:存在乎同时记录完
新的区块链规则,记录的时候必须顶格写,而且要保
证,中心在离田字格上边缘0.897 57毫米的位置上
双花问题
双花问题是指一笔数字现金在交易中被重复使用的现象。
比特币步骤:

*
新的交易向全网进行广播;

*
每一个节点都将收到的交易信息纳入一个区块中;

*
每个节点都尝试在自己的区块中找到一个具有足够难度的工作量证明;

*
当一个节点找到了一个工作量证明,它就向全网进行广播;

*
当且仅当包含在该区块中的所有交易都是有效的且之前未存在过的,其他节点才认同该区块的有效性;

*
其他节点表示他们接受该区块,而接受的方法则是跟随在该区块的末尾,制造新的区
块以延长该链条,并将该区块的随机散列值视为新区块的随机散列值。
交易发生的一刻起,比特币的交易数据就被盖上了时间戳;而当这笔交易数据

被打包到一个区块中后,就算完成了一次确认;在连续进行6次确认之后,这笔交易就不可逆转了;在比特币中,每一次确认都需要“解决一个复杂的难题”,也就是说每一次确认都需要一
定的时间。
区块链运作
核心概念
区块
区块作为区块链的基本结构单元,由包含元数据的区块头和包含交易数据的区块主体构
成。
区块头包含三组元数据:

*
用于连接前面的区块、索引自父区块哈希值的数据;

*
挖矿难度、Nonce(随机数,用于工作量证明算法的计数器)、时间戳;

*
能够总结并快速归纳校验区块中所有交易数据的Merkle(默克尔)树根数据。
哈希算法
哈希算法是区块链中保证交易信息不被篡改的单向密码机制。哈希算法接收一段明文后,以一种不可逆的方式将其转化为一段长度较短、位数固定的散列数据。
两个特点:

*
加密过程不可逆,意味着我们无法通过输出的散列数据倒推原本的明文是什么;

*
输入的明文与输出的散列数据一一对应,任何一个输入信息的变化,都必将导致最终输出的散列数据的变化。
在区块链中的作用:
在区块链中,通常使用SHA–256(安全散列算法)进行区块加密,这种算法的输入长度为256位,输出的是一串长度为32字节的随机散列数据。

区块链通过哈希算法对一个交易区块中的交易信息进行加密,并把信息压缩成由一串数字和字母组成的散列字符串。区块链的哈希值能够唯一而准确地标识一个区块,区块链中任意节点通过简单的哈希计算都可以获得这个区块的哈希值,计算出的哈希值没有变化也就意味着区块中的信息没有被篡改。
公钥和私钥
信息发送者:用私钥对信息进行签名,使用信息接收方的公钥对信息加密。
信息接收方:用信息发送者的公钥验证信息发送者的身份,使用私钥对加密信息解密。
时间戳
区块链中的时间戳从区块生成的一刻起就存在于区块之中,它对应的是每一次交易记录的认证,证明交易记录的真实性。
每一个时间戳会将前一个时间戳也纳入其随机哈希值中,这一过程不断重复,依次相连,最后会生成一个完整的链条。
Merkle树结构

区块链利用Merkle树的数据结构存放所有叶子节点的值,并以此为基础生成一个统一的哈希值。Merkle树的叶子节点存储的是数据信息的哈希值,非叶子的节点存储的是对其下面所有叶子节点的组合进行哈希计算后得出的哈希值。
工作流程
在区块链中,所有的节点向上回溯,都会到达源头,即区块链中的第一个区块,也就是“创世区块”。
在“创世区块”诞生之后,比特币的用户通过不断地“做题”,即通过计算寻找满足特定SHA–256哈希值对应的数值解。这个过程就是比特币中的“挖矿”。

当任意一个用户优先计算出符合要求的数值解时,就会在全网范围内广播,而网络中的其他节点收到这条信息会进行验证,若通过验证,其他节点就会放弃计算,并将新创建的区块加到前一个区块的后面。
区块链的本质是一个互相验证的公开记账系统。这个系统所做的事情,就是记录所有账

户发生的所有交易。每个账号的每笔数额变化都会被记录在全网总账本中。而且每个人手上都有一份完整的账本,每个人都可以独立统计出有史以来比特币系统每个账号的所有账目,也能算出任意账号当前余额是多少。
硬分叉和软分叉
硬分叉
区块链发生永久性分歧,在新共识规则发布后,部分没有升级的节点无法验证已经升级
的节点生产的区块,通常硬分叉就会发生。

硬分叉的定义是这样的:硬分叉是指比特币的区块格式或交易格式(这就是广泛流传的“共识”)发生改变时,未升级的节点拒绝验证已经升级的节点生产出的区块,不过已经升级的节点可以验证未升级节点生产出的区块,然后大家各自延续自己认为正确的链,所以分成两条链。
特点:

*
没有向前兼容性,之前的版本将不可再用,需要强制升级;

*
在区块链层面会有分叉的两条链,一条旧链,一条分叉新链;
3.需要在某个时间点全部同意分叉升级,不同意的将会进入旧链。
软分叉
软分叉是指比特币交易的数据结构发生改变时,未升级的节点可以验证已经升级的节点
生产出的区块,而且已经升级的节点也可以验证未升级的节点生产出的区块。
特点

*
有较好的兼容性,之前版本的部分功能可用,可不升级;

*
在区块链层面没有分叉的链,只是组成链的区块有新区块和旧区块之分;

*
相当长的时间里,可允许不进行升级,继续使用原版本生成旧区块,与新区块并存。
区块链的工作原理

假设A和B之间要发起一笔交易,A先发起一个请求——我要创建一个新的区块,这个区块就会被广播给网络里的所有用户,所有用户验证同意后该区块就被添加到主链上。这条链上拥有永久和透明可查的交易记录。全球一本账,每个人都可以查找。
特点:
去中心化
信任
集体维护
可靠的数据库
区块链底层架构
基础架构
区块链基础架构分为6层:
包括数据层、网络层、共识层、激励层、合约层、应用层。
每层分别完成一项核心功能,各层之间互相配合,实现一个去中心化的信任机制。
数据层 主要描述区块链技术的物理形式 区块链系统设计的技术人员们首先建立的一个

起始节点是“创世区块”,之后在同样规则下创建的规格相同的区块通过一个链式的结构依次相连组成一条主链条。随着运行时间越来越长,新的区块通过验证后不断被添加到主链上,主链也会不断地延长。
网络层
网络层的主要目的是实现区块链网络中节点之间的信息交流。
每一个节点既接收信息,也产生信息。节点之间通过维护一个共同的区块
链来保持通信。
共识层
让高度分散的节点在去中心化的系统中高效地针对区块数据的有效性达成共识
工作量证明
权益证明
股份授权证明
激励层
激励层的主要功能是提供一定的激励措施,鼓励节点参与区块链的安全验证工作。
合约层
主要是指各种脚本代码、算法机制以及智能合约
合约层封装的脚本中规定了比特币的交易方式和过程中涉及的种种细节
应用层
应用层封装了区块链的各种应用场景和案例
基本类型
公有链
公有链是指全世界任何人都可读取、任何人都能发送交易且交易能获得有效确认,任何
人都能参与共识过程的区块链——共识过程决定哪个区块可被添加到区块链中,同时明确当前状态。
特点:

* 保护用户免受开发者的影响
* 访问门槛低
* 所有数据默认公开
私有链
私有链是指其写入权限仅在一个组织手里的区块链,目的是对读取权限或者对外开放权限进行限制。
特点:
* 交易速度非常快
2.为隐私提供更好的保障
3.交易成本大幅降低甚至为零
4.有助于保护其基本的产品不被破坏
联盟链
联盟链是指其共识过程受到预选节点控制的区块链。
联盟链可以视为“部分去中心化”,区块链项目R3 CEV就可以认为是联盟链的一种形态。
区块链的发展
区块链1.0
以比特币为代表的可编程货币。它更多是指数字货币领域的创新,如货币转
移、兑付和支付系统等。
区块链2.0
基于区块链的可编程金融。它更多涉及一些合约方面的创新,特别是商业合同
以及交易方面的创新,比如股票、证券、期货、贷款、清算结算、所谓的智能合约等。
区块链3.0
区块链在其他行业的应用。它更多地对应人类组织形态的变革,包括健康、科
学、文化和基于区块链的司法、投票等
共识机制
拜占庭将军问题

拜占庭罗马帝国在军事行动中,采取将军投票的策略来决定是进攻还是撤退,也就是说如果多数人决定进攻,就冲上去。但是军队中如果有奸细(比如将军已经反水故意乱投票,或者传令官叛变擅自修改军令),那怎么保证最后投票的结果真实反映了忠诚的将军的意愿呢?
工作量证明
通常只能从结果证明,因为监测工作过程通常是烦琐且低效的。
PoW机制,

一个符合要求的区块哈希值由N个前导零构成,零的个数取决于网络的难度值。要得到合理的区块哈希值需要经过大量的尝试计算,计算时间取决于机器的哈希运算速度。当某个节点提供出一个合理的区块哈希值,说明该节点确实经过了大量的尝试计算,当然,这并不能得出计算次数的绝对值,因为寻找合理的哈希值是一个概率事件。当节点拥有占全网n%的算力时,该节点即有n%的概率找到区块哈希值。
PoW的优点:
完全去中心化,节点自由进出。
PoW的缺点:
目前比特币已经吸引全球大部分的算力,其他再使用PoW共识机制的区块链
应用很难获得相同的算力来保障自身的安全;挖矿造成大量的资源浪费;共识达成的周期较长。
PoW的项目有:

比特币、以太坊前三个阶段——Frontier(前沿)、Homestead(家园)、Metropolis(大都会)。以太坊的第4个阶段,即Serenity(宁静),将采用权益证明机制。
权益证明
PoS的理念:

节点记账权的获得难度与节点持有的权益成反比,相比PoW,其在一定程度上减少了数学运算带来的资源消耗,性能也得到了相应的提升,但依然是基于哈希运算,竞争获取记账权的方式,可监管性弱。该共识机制的容错性和PoW相同。它是PoW的一种升级,根据每个节点所占代币的比例和时间,等比例地降低挖矿难度,从而加快找到随机数的速度。
PoS的优点:在一定程度上缩短了共识达成的时间;不再需要大量消耗能源去挖矿。
PoS缺点:还是需要挖矿,本质上没有解决商业应用的痛点;所有的确认都只是一个概率
上的表达,而不是一个确定性的事情,理论上有可能存在其他攻击影响
股份授权证明
DPoS的工作原理:

每个股东按其持股比例拥有相应的影响力,51%股东投票的结果将是不可逆且有约束力的,其挑战是通过及时而高效的方法达到“51%批准”。为了达到这个目标,每个股东可以将其投票权授予一名代表。获票数最多的前100位代表按既定时间表轮流产生区块。每位代表分配到一个时间段来生产区块。
执行该模式:
* 成为代表。
* 授权投票。
* 保持代表诚实。
* 抵抗攻击。
DPoS的优点:
大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证。
DPoS的缺点:
整个共识机制还是依赖于代币,而很多商业应用是不需要代币的。
投注共识
Casper协议下的验证人需要完成出块和投注两个活动
瑞波共识机制
瑞波共识算法使一组节点能够基于特殊节点列表形成共识。
Pool验证池
优点:
不需要代币也可以工作,在成熟的分布式一致性算法(Pasox、Raft)的基础上,实现秒级共识验证。
缺点:
去中心化程度不如比特币,更适合多方参与的多中心商业模式。
实用拜占庭容错
授权拜占庭容错
优点:
专业化的记账人;可以容忍任何类型的错误;记账由多人协同完成;每一个区块都有最终性,不会分叉;算法的可靠性有严格的数学证明
核心:
最大限度地确保系统的最终性,使区块链能够适用于真正的金融应用场景。
帕克索斯算法
一种传统的分布式一致性算法,是一种基于选举领导者的共识机制。领导者节点拥
有绝对权限,并允许强监管节点参与,其性能高,资源消耗低。所有节点一般有线下准入机制,但选举过程中不允许有作恶节点,不具备容错性。

友情链接
ioDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信