主页 > imtoken苹果手机 > 【区块链】九大以太坊数据结构回顾

【区块链】九大以太坊数据结构回顾

imtoken苹果手机 2023-04-04 06:12:02

以太坊数据结构

1.账户

比特币采用基于交易的账本模型。 优点是:更好的隐私保护; 缺点是:没有显示记录账户余额,交易不方便(必须一次花完)

以太坊是一种基于账户的分类账模型。

优点:显示账户余额

交易更方便

对双花攻击有天然的防御能力(​​不诚实的付款人)

缺点:易受重放攻击(不诚实的收款人)。

1.1 账户分类

为了实现智能合约,以太坊将账户分为:外部账户EOA和合约账户

外部账户:由密钥控制,没有与之关联的代码

合约账户:由智能合约代码控制,有代码与之关联

1.1.1 外部账户

人们通过私钥创建的账户是现实世界金融账户的映射。 任何拥有账户私钥的人都可以控制该账户。 这是人类与以太坊账本进行交流的唯一媒介。

外部账户包括余额(Ether balance)和nonce(用于确定每笔交易只能处理一次的计数器)

特征

1.1.2 合约账户

由外部账户或合约创建,合约在创建时自动分配一个账户地址,用于存放合约代码以及合约部署或执行时产生的存储数据。

合约账户地址通过SHA3哈希算法生成。 只能通过外部账户驱动合约执行合约代码。

合约账户包括代码合约代码的存储和存储账户

特征

对于智能合约来说,签订合约需要稳定的账户模型,所以设计了这样的账户模型。

2. MPT树 2.1 Trie树

前缀树或字典树是一种有序的树状数据结构,其中的键通常是字符串。

与二叉树不同,关键时间由节点在树中的位置决定。 一个节点的所有后代都有相同的前缀,该节点对应的key由根节点到该节点路径上所有节点的key值拼接而成。 根节点对应一个空字符串键。

2.2帕特里夏特里

具有优化空间使用的 Trie。 但是在Patricia Trie中以太坊是多账本还是单账本,如果存在一个只有一个子节点的父节点,那么父节点会和子节点合并,大大加快了查找节点的速度。

2.3 MPT树

结合了字典树和默克尔树的优点

MPT树中的节点类型:

三、新闻与交易

以太坊可以看作是一个基于交易的状态机。 交易代表从一种状态到另一种状态的合法转换。

从全局状态变化的角度来看,以太坊可以看作是一个状态连接,通过交易驱动账户状态的变化。

从具体实现的角度来看以太坊是多账本还是单账本,以太坊可以看作是一条区块链。

从账本的角度来看,以太坊可以看作是一堆交易。

以太坊中有两种类型的交易:创建合约和发送消息

块的顺序由共识算法确定。

4.状态转换函数

应用(S,TX)->S'

S为初始状态,TX为新交易。

交易是外部世界与以太坊内部状态之间的桥梁

5. 以太坊区块

包括区块头和区块体。

区块头比较轻量级,包含一系列值、引用值和哈希值

区块体:比较重量级,包括区块中包含的交易列表和叔块列表

5.1 区块头 5.2 区块体

包括:交易集合和叔块头集合。