主页 > imtoken最新下载 > “智慧链(区块链)文档知识库”账户模型

“智慧链(区块链)文档知识库”账户模型

imtoken最新下载 2023-04-18 06:25:37

在当前的区块链世界中,保存记录的方式主要有两种,UTXO模式UnspentTransactionOutput和Account模式。比特币采用UTXO模型,以太坊/EOS采用Account模型区块链怎么查询账户余额,Wisdom Chian也采用Account模型。今天我们将详细介绍为什么Wisdom Chian也采用Account模型。

在详细介绍 UTXO 模型和账户余额模型之前,我们要先介绍一下它们,甚至是所有区块链应用中最重要的概念和数据结构,即 Block。区块链实际上是由一个长度不断增加的链表组成的,链表包含许多记录,即区块。

在上图中的区块链网络中,实线的区块都包含在主链中,而虚线的区块都是孤块,不被主链接受。在每个区块链网络中只能有一条主链,这是最长的有效链,也是当前区块链网络中所有节点达成的共识。

比特币的最初设计是一个点对点的电子现金系统。在比特币的世界里,每一笔交易都会消耗上一笔交易产生的UTXO,然后再产生一个新的UTXO。账户余额其实就是属于这个地址的所有未使用的UTXO。UTXO 的集合。以太坊打算建立一个更通用的协议,支持图灵完备的编程语言。在该协议上,用户可以编写智能合约并创建各种去中心化应用程序。因此,以太坊引入了 Account 模型。

图灵完备意味着你的语言可以做图灵机能做的所有事情,并且可以解决所有可计算的问题,但是图灵完备意味着存在潜在的风险。

UTXO 模型

在 UTXO 模型中,交易只是表示对 UTXO 集的更改。账户和余额的概念是对UTXO集合的更高抽象,账户和余额的概念只存在于钱包中。让我们看一些例子来理解其中的区别。

首先,比特币 UTXO 不能被部分使用。如果用户想要花费 0.5 个比特币,但他的 UTXO 集合中有 1 个比特币,他必须在向自己发送 0.5 个比特币的同时发送 0.5 个比特币给自己其他硬币找零。如果他不发送给自己,那么他将向矿工支付 0.5 个比特币。

其次,比特币本身不存储账户余额。用户只需用他们的私钥签署这些 UTXO 就可以花费比特币。数字钱包使比特币区块链看起来具有用户账户余额等功能。不是这种情况。

可视化钱包在比特币中的工作方式

比特币的 UTXO 系统运行良好区块链怎么查询账户余额,部分原因是数字钱包有助于完成与交易相关的大部分工作。包括但不仅限于:

a) 处理 UTXO

b) 存储密钥

c) 设置交易费用

d) 提供更改地址

e) 汇总 UTXO(显示可用、未决和总余额)

UTXO 模型中的交易类似于纸币。每个账户通过计算钱包中所有纸币(UTXO)的总和(对应钱包地址)来代表它拥有多少资金。当我们想花钱时,我们需要使用一个或多个包含足够费用并可能收到找零的 UTXO(新的 UTXO)。每个 UTXO 只能使用一次,因为一旦使用了 UTXO,它就会从 UTXO 池中移除。

总而言之,我们知道:

比特币区块链不存储账户余额

比特币钱包持有密钥

如果包含在交易中,它将花费整个 UTXO(在某些情况下,更改作为全新的 UTXO 存在)

智慧链

Wisdom Chain 采用与 ETH 相同的 Account 交易结构。与以太坊不同,以太坊中有两种完全不同的数据;永久数据和临时数据。永久数据的一个例子是一笔交易,它在被完全确认后会被记录在transactiontrie中,并且永远不会改变。临时数据的一个例子是特定以太坊账户地址的余额。帐户地址的余额存储在 statetrie 中,并且每当该特定帐户的交易发生更改时都会更改。在以太坊中,永久数据(如挖掘的交易)和临时数据(如账户余额)是分开存储的。以太坊使用 trie 数据结构来管理数据。

智慧链交易发起时,节点会根据当前状态信息和交易内容计算虚拟机中的交易后状态信息,存储在本地,并随交易一起发送状态信息的相关哈希值. 交易被矿工打包入块后,剩余节点将数据保存在 Merkletrees 上,以保证自身节点与网络中其他节点的状态信息一致。

所以智慧链的记录就像银行。与使用 ATM/借记卡类似,银行会跟踪每张借记卡的金额。当我们需要花钱时,银行会检查其记录以确保我们在确认交易之前有足够的余额。

当然,当 Wisdom Chain 使用 Account 交易结构时,Account 交易结构本身的问题是无法回避的。首先,Account模型交易之间不存在依赖关系,需要解决重放攻击(ReplayAttacks)的问题。其次,闪电网络/雷电网络、Plasma等的实现,用户需要更复杂的Proof证明机制,子链到主链的状态迁移需要更复杂的协议。返回搜狐,查看更多