Cover photo

区块链应试笔记 第四 UTXO与以太坊account

一、UTXO

比特币的单位是一聪(Satoshi),为10的8次方,UTXO必须为它的整数倍

coinbase交易为挖矿交易,它没有输入

比特币有两种节点:全节点和轻节点

在点对点的网络中,节点的角色既是交易者,也是消费者

1.定义

UTXO(Unspentransaction outputs)未花费交易输出

2.交易过程

每次交易,完全消耗之前交易生成的UTXO,生成新的UTXO;

在交易前后,UTXO的数量可能增多可能减少;

UTXO是无法被分割的,只能够被消耗;

可以通过UTXO一直向前追溯,直到挖矿(coinbase交易)

UTXO的账户余额=所有属于该地址的未花费UTXO集合

3.UTXO结构

交易输入包含:UTXO的来源+解锁脚本

交易输出包含:UTXO的币值+锁定脚本

交易包含:交易输入+交易输出+哈希(数字签名)

4.UTXO的优点

匿名性

UTXO是独立的数据结构,利于并行处理,交易本身是无状态的

交易易于验证无法被重放

5.UTXO缺点

可编程性差,无法实现复杂的逻辑

当输入Input较多时,见证脚本也会增多,消耗CPU和存储空间

二、以太坊的Account模型

链的状态在区块中以StateRoot和 ReceiptRoot等形式进行共识

账户分为外部账户(EOA)和合约账户

1.优点

账户自身拥有状态,更利于编程

批量交易的成本较低

2.缺点

账户的状态与交易没有依赖性,需要解决重放问题

Account模型的重放问题,ETH引入 nounce来解决,每笔交易对应一个 nounce,随着交易依次递增

ETH用户发送多笔交易,如果第一笔交易打包失败,将引起后续多笔交易都打包不成功

三、两者比较

1.Bitcoin本身的交易多为P2SH,且Witness Script是非图灵完备的,不存在循环语句,计算简单

ETH则为图灵完备,计算复杂

2.UTXO中,只能在交易中保存状态

ETH中,状态保存在节点中

3.UTXO计算在链外

ETH计算多在链上

习题

1.比特币交易中,任何一笔交易的交易输入总量与交易输出总量的关系是?

A 等于

B 大于

C 小于

D 无关

2.“双花”指的是在数字货币系统中由于数据的(),使得系统可能存在同一笔数字资产因不当操作而被重复使用的情况

A 多样性

B 可复制性

C 差异性

D 随机性

3.Bitcoin本身的交易多为P2SH,且Witness Script是(),不存在循环语句

A 非图灵完备的

B 图灵完备的

C 跳转脚本

D 单循环脚本

4.Account模型每一笔交易都只需要(),交易的输入和输出都是地址,能够节省存储空间

A 一个私钥

B 一个公钥

C 一个签名

D 一个网址

5.在Ethereum中,用户发送多笔交易如果第一笔交易打包失败,将引起()

A 没有影响

B 后续多笔交易都打包不成功

C 后续一笔交易打包不成功

D 系统崩溃

6.UTXO模型中,只能在()保存状态

A 交易中

B 交易前

C 交易后

D 节点

7.Account模型的状态是在()保存

A 交易中

B 交易前

C 交易后

D 节点

8.UTXO是()的,只能被消耗掉

A 不能减少

B 不能增加

C 不能生成

D 不能分割

9.每笔交易的输入和输出都是有关系的,可以通过()不停往前追溯,直到挖矿

A Account

B UTXO

C HASH

D SIGNATURE

参考:

https://wiki.mbalib.com/wiki/%E5%8F%8C%E8%8A%B1%E9%97%AE%E9%A2%98

https://codeantenna.com/a/HOxalU76mm

https://zhuanlan.zhihu.com/p/57272282