比特币的单位是一聪(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和存储空间
链的状态在区块中以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

