UTXOとアカウントモデル
1 回答
- 投票
-
- 2019-02-01
まず、utxosとアカウントはそれほど違いはありません.
(account, counter)
のペアはutxoとほぼ同等であると見なすことができます.主な理由は、スマートコントラクトへの同時アクセスに関係しています.ほとんどの場合、同じスマートコントラクトへの2つのトランザクションは通勤します(またはほとんど通勤します).したがって、送信者は、同じブロック内のこの特定のコントラクトに影響を与えている他のトランザクションを知る必要はありません.
たとえば、飛行機のチケットを販売する契約を想像してみてください.飛行機がいっぱいになるまで、その契約へのトランザクションは通勤します.飛行機のチケットの購入と飛行機のチケットの購入は同時に発生する可能性があります.
UTXOモデルをスマートコントラクトに拡張しようとすると、飛行機のチケットを購入するとすぐに契約が破棄され、チケットを1枚少なく販売する同様の契約が別のハンドルで再作成されます.両方が同じブロック内でその契約にアクセスすることはできません.
この動作が必要な場合は、アカウントベースのスマートコントラクトシステムでエミュレートできます. たとえば、コントラクトでは、コントラクトへのすべてのトランザクションで現在のストレージのハッシュを渡す必要がある場合があります.ただし、その逆は当てはまりません.
したがって、アカウントベースのシステムはより表現力豊かです.
First off, utxos and accounts aren't that different. You can look at the pair
(account, counter)
as almost equivalent to a utxo.The main reason has to do with concurrent access to smart contracts. In most cases, two transactions to the same smart-contract will commute (or almost commute) and therefore the senders do not need to know what other transactions are affecting this particular contract in the same block.
For instance, imagine a contract selling plane tickets. Until the plane is full, transactions to that contract will commute. My buying a plane ticket and your buying a plane ticket can happen at the same time.
If we try and extend the UTXO model to smart-contracts, as soon as I buy my plane ticket, the contract would in a sense be destroyed, and a similar contract selling one fewer ticket would be recreated with a different handle. We would not both be able to access that contract in the same block.
If this behavior is desired, it can be emulated by an account based smart-contract system. For instance, a contract could require that every transaction to it must pass a hash of its current storage. However, the reverse is not true.
Therefore, the account based system is more expressive.
-
どうもありがとう、それは非常に明確です!mempool管理に関しては、これの裏返しについても話していたことを覚えています.最終的なチェーン状態は、適用されるUTXOの順序とは無関係であるため、UTXOを使用すると、マイナーがtxのサブセットを選択しやすくなると思います.一方、アカウントモデルでは、契約を結ぶtxの順序が最終状態に影響を与える可能性があります.しかし、mempool管理自体にどのような制約が生じるかを忘れました.Thanks a lot it is very clear! I remember you were also talking about the flipside of this when it comes to mempool management i believe where UTXO make it easier for a miner to choose any subset of tx to include because the final chain state is indifferent to the order of those UTXO being applied whereas in an account model the order of tx hitting a contract may impact its final state. But i forgot what constraint it creates on the mempool management itself.
- 1
- 2019-02-01
- Ezy
-
それ以来、本当に重要なのは、トランザクション*料金*の支払いのためにutxoのようなプロパティを保持することであることに気づきました.そうすれば、mempool管理と操作の準可換性のすべての利点を得ることができます.I have since realized that really matters is that you keep utxo like properties for the payment of transaction *fees*. If you do that, you get all the benefits of mempool management and quasi-commutativity of operations.
- 2
- 2019-02-01
- Arthur B
-
tx.最後の発言をもっとよく理解したいと思います.別の質問に値する?tx. I would like to understand your last remark better. Worth a separate question ?
- 1
- 2019-02-01
- Ezy
-
明確に述べられている限り、別の質問に喜んでお答えします:)Happy to answer a separate question, so long as it's clearly stated :)
- 2
- 2019-02-01
- Arthur B
-
https://tezos.stackexchange.com/questions/156/how-does-tezos-manage-its-mempool :)https://tezos.stackexchange.com/questions/156/how-does-tezos-manage-its-mempool :)
- 1
- 2019-02-01
- Ezy
Tezosでのトランザクションを説明するために(utxoモデルではなく)アカウントモデルを採用する決定の背後にある要因は何ですか?