UTXO VS CONTA MODEL
1 responda
- votos
-
- 2019-02-01
Primeiramente,utxose contasnão são diferentes. Vocêpode olharpara opar
(account, counter)
como quaseequivalente a um utxo.Aprincipal razãotem a ver com acesso concomitante a contratosinteligentes. Namaioria dos casos,duastransaçõespara omesmo contratointeligenteirão comutar (ou quase comutar)e,portanto,os remetentesnãoprecisam saber quais outrastransaçõesestão afetandoeste contratoespecíficonomesmobloco.
Porexemplo,imagine um contrato vendendobilhetes de avião. Até que o aviãoesteja cheio,astransaçõesparaesse contrato se deslocarão. Minha compra de umbilhete de aviãoe sua compra de umbilhete de aviãopode acontecer aomesmotempo.
Setentarmosestender omodelo UTXOpara contratosinteligentes,assim queeu comprarmeubilhete de avião,o contrato seria destruído,e um contrato similar que vendia umpouco deingresso seria recriado com uma alça diferente. Nósnão seríamos capazes de acessaresse contratonomesmobloco.
Seesse comportamentofor desejado,elepode seremuladopor um sistema de contratointeligentebaseadoem conta. Porexemplo,um contratopodeexigir quetodatransação sejanecessáriopassar um hash de seu armazenamento atual. Entretanto,o contrárionão é verdade.
Portanto,o sistemabaseadoem conta émaisexpressivo.
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.
-
Muito obrigado émuito claro!Eu lembro que vocêtambémestavafalando sobre oflipside disso quando setrata degerenciamento demempool Eu acredito onde a UTxofacilita que ummineiroescolha qualquer subconjunto de TXparaincluirporque oestadofinal da cadeia éindiferente à ordem desses UTXO sendo aplicadaConsiderando que,nummodelo de conta,a ordem do TX que aceita um contratopode afetar o seuestadofinal.Maseuesqueci que restrição crianaprópriagerência demempool.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
-
Eujápercebi que realmenteimporta é que vocêmantenha UTXO comopropriedadespara opagamento datransação * Taxas *.Se vocêfizerisso,obtémtodos osbenefícios da Gerenciamento de Mempoole da Quasei-Commutatividade das Operações.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.Eugostaria deentender sua última observaçãomelhor.Vale umapergunta separada?tx. I would like to understand your last remark better. Worth a separate question ?
- 1
- 2019-02-01
- Ezy
-
Felizpor responder a umapergunta separada,desde que seja claramente declarada :)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-it-mempool :)https://tezos.stackexchange.com/questions/156/how-does-tezos-manage-its-mempool :)
- 1
- 2019-02-01
- Ezy
Quais são os driversportrás da decisão de adotar ummodelo de conta (em oposição a um UTXO)para descrevertransaçõesem Tezos?