myAlteraアカウントへログイン

myAlteraユーザーネーム、パスワードを忘れた場合

myAlteraアカウントをお持ちでない方

ブロックチェーンの解放

そもそも、それはビットコインをハッキング不可能なものにする、もっともらしく聞こえるものの不可解なデータ構造として知られるようになりました。その後、ビットコイン取引所に対する攻撃で大金を失った人もいましたが、事件現場立入禁止テープのサイバースペース版が張られる前にブロックチェーンは復帰しました。ビットコインの失態に対する責任を免れたブロックチェーンは現在、バンキングにおける次なる目玉として研究が進められています。つまり、原油からクレジット・デリバティブまでのあらゆるものを扱う安全な資産取引システムの革新的な創造を担う潜在的基盤としてです。たぶん。

しかし、あの小さな警告について検証しようとする前に、ブロックチェーンは再び姿を変え、今や産業界の一番の味方として、サプライチェーンの管理、ソフトウェア更新の制御、あるいは IoT (モノのインターネット) 向けのセキュアなプログラミング環境の提供にも利用されようとしています。

しかし、ちょっと待ってください。ブロックチェーンとは何でしょうか。なぜこれほど幅広く利用できるのでしょうか。そして関心を持つ必要があるのでしょうか。まさにそこに物語があります。

暗号通貨

まず通貨の話から始めましょう。現金を使用するごく一部の取引はさておき、通貨とはまさに銀行が言うとおりのものです。口座を開設すると、銀行はその口座で行われるすべての取引を記録し、残高の現在価値相当を維持します。すべての取引に銀行が関与するため、顧客は銀行を信用しなければなりませんが、業務を常にチェックできるわけではありません。

しかし、銀行のような考え方はやめて、サイバースペースの自由主義市民、言い換えれば権力に懐疑的で、大衆の知恵を固く信じる平等主義者のように考えてみましょう。実際には銀行など必要ありません。我々が皆、全取引の公開リストを 1 つ保持し、いつでも誰でもリストを調べられるようにし、提案されている取引が有効かどうかを確かめられるようにするだけで、誰もごまかすことはできなくなります。

もちろん、問題もあります。この公開台帳にはプライバシーがありません。また、仮に賢い人間が記録を改ざんする方法を見つけた場合、大惨事を引き起こしかねません。

2008 年秋、中本哲史 (Satoshi Nakamoto) を名乗る人物またはグループが、セキュアハッシュと公開鍵暗号という、パーソナル・コンピューター上で実行可能な一対の数学的方法を組み合わせることで、匿名かつセキュアな公開台帳を実現する方法について述べた論文を発表しました。このかなり当惑するような巧妙なアイデアから生まれたのがビットコインでした。

その論文の中で、ほかの誰かに送金することを望む参加者がほかのすべての参加者に取引をブロードキャストする際に使用するプロトコルが提案されました (図 1)。このブロードキャストにより、送金者が資金を受け取った過去の取引をハッシュした形で特定し、支払う金額を得ます。また、送金者の公開鍵と受取人のハッシュ化された公開鍵のほか、送金者の秘密鍵で暗号署名された取引全体のハッシュを含んでいます。

1. 取引ごとに第三者が資金源と送金者の身元を検証するのに十分な情報を提供する

transaction

これはすべて必要以上に不可解に思われるかもしれませんが、2 つの重要な要件を満たしています。まず、署名を確認して送金者が取引に署名した人物 (あるいは少なくとも正しい秘密鍵にアクセスできた誰か) であることを証明することにより、すべての参加者が取引を検証できることです。送金者の公開鍵をハッシュ化し、それ以前の取引のハッシュ鍵と比較することにより、送金者がその過去の取引において受取人であったことを証明することも可能です。そして、誰も送金者または受取人の実際の身元まで取引をさかのぼることができないことです。

したがって、この公開台帳は検証可能でありながら所有者まで追跡不可能な匿名取引の連結リストとなります。しかし、この取引の連結リストはまだブロックチェーンではありません。論文が指摘しているように問題が残っています。

ネットワークの参加者全員が各取引を検証しているため、取引を秘密裏に偽造することは事実上不可能であるはずです。しかし、悪意のある参加者が同じ資金を 2 回使うことにより、つまり同じコインを使って 2 件の有効に見える取引をブロードキャストすることによって不正を働く可能性があります。これまで説明したプロトコルは、特定の取引が特定の資金源から資金が使われる最初のケースかどうかを検証する手段を備えていないからです。

銀行のような集中型のシステムでは、取引はタイムスタンプされ、通常は先着順で処理されます。しかし、ビットコインの場合、分散しているため、参加者全員が中央権力なしに取引の発生順について合意できるようにするための手段が必要です。そこでブロックチェーンの出番です。

取引はネットワークへのブロードキャストであるため、各公式参加者はそれらを収集し、検証し、ブロックにまとめます (図 2)。ブロックが完全になると、1 人の参加者が最後の仕上げを施し、直近の有効なブロックに結合し、ブロードキャストします。これで、取引の順序を明確に定めたブロックの不変の連結リストが全員の手に渡ります。所有者がまだ使っていないビットコインを使って取引が行われていることを検証したければ、そのコインの連結リストを前の取引までさかのぼるだけです。

 

2. ブロックチェーンは取引のブロックを不変のチェーンに結合したものである

blockchain_links

しかし、まだ問題がいくつか残っています。もし誰かが次のブロックを作成できることを知り、取引を改ざんしてブロックに入れてしまったらどうなるでしょうか。その問題に対する論文の回答は、各ブロックの作成権のランダム抽選を行うというものです。そうすれば、自分が次のブロックを作成できることを事前に知ることは不可能になり、特定の参加者が 2 つのブロックを連続して作成できる可能性は極めて低くなります。前の当選者がブロックを偽造した場合、次の抽選当選者がブロックの検証を試み、問題を発見し、偽造されたブロックに自分のブロックを結合する代わりに、偽造されたブロックを無視します。その結果、前の当選者と次の当選者による 2 つのバージョンのブロックチェーンが発生しますが、その次の抽選当選者は次の当選者のブロックに結合し、前の当選者のブロックを除外します。論文では、最も長いブロックチェーン、つまり最も多くの参加者に検証されたものが常に極めて高い確率で正しいものであることを簡単な数式で証明しています。したがって、複数の参加者が組織的に攻撃を仕掛けたとしても、全体の過半数でない限り、偽造したブロックをチェーンに追加することはできません。

ビットコインが世間の注目を最も集めている点は、皮肉にもハッシュ化され、署名された取引の連結リストやブロックチェーンではなく、抽選の実施方法です。この独創性に富んだ論文の著者は、暗号通貨に関する過去の研究からアイデアを借りることで、立証可能な方法でランダムに当選者を決定する方法を考案しました。新しいブロックをパブリッシュする際、試行錯誤でしか解くことができない数学的問題に参加者全員が取り組むことになっています。具体的に言うと、新しいブロックがブロードキャストされると各参加者が検証します。そのブロックが有効な場合、各参加者は、前のブロックのハッシュに連結されて再びハッシュ化されることで一定数の先行ゼロを含む文字列を生成するランダム文字列 (ノンスと呼ばれます) の探索を開始します。その発見は困難ですが、検証は容易です。有効なノンスを最初に発見した参加者が当選し、新しいブロックを作成することになります。当選者は収集した取引、(新しいブロックをチェーンに結合する) 前のブロックのハッシュ、およびノンスをブロックとしてまとめるため、誰でもその作業結果を検証することができます。

ビットコイン・プロトコルでは、各抽選当選者はその労力に対して新しいビットコインを受け取り、新しいコインが自分のものであることを示す取引をブロックに挿入します。つまり、たとえ不正を働く意図が全くないとしても、抽選に当選することが真の金銭的価値を持つということです。そうなると、金銭欲からたちまち「軍拡競争」に突入し、マイナー (採掘者) と呼ばれるようになる参加者は、いち早くノンスを発見しようとホーム PC から部屋一杯のサーバー、FPGA アクセラレーター、さらには ASIC ベースのスーパーコンピューターへと処理能力の強化を図りました。

その他の用途

ビットコインは多くの人々の想像力をかき立てました。自由貨幣という投機者の夢のようなものに誘惑される人もいれば、銀行が不要になるという自由主義者の期待に魅力を感じる人や、罰せられることなく違法ビジネスを行うことを可能にする匿名性につられる人もいました。しかし、その他の人の関心を集めたのは銀行の排除に関するところでした。紆余曲折にもかかわらず、ビットコインのブロックチェーンは誰も改ざんできない分散型の公開台帳の維持に成功しています (広く報道された攻撃はブロックチェーンに対するものではなく、利用者の秘密鍵と残高を維持管理する独立したサービスである取引所に対するものでした)。その結果、こうしたデータ構造には潜在的な用途が多くあることが判明しました。

関心を示した関係者の多くは皮肉にも銀行でした。それは、銀行が当座預金や普通預金口座をなくしたいからではなく、ビットコインにおける取引の定義に関する表面的な内容のためでした。先ほど、各取引にはほかの誰かが検証するのに必要なすべての情報、つまり公開鍵、ハッシュ、および署名ハッシュが含まれていると述べました。その際は触れませんでしたが、それらの項目はコマンドとともに、取引に埋め込まれたスタック指向の Forth スタイルのスクリプトの形で含まれています。トランザクションを検証したい参加者はスクリプトを実行するだけです。

しかし、このスクリプトは単なる資金移動の検証だけに限定されるわけではなく、実行時点で使用可能な任意のデータを使用する任意に複雑なプログラムでもかまいません。例えば、一連の複雑な条件が満たされた場合にのみ取引を有効にするスクリプトを作成することが可能です。したがって、先物契約のように、株価が特定の価格に達した場合にのみ取引を有効にするスクリプトを作成することも可能です。あるいは、金利リスクをヘッジしたり、国際輸送に保険を掛けたりするなど、二者間で合意されるほぼすべてのことを、はるかに複雑なデリバティブ契約として履行することも可能になります。ここでのキーワードは契約です。ブロックチェーンは金融契約のセキュアで分散型の取引・管理手段になり得ます。これは、事務処理に大金を費やしており、顧客がスピードと完全性に非常な関心を持つ銀行にとって非常に魅力的であるかもしれません。

しかし、その環境は少なくとも 2 つの点でビットコインとは全く異なります。第一に、銀行は、誰でも参加できるというビットコインの精神とは似ても似つかない比較的小規模の閉じた集まりの中で取引を行うことを望みがちです。この集まりの中で、銀行は特定の参加者の優先や、ビットコインの熱狂的な信者に忌み嫌われるであろうブロックチェーンの変更など、何らかの特別の権力を欲するかもしれません。

第二に、金融の世界ではレイテンシーが重要です。富士通研究所社長の佐々木繁氏がブロックチェーン技術に関する最近の富士通セミナーで指摘していたように、ビットコインの世界は毎秒 10 件程度の取引速度で十分うまく機能します。実際、ビットコインの監視者は、マイナーが新しいビットコインを発見する速度を制限するために、ブロックハッシュに必要な先行ゼロの数を調整しています。そのため、チェーン内の数レイヤー下のブロックに達するまで取引は完全に有効とは見なされず、それには数分を要する可能性があります。それに対し、金融トレーダーが考えるレイテンシーはマイクロ秒単位であり、金融取引を支えるサーバー間の回線長を短くするためなら大金を支払うこともいといません。そうした要件から、ビットコインの多項式解決によるプルーフ・オブ・ワーク・アプローチのようなものは除外されます。

そうした問題は、ほかの種類のブロックチェーン環境を構築することへの関心を刺激しています。例えば、アクセスが制御されたブロックチェーン、集中管理によるブロックチェーン、独自のブロックチェーン・プロトコルを開発するためのプラットフォームがあります。一例として、インテルは Sawtooth Lake と呼ばれるオープンソース開発プラットフォームを開発しました (現在 GitHub からベータ版が入手可能)。Sawtooth Lake は、ビットコインとは全く異なり、潜在的にはるかに高速な抽選メカニズムをサポートしています。インテルの開発者が指摘するように、時間だけでなくかなりのエネルギーも必要とする暗号によるプルーフ・オブ・ワーク (仕事量の証明) の代わりに、Sawtooth Lake は経過時間の証明を使用します。これはインテル® CPU 上でセキュアモードで実行されるコード片で、所定の範囲内でランダム時間遅延を生成するほか、その時間遅延ルーチンが実際に保護モードで実行されたことをほかのすべての参加者が検証できるようにするトークンを生成します。

その効果はビットコインの集中的な計算と同じで、各参加者はランダム遅延を受け取りますが、計算は行いません。それにより、エネルギー消費を削減すると同時に、ハードウェア・アクセラレーションを使用して計算を高速化することの優位性を排除します。その結果、ブロックの作成プロセス全体をはるかに高速化することが可能になり、ビットコインのようにコイン発見速度を管理するためにプルーフ・オブ・ワークの問題の難易度を保つ必要性に制約されることがなくなります。レイテンシーは確定的ではありませんが、少なくとも制限されており、多様な金融取引にとって許容可能な状況です。

抽選プロセスの高速化の結果、暗号計算が取引のレイテンシーにおけるクリティカル・パスとなります。計算すべきハッシュがあり、計算すべき秘密鍵署名があり、さらに公開鍵で確認すべきストリングがあります。プロトコル設計者はこれらのステップのいくつかをなくすことができますが、ブロックチェーンのセキュリティーまたは利用者の匿名性を損なうか、いくつかの責任を中央権力に委譲することになります。あるいは、トランザクションのレイテンシーをさらに短縮するために、ハードウェア暗号アクセラレーションが重要になります。これはデータセンター環境では特に問題になりませんが、以下で説明するように、ブロックチェーンへの関心は必ずしもデータセンター内部に限られるわけではありません。

金融を超えて

ここで、ビットコインのことは忘れて、ブロックチェーンとは何かについて、抽象的な形で考えてみましょう。第一に、取引の本質、順序、および有効性を記録できる不変の公開台帳です。第二に、分散型で、多くのノードに対する攻撃または障害がネットワークを麻痺させることがないように実装でき、ビザンチン攻撃でさえもブロックチェーンを破壊することは不可能です。第三に、参加者の身元を保護することができます。では、こうしたデータ構造の用途としてほかに何が考えられるでしょうか。

その答えは、「取引」という言葉を聞いてどれだけ想像を膨らませるかによって決まります。資金移動が思い浮かんだとしたら、ビットコインが考えられます。あるいは 2 人の投資家間の契約が思い浮かんだのであれば、金融取引所の立会場が考えられます。しかし、何らかの有形財産または無形財産を異なる領域間で移転する取引が思い浮かんだ場合はどうでしょうか。その場合、ブロックチェーンは例えば国際貿易やサプライチェーン・マネジメントにおける資産管理に役立つことが考えられます。Skuchain 社などの企業はそうした可能性を追求しています。

これまで考察したアプリケーションでは、人または組織が参加者でしたが、参加者が IoT の構成要素である「モノ」だったとしたらどうなるでしょうか。IoT の構成要素は、センサーデータの提供、物理作用の実行、コードの更新のほか、メッシュ・ネットワークではトラフィックの相互転送などの「取引」に確かに携わります。Filament 社のような企業は、ワイヤレス・ネットワークと暗号技術を組み合わせることにより、まさにこうしたシステムを研究しています。

最後に、結論を少し述べておきましょう。ブロックチェーンが生み出すもののようなネットワークは、取引をセキュアに記録するだけでなく、エージェントを条件付きでデータに基づいて行動させることができるスクリプトをセキュアに保存することも可能です。言い換えれば、ブロックチェーンはセキュアな分散型コンピューティング・システムを定義できるということです。

ブロックチェーンにコードを埋め込むことは、IoT ネットワークをプログラムする方法としては全く話にならないと思われるかもしれませんが、重要な利点を持つことが考えられます。最近の出来事が実証しているように、IoT 上の最も小さいプログラマブル・デバイスでさえも、分散型のサービス妨害 (DoS) 攻撃やシステムへの不正アクセスに不正利用される可能性があります。ブロックチェーン・プロトコル、その中でも軽量の抽選方式を使用するものは特に、参加者が実行できなければならない特定の暗号機能を定義しています。これを利用すれば、IoT セキュリティーのための防衛手段をめぐる際限のない戦いの様相を急速に強めつつある現状が、各ノードに対する明確かつ限られた要件に集約されます。しかも、それらの要件を MCU の範囲内にとどめておくことも、必要に応じてローカル・ハードウェア・アクセラレーターに移すことも可能です。ブロックチェーンベースのプログラミング・プロトコルは、一部の IoT ネットワークにとって最も効果的な保護手段になり得ます。

以上、代替通貨を創造する方法として出発したアイデアについて見てきました。そのアイデアがセキュアで不変の分散型データ構造の実装方法として一般化されることを示したほか、取引の自由な定義、つまり取引自体の中に実行可能なスクリプトを含める定義を用いれば、その概念がいかに柔軟なものになり得るかについても示しました。金融サービスからサプライチェーン・マネジメント、さらには IoT の保護まで、ブロックチェーンの限界はまだ見えていません。


CATEGORIES : All, Embedded system, IoT/ AUTHOR : Ron Wilson

Write a Reply or Comment

Your email address will not be published.