UTXO 대 계정 모델
1 대답
- 투표
-
- 2019-02-01
먼저,utxos와 계정은 그다지 다르지 않습니다.
(account, counter)
쌍을 utxo와 거의 동일하게 볼 수 있습니다.주된 이유는 스마트 계약에 대한 동시 액세스와 관련이 있습니다. 대부분의 경우 동일한 스마트 계약에 대한 두 개의 거래가 출퇴근 (또는 거의 출퇴근)하므로 발신자는 동일한 블록에서이 특정 계약에 영향을 미치는 다른 거래를 알 필요가 없습니다.
예를 들어,비행기 표를 판매하는 계약을 상상해보십시오. 비행기가 꽉 찰 때까지 해당 계약에 대한 거래가 통근됩니다. 내가 비행기 표를 구매하는 것과 비행기 표를 구매하는 것은 동시에 이루어질 수 있습니다.
우리가 UTXO 모델을 스마트 계약으로 확장하려고 시도하면 비행기 표를 구입하자마자 계약이 어떤 의미에서 파기되고 한 장 더 적은 티켓을 판매하는 유사한 계약이 다른 핸들로 다시 생성됩니다. 우리는 둘 다 동일한 블록에서 해당 계약에 액세스 할 수 없습니다.
원하는 경우 계정 기반 스마트 계약 시스템에서이를 에뮬레이션 할 수 있습니다 . 예를 들어,계약은 모든 트랜잭션이 현재 저장소의 해시를 전달해야한다고 요구할 수 있습니다. 그러나 그 반대는 사실이 아닙니다.
따라서 계정 기반 시스템이 더 표현력이 뛰어납니다.
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가 아닌 계정 모델을 채택하기로 결정한 이유는 무엇입니까?