美文网首页
第十二课-比特币UTXO模型VS以太坊|《树哥解读以太坊》笔记

第十二课-比特币UTXO模型VS以太坊|《树哥解读以太坊》笔记

作者: 吉祥在成长 | 来源:发表于2019-02-14 21:13 被阅读22次

新生大学2018年10月份推出了区块链技术系列课程之《树哥解读以太坊》,由树哥主讲。本简书文集记录我的学习笔记。


一、比特币UTXO模型

比特币钱包里其实没有比特币,有的只是UTXO,这些UTXO由私钥控制,钱包管理着这些私钥。

UTXO:unspent transaction output , 未花费的交易输出。

每一笔交易都需要有输入和输出,创币交易除外(区块里的第一个交易,给矿工的奖励,只有输出,当然为12.5BTC)。每一个交易的输入都是之前某个交易的输出,依次往前回溯,都能回到创币交易,由此形成一个交易链条。

目的:记录交易,实现转账功能。(以太坊的目的:成为智能合约开发平台)

比特币交易系统特点:1、逻辑状态简单,降低区块链和节点压力;2、能解决“双花”问题;3、高效,能实现交易的并发处理。

UTXO:1、状态简单,只有已花费、未花费两种状态;2、一笔交易输出就是另一笔交易的输入,不会多也不会少;3、可以轻松实现一对多,多对一、多对多,可以并发处理。

二、以太坊余额模型

以太坊追求的不只是转账功能,还希望提供满足需求的开发环境。

以太坊提出了余额的模型,它解决了UTXO的不足。UTXO有以下不足:1、状态少、没有办法支撑需要复杂状态的应用;2、容易有大量细碎金额的UTXO;3、没有管理智能合约的功能。

以太坊账户有两类:外部账户(主账户)和代码账户(附属账户)。外部账户管理资产状态,代码账户管理代码状态。

这两类账户都有四个参数:余额、序号、账户内容哈希值、代码哈希值。

余额:与银行余额一样,表示账户有多少资产。
序号:在外部账户中代表每笔交易只能处理一次;代码账户中代表代码执行的次数。
账户内容哈希值:防止篡改的数字指纹。
代码哈希值:代码的数字指纹,唯一识别出一段代码。

以太坊的数据状态:一种是永久状态数据,如已经确认的交易,这些是放入到区块链中的。另一种是临时状态数据,它们经常变化,如余额等,这些不放在区块链中,而是以二叉树的形式放在节点中。而以太坊账户状态的二叉树树根的数字指纹存储在区块链上。

比特币中的二叉树叫默克尔树,以太坊中的叫做默克尔帕特里夏树(MPT),它不只有快速变位和防篡改的功能,还有添加,修改等功能。

小结:
1、比特币的区块链只存储着一笔一笔交易,每一笔的交易输入是上一笔交易的输出,每一笔的交易输出又会成为下一笔的交易输入。在比特币的每个节点中,都会存储着全网UTXO索引集,这样便于快速定位所有的UTXO。
2、以太坊的账户体系存储着账户余额和代码余额的状态,每个账户都相互独立,通过消息来互相通信。账户的状态信息通过MPT树的方式存储在节点,而这个MPT树根哈希值保留在区块链之上。


|
|
|
|
|
|
|
|
|
|
|

课程大纲

吉祥
2019年02月14日21:15:46

相关文章

网友评论

      本文标题:第十二课-比特币UTXO模型VS以太坊|《树哥解读以太坊》笔记

      本文链接:https://www.haomeiwen.com/subject/koyyeqtx.html