- ETH-概述
- mining puzzle对内存要求提升,限制ASIC芯片使用,用用权益证明代替工作量证明挖出区块链,达到去中心化货币fiat currency
- smart contract增加对(去中心化)智能合约decentralized contract的支持
- ETH-账户
- account-based ledger 基于账户的管理,显示每个账户上的余额,很大程度解决double spending attack
比特币是进行一次交易换一个账户,自己也难以知道账户余额,比特币面对主要挑战:double spending attack
- replay attack收钱方想重复收钱,进行交易重放,为防范加入计数器,计数总共进行过多少个交易,防止交易重放
- externally owned account 外部账户
- smart contract account
- 不能主动发起交易,只能外部账户发起交易,合约账户发送message调用另一个合约
- ETC-状态树
- 账户地址到状态的映射addr->state 地址表示成40位十六进制数
- 所有以太坊账户一起构成Merkle tree,可证明账户余额和维护全节点之间的一致性
BTC里每个区块的交易构成merkle tree 是一定的,新区块发布有一个新的merkle tree - sorted merkle tree不规定账户顺序 merkle tree不唯一=
- MPT merkle patricia tree
- 所有账户形成merkle tree,然后patricia压缩路径,普通指针转换成哈希指针,计算根哈希值储存header里
- 以太坊header中三个根哈希值,交易树,状态树,收据树
- 证明未被篡改,账户余额,证明某个已经发生交易的账户不存在于MPT里
- Modified MPT以太坊采用
- 大MPT包含小MPT,每一个账户是一个小MPT,新增交易即新建分支
- 保留历史状态以支持roll back(以太坊中有智能合约,编程能力较强,难以推算原来状态
- (key,value) 实现RLP:recursive length profix
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!