(※その1からの続きです。)
※私の理解を記しているので、誤りやあまり正しくない説明が含まれている可能性があります。
仮想通貨“ビットコイン”の新規発行メカニズムとその目的
ビットコインでは、下記3つの特性が、相互に支え合うような極めて絶妙な(あるいは巧妙な)関係性を構成していることで、システムが成り立っています。
(b) 仮想通貨“ビットコイン”は、マイニングの勝者への報酬としてのみ新規発行される。
ここで、「マイニング」および「マイニングの勝者」について説明します。前回記事で説明した、ブロックチェーン伸長に必要なハッシュ値に対する入力値探しという演算のことを、「マイニング」と称しています。そして平均10分に1つのノードだけが正答を得られますが、その正答を探し当てたノードのことを「マイニングの勝者」と称しています。なぜ「勝者」なのかというと、実は、正答を探し当ててブロックの伸長を実施できたノードに対して、報酬として、新規ビットコインが発行される仕組みが組み込まれているからです。そしてこれが唯一の新規ビットコイン発行メカニズムです。
Satoshi Nakamoto氏の原論文には、「6. Incentive」という章があり、そこに下記の記述があります。
"The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended."
要は、ビットコイン新規発行メカニズムは、「入力値を探し出したノードには報酬を出すので、みんながんばって正答をみつけてブロックチェーンの保全に勤しんでね」という、ブロック伸長を実施することに対する動機付けメカニズムを兼ねている、というよりも、ビットコイン新規発行メカニズムとブロック伸長に対する動機付けメカニズムは一体的なのです。
何故このような仕組みを組み込んでいるのでしょうか。
ビットコイン、即ちブロックチェーンによる取引の正当性保証は、
・ネットワーク全体が稼働し続けること
・大半の参加者は一般に良心的であろうということ
を前提に、確率的に達成しています。確率が十分な確かさとなる為には、ネットワークがライブに動き続けていることが決定的な条件となっています。つまり、ビットコイン・ネットワークは、より多くの参加者が、絶え間なくマイニングし続ける(=ブロックチェーンが伸長され続ける)必要があるのです。
ビットコインのネットワークが生き続けるためには、ネットワークがクラッキングに対して安全であるためには、マイニングされ続け、ブロックチェーンは伸長され続けられなければならないのです。ブロックチェーンが伸長され続けるためには、善意のネットワーク参加者が、相当なCPUパワー、つまるところ電気代を費やしながら、 入力値探しをし続けてくれる必要があります。そこで、ネットワーク参加者が電気代を費やすような動機付けを行った、訳です。
ここで最後3点目の特性を示します。
スマート・コントラクト
ビットコインは決済のシステム、通貨の取引システムとして構築されています。ところが、ブロックチェーンなどの基盤技術自体にとっては、扱う電子データの内容は、実のところどのようなものでも構わず、論理的な記述方式が設計できさえすれば、どのような「取引」であっても、取り扱える(はずな)のです。
ビットコインにおける決済取引は、次のような論理形式を持ちます。
「甲は乙へコインをn単位引き渡す」
これを、次のような感じに一般化します。
「甲は乙へXをn単位引き渡す」
任意の対象物クラスXを扱えるようにします。これにさらに、例えば次のような感じに論理演算を導入します。
「甲から乙へのXのn単位の引き渡しが成立しているならば、乙は甲へYをm単位引き渡す」
XやYが電子的なものであれば、ビットコイン同様、その執行がされたか否かは、完全に検証可能です。XやYが物理的なものの場合はIoTとの連携が想定されます。
スマート・コントラクトの考え方自体(※主に(a)や(b)について)は'90年代より議論されていたようですが、ここにきて、ビットコインが提供する“全く新しい取引環境の実現”というビジョンと、ブロックチェーンという契約・取引データの保全と共有に関する実証済みソリューションに触発され、スマート・コントラクトを実用に供しようという動きも改めて活性化してきた様子です。
Ethereum
ブロックチェーン技術を前提とした“ポスト・ビットコイン”プロジェクトが次々立ち上がっています。その中で、「スマート・コントラクト」をスコープにしている最も野心的なプロジェクトがEthereumである、という位置付けです。どういった点で最も野心的とされるのかというと、ビットコインが「P2P決済システム」ならば、Ethereumは「P2P汎用スマート・コントラクト運用システム」です。ポイントは“汎用”、チューリング完全なプログラミング言語を備えて、取引あるいは契約を扱うどのようなシステムをも構築可能、とされています。Ethereumプロジェクトの白書より引用します。
"What Ethereum intends to provide is a blockchain with a built-in fully fledged Turing-complete programming language that can be used to create "contracts" that can be used to encode arbitrary state transition functions, allowing users to create any of the systems described above, as well as many others that we have not yet imagined, simply by writing up the logic in a few lines of code."
意訳してまとめると、
・それにより、数行のロジックで様々なP2P取引システムを構築することができる
"Ether"とは、かつて宇宙に遍く存在する光の媒質(媒体)として仮定された「エーテル」です。(※そいえば「Ethernet」も"Ether-"ですね。)日本語表記は「イーサリアム」とするのが多そうです。
※ネィティブの発音は次の動画を参考に。。
Ethereumもオープンソースプロジェクトです。コアはC++、Go、Python版の実装があるようです。Ethereumが備える「チューリング完全なプログラミング言語」とは、JavaScriptなようです。
※ちょっとリポジトリーのガイドが必要ですね。。
※このWikiから始めるのがよさそうです。
参考文献
◆以上