が開発したとされる、あらゆる問題が解ける仮想的な万能マシン
のことですが、それと同等の計算能力を持つ計算モデルのことを
「チューリング完全」というのです。重要なことは、ここでいう
「計算モデル」とはプログラミング言語を指すということです。
ソラミツの宮沢和正氏は、「ハイパーレッジャーいろは」につ
いて、「あえて『チューリング完全』を選択せず、信頼できるA
PIのみを経由して動作させる」といっていますが、これは何を
意味しているのでしょうか。
つまり、宮沢氏は、「ハイパーレッジャーいろは」は、チュー
リング完全な言語ではなく、チューリング不完全な言語であると
いうのです。チューリング不完全な言語とは、ある特定の目的に
対して専門化されている言語のことです。
表計算ソフト「エクセル」を例をとって考えてみます。エクセ
ルは、あらゆる計算に対応できる万能なプログラムです。さらに
VBAというアプリケーションの拡張機能を使うと、計算エンジ
ンと組み合わせて、ほとんどの計算が可能になり、自動化も実現
できるのです。つまり、エクセルは「チューリング完全」といえ
ます。VBAはプログラミング言語です。VBAは次の言葉の省
略です。
─────────────────────────────
◎VBA
Visual Basic for Applications
─────────────────────────────
自動化に関連して、ブロックチェーンの「スマートコントラク
ト」について知る必要があります。スマートコントラクトはビッ
トコインの次に時価総額が大きい暗号資産(仮想通貨)「イーサ
リアム」に実装されている機能です。
スマートコントラクトとは、プログラムに基いて自動的に契約
を実行できる技術のことです。スマートコントラクトとは、あら
かじめ契約内容を設定しておき、その条件を満たすと自動で契約
が結ばれます。この技術はブロックチェーンと組み合わさること
で信頼性の高い1対1の取引を実現することが可能になります。
スマートコントラクトは、このブロックチェーンとスマートコ
ントラクトという別々の技術が一つに掛け合わさることで、化学
反応が起きているというようなイメージです。これについては、
添付ファイルを参照してください。
契約というものは、次の4つで構成されており、A〜Cを自動
的に実施することができます。
─────────────────────────────
@契約定義
Aイベント発生
B価値の交換、契約執行
C決済
─────────────────────────────
スマートコントラクトの提唱者は、米国の経済学者にして暗号
研究者のニック・サボ氏です。サボ氏は、スマートコントラクト
を表すものとして、自動販売機を例として上げています。
自動販売機は、「利用者がお金を入れる」「飲みたいジュース
のボタンを押す」、すると、自動販売機からジュースが出てくる
──この流れを「利用者と自動販売機が契約した結果」と考える
と、お金の投入とボタンを押す行為は契約行為であり、この行為
が行われたときのみに自動販売機はサービスを提供します。つま
り、スマートコントラクトは、ある行為に紐付いた結果にいたる
までの契約の自動化をするためのものです。
「イーサリスク」というスマートコントラクトを活用した分散
型保険プラットフォームがあります。イーサリスクでは、保険金
の支払い可否の判定や、支払いの実行を自動で行うことができま
す。保険金の支払いプロセスを自動化しているので、人件費の削
減につながり、ユーザーは割安な手数料でサービスを利用するこ
とができます。しかし、システムづくりには、プログラミングを
する必要があります。
このように、世界の多くのブロックチェーンには、それぞれ特
殊な言語で記述する必要があります。
─────────────────────────────
イーサリアム ・・ Solidity
ハイパーレッジャー・ファブリック ・・ Go
リブラ(ディエム) ・・ Move
─────────────────────────────
これに対して、「ハイパーレッジャーいろは」について、宮沢
和正氏は、次のように述べています。
─────────────────────────────
効率よくプログラミングするには、これらの言語に精通したエ
ンジニアと十分にテストされ、品質やセキュリティに関して問題
のない多種多様のライブラリーが必要になる。こうした特殊な技
能を持ったエンジニアの採用は困難で、給与水準も非常に高い。
これに対して「ハイパーレッジャーいろは」は、パイソンやジ
ャバスクリプトなどの、ほとんどのソフトウェア・エンジニアが
知っているブログラミング言語で開発が可能である。
つまり、ブロックチェーンのプログラミングは、特殊なスキル
を持った少数のエンジニアではなく、一般の多くのエンジニアが
開発・運用・メンテナンスできるようになる。
──宮沢和正著『ソラミツ/世界初の中銀デジタル通貨
「バコン」を実現したスタートアップ』/日経BP
─────────────────────────────
ここまでの検討で、ソラミツ社のブロックチェーン「ハイパー
レッジャーいろは」の使い勝手は、他のブロックチェーンに比べ
て、相当使いやすく、さまざまなシステム要件に合わせて設計で
きることがわかってきています。
──[デジタル社会論/057]
≪画像および関連情報≫
●スマートコントラクト言語にチューリング完全性は本当に
必要か?ーSolidityの課題と代替案
───────────────────────────
誰しもに、お気に入りの靴や、好きな食べ物があるのと同
じように、誰にでもお気に入りのプログラミング言語がある
でしょう。私がこの記事を書いているのは、あなたの好きな
言語を諦めて欲しいからではありません。(どうか、私を信
じてください、私はそんなことを言おうとは夢にも思いませ
ん)。その代わりに、私は、私たちが一緒に旅をして、その
旅が、私たちに考える機会をもたらしてくれることを望みま
す。本稿では、「チューリング完全性」について議論し、ス
マートコントラクト開発におけるその有用性を評価するとと
もに、代替案を検討し、結果として同じ結論に到達できる期
待を持っています。
チューリング完全性についてよくご存知でない方に向けて
とても簡潔な説明をしたいと思います。過去に聞いたことが
あるが、詳細を忘れてしまった方にとっては、記憶を呼び戻
す手助けになると思います。
アラン・チューリングは数学者で「チューリングマシン」
と呼ばれる仮想マシンを発明しました。この仮想マシンは、
無限量のメモリにアクセスし、メモリー内でいつ書き込み、
読み取り、移動すべきかを、決定するプログラムを実行しま
す。また、どのような条件下で終了し、次に何をすべきかに
ついてもプログラムが指示します。これらの条件に合ったプ
ログラムを記述できるプログラミング言語はチューリング完
全言語と呼ばれています。 https://bit.ly/3w00AlJ
───────────────────────────
●図の出典/https://bit.ly/3chrw8D
スマートコントラクト