katakoto

katakoto

@katakoto

『俺が、そしてここへ来て、全てをBitcoinに捧げた奴等が望んだのは、俺たちがサトシを愛したように、サトシも俺たちを愛してほしい、それが俺たちの望む事だ!』ランボーのコスプレで₿を乱射しながら崖からダイブ!

BitcoinがUTXOを採用した理由

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

このクリエイターの人気記事

アンドレアス・M・アントノプロス講演動画“次なるビットコインは何か?”全訳

5360

親愛なる家族、親愛なる友人たちへ

1218

『ザ・インターネット・オブ・マネー』第1章 What is Bitcoin? 日本語訳

919

アーカイブ

2024-11
2記事
2024-10
1記事
2024-09
2記事
2024-08
1記事
2024-04
3記事
2024-03
1記事
2023-08
2記事
2023-06
1記事
2022-11
2記事
2022-09
1記事
2022-07
1記事
2022-04
1記事
2022-01
1記事
2021-12
1記事
2021-10
1記事
2021-08
2記事
2021-07
1記事
2021-06
1記事
2021-05
1記事
2021-03
2記事
2020-12
2記事
2020-11
2記事
2020-08
3記事
2020-07
4記事
2020-06
6記事
2020-05
3記事
2020-04
5記事
2020-03
3記事
2020-02
4記事
2020-01
8記事
2019-12
9記事
2019-11
2記事