UTXO vs modello di account
1 risposta
- voti
-
- 2019-02-01
Prima ditutto,utxose accountnon sonopoi così diversi. Puoi considerare la coppia
(account, counter)
quasiequivalente a un utxo.Ilmotivoprincipale ha a chefare con l'accesso simultaneo a contrattiintelligenti. Nellamaggiorparte dei casi,duetransazioniper lo stesso smart-contract andrannoin pendenza (o quasi)e quindii mittentinon hannobisogno di sapere quali altretransazioni stannoinfluenzando questoparticolare contrattonello stessoblocco.
Adesempio,immagina un contratto di vendita dibiglietti aerei. Fino a quando l'aereonon èpieno,letransazioniper quel contratto andranno al lavoro. Ilmio acquisto di unbiglietto aereoe iltuo acquisto di unbiglietto aereopossono avvenire contemporaneamente.
Seproviamo adestendereilmodello UTXO ai contrattiintelligenti,non appena acquistoilmiobiglietto aereo,il contratto verrebbein un certo senso distruttoe un contratto simile che vende unbigliettoin meno verrebbe ricreato con un handle diverso. Non saremmoentrambiin grado di accedere a quel contrattonello stessoblocco.
Se si desidera questo comportamento,può essereemulato da un sistema di contrattiintelligentibasato su account. Adesempio,un contrattopotrebbe richiedere che ognitransazioneperesso debbapassare un hash della suamemoria corrente. Tuttavia,non è veroil contrario.
Pertanto,il sistemabasato sull'account èpiùespressivo.
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.
-
Graziemille èmolto chiaro!Ricordo che staviparlando anche del rovescio dellamedaglia quando sitratta digestione dimempool,credo che UTXO rendapiùfacileper unminatore scegliere qualsiasi sottoinsieme ditx daincludereperché lo statofinale della catena èindifferente all'ordine di quegli UTXO applicaticonsiderando chein unmodello di account l'ordine di ricezione di un contrattopuòinfluire sul suo statofinale.Ma ho dimenticato quale vincolo crea sulla stessagestione dimempool.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
-
Da allora ho capito che la cosa veramenteimportante èmantenereproprietà simili a utxoperilpagamento delle * commissioni * ditransazione.Se lofai,ottienituttii vantaggi dellagestione dimempoole della quasi-commutatività delle operazioni.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.Vorrei capiremeglio latua ultima osservazione.Merita una domanda aparte?tx. I would like to understand your last remark better. Worth a separate question ?
- 1
- 2019-02-01
- Ezy
-
Felice di rispondere a una domanda separata,purché sia chiaramenteindicato :)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
Quali sonoi fattori allabase della decisione di adottare unmodello di conto (al contrario di uno utxo)per descrivere letransazioniin Tezos?