1.区块链基本架构 #
- 数据层:描述区块链物理结构
- 网络层:提供节点间数据通信和数据校验
- 共识层:提供节点间达成共识的算法
- 激励层:提供激励措施
- 合约层:提供可编程能力
- 应用层:提供封装区块链技术的应用
2.拜占庭问题和拜占庭容错 #
拜占庭问题:存在少数不良节点场景下的一致性达成问题 拜占庭算法(BFT):N为节点总数,F为其中不良节点数,当N>=3F+1时问题才有解 实用拜占庭算法(PBFT):是第一个广泛采用的BFT算法,采用密码学技术(RSA签名算法、信息摘要算法、信息验证算法)
3.区块链常见共识算法 #
- 工作量证明POW:通过耗费电力阻止不良行为
- 权益证明POS:代币质押者为验证者,通过绑定验证者和网络的利益来阻止不良行为
- 委托权益证明DPOS:代币持有者对交易验证者进行投票
4.身份认证 #
摘要算法+签名算法 A:对交易信息进行Hash取摘要,通过私钥加密生成签名 广播:广播交易信息+A公钥+A生成的签名 B:对交易信息Hash取摘要,通过A公钥解密签名得到摘要,比对两个摘要
5.双重支付问题 #
区块链存在51%攻击的问题,依靠强大的算力篡改区块进行强行分叉。 可以通过等待若干新块产生后再进行正式交付,来降低51%攻击的可能性
6.闪电网络 #
比特币交易性能差(全网tps=7左右),同时还需要等待6个块的可行确认(抵御双重支付攻击),导致一笔交易可能要1小时的最终确认
- RSMC(序列到期可撤销合约):链下通道+链上更新+违约惩罚
- HTLC(哈希时间锁定合约):通过合约双方约定接收方提供一个哈希值,在一定时间内有人能提出一个字符串使得哈希后的值与已知值匹配,则转账方将这笔钱转给回答正确的人
7.软分叉 #
定义 #
在区块链协议中,软分叉(Soft Fork)是对现有协议做向后兼容的更改。软分叉的特点是,新规则是现有规则的一个子集,也就是说,遵循旧规则的节点仍然可以理解并处理遵循新规则的区块和交易,但不能创建不符合新规则的区块和交易
软分叉状态 #
软分叉状态指的是区块链网络中软分叉的激活和部署状态。通常,软分叉的激活分为以下几个阶段
- 定义阶段(Defined):
- 软分叉的代码已经被写入客户端软件,但还没有开始正式监控。
- 投票阶段(Started):
- 节点开始在区块头中嵌入信号(通过特定的区块版本位)来表示它们是否支持该软分叉。
- 矿工通过在区块头中设置特定的比特位来投票支持或反对这个软分叉。
- 锁定阶段(Locked In):
- 如果在一个特定的周期内(例如 2016 个区块)达到了一定的支持率(通常是 95%),软分叉就会进入锁定阶段。
- 在锁定阶段结束后,软分叉将会被激活。
- 激活阶段(Active):
- 软分叉的规则开始正式生效,所有新创建的区块和交易都必须遵循这些新规则。
软分叉状态表示区块链网络中软分叉的不同阶段,包括定义、投票、锁定和激活阶段。检查软分叉状态有助于节点决定如何与其他节点进行交互,以确保遵循最新的协议规则,从而提高网络的安全性和数据一致性。例如,在 SegWit 激活后,节点需要与支持 SegWit 的对等节点进行同步,以确保能够完整地验证所有区块链数据