Sent a tip 66b7hfspd
BitcoinがUTXOを採用した理由?
UTXOモデルは主に"スマコン"ではない通貨用途を目的としたブロックチェーンに採用されることが多いです。スマコンの場合はアカウントベースと呼ばれる、残高およびデータが直接アカウントと結びつくデータ形式を取ることが多いです。しかし、そのアカウントベースの方がなんとなく実装しやすそうではないですか?なぜBitcoinはその直接的な実装ではなく、UTXOモデルを考案・採用したのでしょう?UTXOには様々な利点があります。堅牢で個別的な検証可能性、mem pool内の他のtxの実行に影響されてtxの再計算をする必要がない、アカウントとの所有権の紐付けがないのでプライバシーが高い。とりわけアドレスのリユースをしなければプライバシーが高くなるのは間違いないです。以前はここら辺がUTXO採用の理由かなと考えていました。しかしビットコインのオペコードの廃止と導入の仕様を思い出すと、新しい仮説を考えることができます。つまり、もう一つ考えられる仮説は、ソフトフォークによるアップデート可能性を維持するためではないかということです。ソフトフォークでは以前のバージョンで回しているノードがアップデートをしなくてもそのまま回し続けてプロトコルに従うことができ、ノードにアップデートを強制しなくてもフォークが起きません。多くのチェーンでは機能追加改良をする時にハードフォークを辞さないケースが多いですが、Bitcoinでは初期から伝統的にソフトフォークによるアップデートで後方互換性を維持しています。多くの場合でそれは条件をきつくするのがソフトフォーク、ゆるくするのがハードフォークです。この説明が少しミスリーディングになるケースが限定的ですが少々あります。なぜBitcoinに新しい署名など新しい機能を入れてもノードがチェーンを検証できるとされているのでしょうか?実際には古いバージョンのノードは新しい機能のオペコード実行を検証せずにスキップしています。つまり、特定のオペコード実行されたUTXOが検証されていません。新しい仕様のオペコード実行は、まだ使われていないオペコード番号を利用するか、入っているけど誰にも使われていないオペコードが廃止されたのちそれを使うことができたります。そして、昔のバージョンのノードはオペコードをnopとしてスキップするため、新仕様のオペコードを実行したUTXOの所有権について追う必要がないのです。これはアカウントベースでは格段に難しく、UTXOがより向いていると言えるでしょう。サトシ(か昔のcore dev)はソフトフォークを維持し、開発への権力集中を避けながら、機能追加をするためにUTXOを考案した?考えすぎでしょうか?しかし、もしそうだとしたら、異様に考え抜かれた設計です。

Purchased this article 66b7hfspd
Sent a tip enqtinf5e
Purchased this article enqtinf5e
Purchased this article qi2oih3db
Purchased this article gxb6yk7ce
Purchased this article ha7lqanq9
Purchased this article 75rcqgjvj
Purchased this article d8olhqpey
Purchased this article 6l1l2cemi
Purchased this article xcwdd7l3q
Purchased this article cd51suwka
Purchased this article x467ilh0g
Sent a tip yzd0whhbr
Purchased this article yzd0whhbr
Purchased this article 3e9zl7fg2
Sent a tip 8edru3da6
Purchased this article 8edru3da6