区块链Task1

本文深入探讨了区块链技术中的两种核心共识机制:工作量证明(POW)与权益证明(POS)。详细解释了POW如何通过计算哈希来达成共识,以及POS如何通过经济激励和随机选举来维护网络稳定。此外,还介绍了交易处理机制、P2P网络中的节点发现与秘钥交换过程以及区块同步等关键环节。

在阅读区块链简介后对于难点的POW和POS加深了理解:
POW的一般理解
根据难度做SHA256哈希运算, 不停寻找Nonce特定的HASH 前导0的个数越多,代表难度越大
优点是难于计算,一旦收到网络上的区块,能快速验证难度算法按高度动态调整,维持出块时间不变
POW规范链
POW易分叉,本地存储所有分叉区块CanonicalChain维护HASH和Number对应关系,标记最长链
当收到区块难度比本地高时,会发生区块回退reorg,执行块的交易,状态更新
POS
POS权益证明POW耗费电力,提高出块时间易分叉,TPS低持有Token参与质押来获取一定的收益
经济激励模型,对作恶节点有相应的惩罚以维护全网稳定
POS常用概念
委员会,持币用户质押竞选Leader出块,其他委员会成员校验块并提交签名
EPOCH 一定区块高度为一届选举 新的委员会成员 随机选举和按难度、质押量选举换届 本届出块完成即开启下届出块 提高全网安全,减少委员会攻击和作恶
交易
交易的不可篡改交易里面的字段做SHA3得到txhash私钥签名txhash,签名获取RSV,V含有ChainId
交易在传输中篡改, txHash会发生改变,校验签名不会通过交易记录nonce
重放攻击是指用户交易信息在一条链上再次发送,比如Alice转钱给Bob的交易发出后,Bob可以将这条交易信息重复发送到网络中,如果没有nonce,这笔交易会被当作合法交易,所以每笔交易必须有一个nonce值。nonce从0开始递增,每发送一笔交易,nonce便加1。
nonce小于当前的nonce,交易被拒绝
nonce大于当前使用的nonce+1,交易在Tx_Pool等待,直到nonce匹配
处于pending的交易,新交易有相同的nonce,新交易的gas费太低会丢弃,新交易gas费高于原交易的110%,原交易被覆盖
测试网间的重放攻击
众所周知,以太坊因为DAO事件分叉出了ETC,如果你在以太坊账户有余额,那在ETC账户也有余额,你想给某个用户在ETC上转账,恰巧此时ETH和ETC上此账户的Nonce是一样的,那这笔交易在ETH上面执行也会通过,但转账者并不想发送此类行为,引入ChainId 可以规避到这种情况

P2P
节点发现
节点查询前发送pingpong验证对方在线和版本验证发送findnode消息向对方查询邻居节点,以公钥hash为条件
对方去K桶 按目标值获取16个最近的邻居节点本地节点连接已满,停止查询,本地没连满,继续节点发现
秘钥交换
节点在建立连接过程中生成临时会话秘钥,保证信息传输的安全性,会话发起方是知道对方的IP和公钥,涉及到公钥加密和私钥解密。 发起方 发起方本地私钥和对方公钥生成一个静态共享私密(token),生成随机数和token做异或生成待签名信息,随机生成的私钥对信息进行签名 对方公钥对随机数,本地公钥,签名进行加密

接收方 对方拿到数据本地私钥进行解密 ,不是自己公钥加密的将无法解密数据 接收方用本地私钥和数据包解密出对方公钥生成同样的token,token和随机数异或生成签名摘要信息,推算出对方的随机公钥,接收方随机私钥和随机公钥生成的token为AES的输入。 * 接收方生成随机数,并用发起方的公钥对随机数和随机公钥进行加密

接收方 * 发起方收到对方数据,用私钥解密出随机公钥跟本地随机私钥生成共享私密token

区块同步
同步的准备条件维护对方peer的节点信息如高度,难度最优链选择
定时同步
高度差达到一定范围 (初始化参数耗时)同步数据和消息下载完整区块还是头体分离 头体分离方便轻节点扩展
批量区块请求 起始高度,请求数量 hash是否匹配寻找闲置peer,计算rtt往返时延全同步和快速同步 下载完全区块本地执行和下载receipt状态信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值