区块链
2019-01-28 10:16:42
登录查看完整内容
区块链基础知识整理
举报
猜你喜欢
大纲/内容
区块链
架构设计
协议层
网络层
共识机制
概念
就是在一个问题上达成共识的一套方法。在区块链中,共识机制也是区块链的底层技术,也是最为重要的技术。也称为工作量证明机制
功能
为了完成节点间信息同步,交易的确认,网络运行等重要任务。
特点
对比表
常见的共识机制
POW
工作量证明机制
工作量证明机制,简单地说,就是一种共识机制,用来确认你是否做过一定量工作的证明。比特币的区块链主要是依托计算数学难题来衡量工作量。每个区块,当选定一定数量的交易记录之后,填充版本号、时间戳、难度值,生成相应的 Merkle 根哈希。很容易看到,这些数值在选定交易记录以后,都是确定的,唯一能够改变的就只有随机数(Nonce)这个值。如图 ← 所示,系统根据难度值,要求计算整个区块头的两次 SHA256 算法,得到的哈希结果要小于一个阈值。根据前面描述的 SHA256 算法的伪随机性,只有通过不断地尝试和枚举,才能找到相应的随机数,证明自己的工作量。
图示
POS
股权证明机制
DPOS
授权股权证明机制
PBFT
实用拜占庭容错机制
SCP
瑞波共识机制RPCA是一个类似PBFT的共识机制,属于节点投票的共识机制。初始特殊节点列表就像一个俱乐部,要接纳一个新成员,必须由51%的该俱乐部会员投票通过。共识遵循这核心成员的51%权力,外部人员则没有影响力。由于该俱乐部由“中心化”开始,它将一直是“中心化的”,而如果它开始腐化,股东们什么也做不了。与比特币及点点币一样,瑞波系统将股东们与其投票权隔开,并因此比其他系统更中心化。Stellar的共识机制SCP(Stellar Consensus Protocol)就是在“Ripple共识算法”的基础上演化而来的。
P2P网络
P2P(Peer-to-Peer)网络是一种端到端的网络。P2P 网络分为结构化(例如基于 Chord 的 P2P 网络)和非结构化的 P2P 网络(例如 Gnutella)。通过允许单个节点与其他节点直接交互,从而实现整个系统像有组织的集体一样运作的系统 。
比特币的区块链采用的是非结构化 P2P 网络,整个网络没有中心化的硬件或管理机构,任一节点既是服务端,也是客户端。任何节点只要安装相应的客户端软件,就能接入 P2P 网络(例如 BT 软件),参与区块链的记录和验证,不超过 1/3 节点的损坏、退出甚至被植入恶意代码,都不会影响整个系统的运作。
传统中心化和P2P网络拓扑对比图
加密技术
加密算法
对称加密
指用同样的密钥来进行加密和解密
非对称加密
指用一个密钥对来进行加密和解密
在非对称加密技术中,对外公开、分发出去的密钥叫做公钥,不能公开、自己留存的密钥叫做私钥。公钥加密的,对应的私钥才能解密。反之亦然。
种类
非对称加密算法有 RSA、DSA 和 ECC 等种类,区块链使用的是基于椭圆曲线加密技术的数字签名(ECDSA),具体实现是 secp256k1。ECDSA 相当于是 DSA 和非对称加密 ECC 的结合。相比 RSA 算法,ECDSA 具有计算量小、存储空间小、带宽要求低等特点
哈希(Hash)加密
主要是通过对数据进行哈希运算,用固定的哈希结果值验证信息是否被篡改
安全哈希算法(Secure Hash Algorithm,SHA)是由美国国家安全局研发,由美国国家标准与技术研究院(NIST)发布的一系列密码哈希函数,包括 SHA-0、SHA-1、SHA-2 和 SHA-3 等系列。比特币的区块链使用的是 SHA-256 哈希加密算法,于 2001 年发布,属于 SHA-2 分支。由于 SHA256 伪随机性的特点,只要是相同的数据输入,一定会得到相同的结果,如果输入数据稍有变化,将得到一个千差万别的结果,如图 5 所示。SHA256 还是一个单向不可逆的算法,即根据一个输入数算 SHA256 的结果很容易,但根据 SHA256 的结果反算输入数几乎是不可能。除此之外,比特币还使用 ripemd160 算法来生成比特币钱包的地址。
示意图
梅克尔树
Merkle是区块链的基本组成部分
如图 ←所示,区块链中的每个区块,由区块头和区块体构成,区块头中含有一个 Merkle 根节点的字段,通过对区块体中所有交易记录,以二叉树的形式迭代地两两拼接 、进行哈希操作,可以得到一个最终的哈希值,我们称之为 Merkle 根哈希。Merkle 根哈希相当于是对区块中所有交易记录进行了一个快照,区块中交易记录的任意改动都可以通过比较 Merkle 根哈希而很容易地察觉。Merkle 根哈希主要用于简单支付验证(SPV),在验证某个交易是否在区块中时,也能极大地减少网络传输成本。
数字签名
基于数字签名的通信机制工作原理,如←图 所示,发送报文时,发送方用一个哈希函数从报文文本中生成文件摘要,然后用自己的私钥对摘要进行加密,加密后的摘要将作为报文的数字签名和报文一起发送给接收方。接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再用发送方的公钥来对报文附加的数字签名进行解密,如果得到的明文相同,那么接收方就能确认传输的文件并未受到篡改,是安全可信的。
...
存储层
区块1
区块2
区块N
扩展层
针对市场交易应用扩展
针对数据交易
针对其他应用的扩展
应用层
app客户端
交易网站
第三方扩展
市场案例
基本概念
BlockChain
区块Block
链Chain
数据结构
每个区块保存规定时间段内的数据记录,并通过密码学的方式,构建一条安全可信的链条,形成一个不可篡改、全员共有的分布式账本
比特币
比特币的区块分为区块头和区块体两部分。区块头的大小为 80 字节,包括 4 字节的版本号、32 字节(256 位)的上一区块哈希值、32 字节的 Merkle 根节点、4 字节的时间戳、4 字节的难度值和 4 字节的随机数。区块体包含 10 分钟内选定的交易记录,第一笔交易(coinbase 交易)是用于奖励矿工比特币的特殊交易,由矿工自己添加进区块。
高频词汇
运行机制
相关
开源项目和工具
0 条评论
回复 删除
下一页
职业:产品汪
作者其他创作:
商机管理流程
267 2023-02-03
数据需求流程
405 2023-02-03
中奖订单流程
192 2019-07-22
区块链
593 2019-01-28
购物流程
415 2018-08-28
需求管理
1186 2018-08-28
闪修侠产品部协作流程
570 2018-03-20
产品开发项目建议流程-Daisy-20160330V1.0
1434 2018-03-13
产品架构
2069 2017-06-21
研发部组织架构
2917 2016-08-25