- ETH-概述
- mining puzzle对内存要求提升,限制ASIC芯片使用,用用权益证明代替工作量证明挖出区块链,达到去中心化货币fiat currency
- smart contract增加对(去中心化)智能合约decentralized contract的支持
- 用去中心化合约代替司法机构
- 最小单位一wei
- ETH-账户
- account-based ledger 基于账户的管理,显示每个账户上的余额,很大程度解决double spending attack
比特币是进行一次交易换一个账户,自己也难以知道账户余额,比特币面对主要挑战:double spending attack
- replay attack收钱方想重复收钱,进行交易重放,为防范加入计数器,计数总共进行过多少个交易,防止交易重放
- externally owned account 外部账户
- balance
- nonce
- smart contract account
- balance
- nonce
- 不能主动发起交易,只能外部账户发起交易,合约账户发送message调用另一个合约
- code
- storage
- 创建时返回地址,可根据地址进行调用
- 防止身份变更给交易带来的不便
- account-based ledger 基于账户的管理,显示每个账户上的余额,很大程度解决double spending attack
- ETC-状态树
- 账户地址到状态的映射addr->state 地址表示成40位十六进制数
- 所有以太坊账户一起构成Merkle tree,可证明账户余额和维护全节点之间的一致性
BTC里每个区块的交易构成merkle tree 是一定的,新区块发布有一个新的merkle tree- 查找慢
- sorted merkle tree不规定账户顺序 merkle tree不唯一=
- tric结构,查找效率取决于P长
- 优点:
- 不存在哈希碰撞
- 输入顺序不同但最终结构相同
- 更新的局部性
- 二分法查找
- 缺点:
- 存储浪费
- 优点:
- patricia tree 可路径压缩
- 访问内存次数减少,效率提高
- 新插入单词后原来压缩路径可能需要展开
- 键值分布稀疏,压缩效果好
- MPT merkle patricia tree
- 所有账户形成merkle tree,然后patricia压缩路径,普通指针转换成哈希指针,计算根哈希值储存header里
- 以太坊header中三个根哈希值,交易树,状态树,收据树
- 证明未被篡改,账户余额,证明某个已经发生交易的账户不存在于MPT里
- Modified MPT以太坊采用
- 原来状态保留,新建分支
- 大MPT包含小MPT,每一个账户是一个小MPT,新增交易即新建分支
- 保留历史状态以支持roll back(以太坊中有智能合约,编程能力较强,难以推算原来状态
- (key,value) 实现RLP:recursive length profix
- 极简主义产生序列化
- nested array of bytes
- 所有以太坊账户一起构成Merkle tree,可证明账户余额和维护全节点之间的一致性
- 账户地址到状态的映射addr->state 地址表示成40位十六进制数
以太坊(北大肖臻老师公开课笔记
最新推荐文章于 2022-08-22 07:22:09 发布