其他
观点 | 账户,严格访问列表和 UTXO
感谢 Mustafa Al-Bassam (musalbas)、James Prestwich (prestwich) 和 Sam Wilson (SamWilsn) 的审阅。
HackMD 镜像在此:https://hackmd.io/KOJdKANHSvaGC_8IugEAJA 20
时至今日,有关 UTXO 模式的局限性,仍有许多误解广为流传;人们声称,UTXO 是不可能实现以太坊那样的智能合约的(或者即使能也非常难)。我们在此提供出一种基于 UTXO 的执行模式,可以支持所有的以太坊智能合约功能模块(取决于虚拟机的规范)。这些想法都不是全新的,只不过都散落在各种在线聊天里。对于尚不熟悉这种模型的人来说,这篇文章可以作为介绍和讨论这个模型的资源汇总。
背景
前置读物
Bitcoin: A Peer-to-Peer Electronic Cash System, Nakamoto (Ethereum Design Rationale) Accounts and not UTXOs, Buterin(中文译本) (Bitcoin Stack Exchange) UTXO model vs. account/balance model, Wuille The Stateless Client Concept, Buterin(中文译本) EIP-648: Easy parallelizability 25, Buterin Practical parallel transaction validation without state lookups using Merkle accumulators, Adler Intro to CKB Script Programming 1: Validation Model, Xiao
State Provider Models in Ethereum 2.0 , Dietrichs et al.(中文译本) Automated Detection of Dynamic State Access in Solidity, Wilson The “Direct Push” model can’t handle stale witnesses, Cloutier Optimizing sparse Merkle trees, Buterin Fraud and Data Availability Proofs: Maximising Light Client Security and Scaling Blockchains with Dishonest Majorities 33, Al-Bassam et al. Zexe: Enabling Decentralized Private Computation 4, Bowe et al.
在 UTXO 模式中实现以太坊式的执行
数据模式
Coin 的数量 使用脚本的哈希值(定义了该 UTXO 的所有者)或者所有者
Coin 的数量 合约 ID 合约代码哈希值 存储根
onlyOwner()
方法。因此,合约 UTXO 是 任何人都可以花费的。执行模式
状态元素可以定义自身的修改规则。这个区别是众所周知的,只不过被不精确地表达为以太坊可以上传持久的代码,但这只是一个手段,而非目的。 用户可以与合约交互。这就意味着以太坊式的合约没有固有的所有权概念。 合约可以与其它合约交互。
交易格式
输入:一些唯一标识符,表明要消耗哪些 UTXO,并提供不可变形(non-malleable)的数据来解锁 coin 或者与合约交互。 输出:定义创建哪些 UTXO。 Gas Price 和 Gas Limit。 Witness:额外的元数据,包括赋予交易合法性的数字签名以及无状态的默克尔树分支。
最后一件事
UTXO 对比账户模式的好处
交易指定了自己会触及哪个合约,因此不相关的交易就可以并行执行(连生产区块的节点都可以)。这个在账户数据模式下使用 “严格访问列表” 也可以实现。 UTXO 数据模式下的交易显式地说明了其状态转换。因此,在非区块生产者这边,交易可以并行地验证,即使它们读取或者写入了同一个合约。在本文提出的方案中,生产区块的节点仍然需要用重叠的访问列表,按顺序地执行交易。 UTXO 数据模式的 nonce(交易流水号)以 outpoint 的形式呈现,所以无需显式地跟踪零余额地址的 nonce,但当前的账户数据模式就需要。
直觉
结论
(完)
(文内有许多超链接,可点击左下 ”阅读原文“ 从 EthFans 网站上获取)
原文链接:
https://forum.celestia.org/t/accounts-strict-access-lists-and-utxos/37
作者: John Adler
你可能还喜欢: