BioErrorLog Tech Blog

試行錯誤の記録

Dfinityが目指す15個の目的を理解する | Internet Computer, ICP

Dfinity / Internet Computerが目指している15個の目的をまとめます。

はじめに

こんにちは、@bioerrorlogです。

Dfinity / Internet Computerの目指す方向性を理解するには、Dfinity公式のロードマップ記事を読み込むのが一つの方法でしょう。 medium.com

しかしこの記事は文量が多く、一度読んだだけで頭の中がクリアになるかというとなかなかそうもいきません。

本記事では、上記の記事で取り上げられているDfinityの15個の目的を、それぞれ個人的にかみ砕いた解釈で要約していきます。

あくまで私個人の解釈を含みますので、正確なニュアンスを掴むにはぜひ原文をあたってください。

それではやっていきます。

Dfinityが目指す15個の目的

公共財として成長し続けるネットワーク効果

Public Utility That Grows Exponentially With Builders

Internet Computerは、コード間・サービス間の機能共有コストを限りなくゼロに近づけ、ネットワーク効果を大きく増大させ続けていくことを目指しています。

Internet Computerでは、Canisterというスマートコントラクト単位でサービスが構築されます。 このCanisterで統一された世界では、コード同士はシームレスに直接機能を呼び出し合うことが可能です。 それぞれが別々に稼働しているサービスであったり、異なる言語で書かれていたとしても、Canister間で機能を共有することができます。

より多くの開発者がInternet Computer上で開発すればするほど、このネットワーク効果は増大し続けていきます。 既存のWeb2.0プラットフォーマーがそれぞれ成長したネットワークから利益を刈り取るのとは違い、(後述のnon-revocable API等の仕組みと合わせ)公共財としてのネットワーク効果が望める点もポイントとなりそうです。

参考
A Closer Look at Software Canisters, an Evolution of Smart Contracts | by DFINITY | The Internet Computer Review | Medium

インターネットそのものに匹敵する可用性

Systems and Services That Are Unstoppable Like the Internet

Internet Computer上で構築されたサービスが、インターネットそのものと同様の可用性・拡張性を持つことを目指しています。

インターネットは冷戦時代に設計されたもので、核爆発にも耐えうる可用性があります。 あるオンラインサービスがダウンしたということはあっても、インターネットそのものがダウンしたという状況は起こり得ません。

既存の商用クラウドのようなプラットフォーム上で構築されたサービスは、開発者がその可用性の担保する設計を組む必要があるため、サービスダウンはしばしば起こり得ます。 一方Internet Computer上で構築されたサービスは、デフォルトで分散された高可用性を持ち、基本的にサービス停止することはありません。

世界中の重要なオンラインサービスをInternet Computer上で再構築することで、より堅牢な世界の実現を目指しています。

デフォルトでセキュアかつプライバシーを保つ仕組み

Systems and Services That Are Secure by Default and Preserve Privacy

従来の方法論で構築されたシステムやサービスは、デフォルトではセキュアではありません。 開発者は常に、"セキュアでないものを守る"ための策を打つ必要があります。 しかし、どんなに念入りに設計してもそれら保護策が完璧であることはなく、いまも世界中で深刻なデータ漏洩・改ざんが起き続けています。

Internet ComputerはWebスピードのブロックチェーンネットワークであり、"デフォルトでセキュア"な仕組みを持っています。 そのデータが改ざん不可能であることは数学的に保証されたものであり、従来のあらゆるセキュリティ対策より根本的に強力なものです。

データが改ざん不可能であることに加え、Internet Computerではデータプライバシーも保証されます。 これはInternet Computerで採用されている"Chain Key cryptography"という暗号化方式によるものです。 この方式は他のブロックチェーンと違い、過去の取引履歴をダウンロードせずとも取引の正当性を検証できます。 これによりデータ取得方法を認可ベースで制御することが可能になり、データプライバシーを保証することが可能です。

また、Internet Computerノードに物理アクセスできる管理者に対するプライバシー対策も検討が進んでおり、物理アクセスであっても素のデータは取得できない機能が盛り込まれていく予定です。

参考
Chain Key Cryptography: The Scientific Breakthrough Behind the Internet Computer | by DFINITY | The Internet Computer Review | Medium

AMD SEV Virtual Machine Support - Roadmap - Internet Computer Developer Forum

システムの複雑性とスケール問題の解決

Crushing Complexity and Scaling Using Reimagined Smart Contracts

従来のシステムでは、コストの大半を人的コストが占めています。 というのも、これまでは往々にして複雑性の高いシステム構築が必要であり、絡み合う各コンポーネントの設計・開発や運用保守、バックアップやセキュリティ対策に多くの人的コストが必要だからです。

Internet Computerでは新たなスマートコントラクトの形である"canister"を活用することで、システムの複雑性を軽減し無駄なコストを大きく削減できます。 例えば、canisterはorthogonal persistence(動作が永続する性質)を持つため、データをメモリ上のプログラム変数に保持できます。 これによってデータベース等の永続層の構築・連携・管理をする必要がなくなり、システムの複雑性を抑えることが可能です。

また、Internet Computer上で動作するシステムは容易にスケールできます。 オンプレで構築されるシステムは常に物理ハードウェアの制約を受けますが、Internet Computerではcanisterという単位で必要に応じた柔軟なスケールが可能です。

ここに挙げたメリットはInternet Computerで発生する追加のオーバーヘッドで相殺されるのでは、と懸念する向きもあると思いますが、そうとも言えません。

Internet Computerでは最低7台のノードにレプリカが作成されますが、これは従来のシステムで利用されるクラウドやデータベースレプリカ、CDN等のレプリカを考えると特段多いわけではありません。 確かにメモリ料金(5$/GB/年)は従来の基盤に比べ高価ですが、これにより得られる効率性はそのコストを上回るでしょう (Ethereumのスマートコントラクトが$5,000,000/GBであることを考えると、スマートコントラクトとしては破格の値段です)。 また、Internet Computerで利用される暗号計算のオーバーヘッドも、複雑性やセキュリティ確保に必要な人的コストの代替として捉えればむしろ低コストと言えるでしょう。

画像はこちらのスライドより引用

インターネットの"エッジ"で動くウェブスピードのブロックチェーン

Blockchain at Web Speed That Runs on the Internet’s “Edge”

ブロックチェーンにおける古くからの課題の一つに、トランザクションが遅い、というものがあります。 Internet Computerはこの課題を克服し、条件によっては従来型のシステムよりも優れたパフォーマンスを発揮することを目指しています。

Internet Computerで採用されているChain Key cryptographyは、トランザクションスピードを1~2秒に抑えることを可能にしました。 しかし、ミリ秒単位の応答に慣れている通常のネットユーザーはこのスピードでは満足できません。 そこでInternet Computerはスマートコントラクトの実行を"アップデートコール"と"クエリコール"に二分し、クエリコールに関してはミリ秒単位の性能を引き出すことに成功しました。

さらに、Internet computerでは世界中に分散したノードにレプリカが作成されます。 クエリコールはいわゆるこの"エッジ"にあるノードに対して発行されるので、ユーザーはより早い応答を得ることが可能です。 従来のITスタックではCDNをシステム構成に組み込むことでこのようなエッジでの応答を実現させますが、それをデフォルトで、しかもより優れた形で実現できるInternet Computerのメリットは大きいと言えるでしょう。

ブロックチェーンシステムからの厄介な仲介者の排除

Removing Troublesome Intermediaries From Blockchain Systems

現在のブロックチェーンシステムは、仲介者の存在に依存している部分が多くあります。 例えば、既存のブロックチェーンノードはAWSのような"Big Tech"のクラウドサービス上で稼働していることも多くあり、この傾向はProof-of-Stakeへの移行に伴い今後も増えていくでしょう。

これは、仲介者を不要とするはずのブロックチェーンの思想とは逆行する、厄介な問題です。 政府による法的措置の結果として、あるいはブロックチェーンの存在を脅威に思った"Big Tech"の手によって、これらブロックチェーンノードが介入される可能性はないとは言い切れません。

Internet Computerでは、これらクラウドのような寡占的な仲介者を必要としません。 その代わり、NNS(Network Nervous System)によって選出されたデータセンターの標準化されたハードウェアでノードが稼働し、複数の地域や管轄権にまたがる分散化が実現できます。

ブロックチェーンシステム特有のユーザビリティ問題の解決

Removing Critical Usability Issues From Blockchain Systems

従来のブロックチェーン上で構築されたサービスを利用するには、ユーザーはウォレットを作成し、暗号通貨取引所にアカウントを登録し、面倒な本人確認手続きを通過し、お金を送金し、トークンを購入し、ウォレットに送金し、サービス内での取引方法を学び...などなど、面倒な手順を踏む必要があります。

これは特にブロックチェーンコミュニティ外のユーザーにとってかなりのハードルであり、サービスがユーザーを獲得する際の大きな障壁になります。 ユーザー獲得が命ともいえる新規サービス開発において、これは致命的な問題でした。

Internet Computerは、この問題を二つの方法で解決します。

一つ目は、サービスを利用するユーザー側がトークンを保持する必要をなくすことです。 従来のブロックチェーンでは、ユーザーは自分のアクセスで発生するスマートコントラクトの計算料を支払う必要がありました。 Internet Compuerでは、サービス側で前払いされた "cycle" を使って計算料を支払う “reverse gas model” が採用されており、ユーザー側はウォレット/トークンの用意をすることなくサービスを利用できます。

二つ目は、ユーザーにとって簡単な認証方法を提供することです。 ユーザーは暗号キーペアを使ってスマートコントラクトに認証される必要がありますが、Internet Computerは "Internet Identity" という仕組みを提供してこのプロセスを簡略化しています。 さらにWebAuthn規格と連携させることで、従来のユーザー名/パスワード認証よりも簡単な、生体認証/ハードウェア認証をシームレスに利用できます。

このようにユーザー側の負担を最小限に抑えることで、従来のブロックチェーンシステムが抱えていたユーザビリティ問題の解決を目指しています。

参考
Computation and Storage Costs :: Internet Computer

Internet Identity: The End of Usernames and Passwords | by DFINITY | The Internet Computer Review | Medium

自律的な進化を実現するガバナンスシステム

Unleashing Intelligent Governance and Autonomous Evolution

ブロックチェーンにおいて、ガバナンスは常に悩ましい問題です。 特定個人または特定組織が独裁的にガバナンスを握ってしまうと、コミュニティにとって好ましくない判断が下される可能性があります。 一方、ブロックチェーンを構成する複雑な技術スタックは常にアップデートやメンテナンスが必要なので、何かしらの形でのガバナンスは必要です。

しかし、アップデートのコンセンサスを得ること、そしてそのアップデートをグローバルに実行することは、これまでも技術的に難しい課題でした。

そこでInternet Computerでは、Network Nervous System (NNS)というオープンなガバナンスシステムを導入しています。 NNSでは、ICPトークンの保有者がトークンを投票ニューロンにロックすることで、NNSに提出された提案に票を入れることが出来ます。 可決された提案は自動で実行され、ネットワークの自律的なガバナンスが実現されます。

参考
The DFINITY “Blockchain Nervous System” | by Dominic Williams | The Internet Computer Review | Medium

The Network Nervous System: Governing the Internet Computer | by DFINITY | The Internet Computer Review | Medium

Understanding the Internet Computer’s Network Nervous System, Neurons, and ICP Utility Tokens | by DFINITY | The Internet Computer Review | Medium

トークンガバナンスによる“Open Internet Service”の実現

“Open Internet Services” With Tokenized Governance Systems

Internet Computerでは、ガバナンストークンによってオープンに制御・運営される“Open Internet Service”の実現を目指します。

Internet Computer上でサービスを構築する開発者は、そのサービス用のガバナンストークンを発行することで、運営をトークンベースに移行していくことが可能です。 そうなるとサービスに加えられるアップデートや修正は、ガバナンスシステムへの提案とトークン保持者による投票によって決定されるようになります。 ゆくゆくは特定の組織・開発者に依存しない、自律的なサービス運営の実現も可能でしょう。

またこの過程でトークンを販売することは、そのままサービスの資金調達にも繋がります。

Internet Computer上でこの“Open Internet Service”を実現するためのガバナンストークンを発行する仕組みは、現在 Service Nervous System (SNS)として仕様が議論されています。

参考
Open Internet Service - Dfinity Terminology

How the Service Nervous System (SNS) Will Bring Tokenized Governance to On-Chain Dapps | by DFINITY | The Internet Computer Review | Medium

Service Nervous System | Governance for Dapps - Roadmap - Internet Computer Developer Forum

プラットフォームリスクの無いトラストレスなエコシステム

A Trustless Programmable Web With Non-Revocable Sharing

従来の"Big Tech"のようなプラットフォーマーが提供するAPIを使ってサービスを構築するとき、そこには常に"プラットフォームリスク"が付き纏います。 プラットフォーマー側の一方的な方針転換により、API利用側が大きく損害を被った事例は決して珍しくありません。 また仮にプラットフォーマーでなくとも、他サービスの提供するAPIを利用している場合は常にAPIの提供方針が変更されるリスクを伴います。

この結果、他者のAPIに依存したサービス開発で資金調達することは難しくなってきており、イノベーションの機会が損なわれつつあります。

Internet Computerは、こうした状況の打破を目指しています。

まず一つは、“Open Internet Service”で取り下げ不可能(Non-Revocable)なAPI公開の仕組みを提供することです。 開発者がAPI公開を永続的なものとすることで、仮にガバナンスシステムがそれらを削除したり変更したりしようとしても、そのアップデートを適用できないようにします。

また、それでも何かしらAPI挙動の変化に影響を受けた場合は、NNSにオープンに提案を持ちかけることもできます。 もし採択されれば、Open Internet Serviceの然るべき機能を回復できる可能性が開けます。

こうしてInternet Computer上で永続的なネットワーク効果を蓄積し、より建設的なエコノミーの構築を目指しています。

参考
Non-revokable APIs - Developers - Internet Computer Developer Forum

世界中で均等な成功機会の提供

Democratizing Tech Opportunity by Extending It to the 99 Percent

現在、IT界の成功のほとんどはシリコンバレーのような一部地域で起きています。 資金調達の機会もそのような集積地に偏りがちで、世界のその他99%の人口は機会を失しているとも言えます。

この問題を解決するため、Internet Computerは世界中で均等な資金調達の機会を提供する仕組みを目指しています。

Internet Computer上で開発したサービスは、ガバナンストークンを発行することで“Open Internet Service”として運営することができます。 このガバナンストークンは、売りに出すことで資金を調達することが可能です。 この仕組みを使えば、開発者は世界のどこにいようとも、投資家との直接的なつながりがなくとも、資金調達することができます。

これはWeb3時代におけるサービス開発の資金調達方法として、注目すべき新たな形と言えるでしょう。

独占型Big Techに打ち勝つオープンなインターネットの構築

Building a Richer Open Internet That Beats Out Mega Monopolies

GoogleやFacebookといった"Big Tech"によるイノベーションの速度は、かつての勢いを失っていると言わざるを得ません。 そのようなBig Techがいま力を振り向けているのは、ユーザー情報を利用して効率的に収益を上げることや、競合他社の買収で独占領域を拡大すること、そして自分たちに有利(そして他社に不利)になるようロビー活動を行うこと、です。

このような独占型Big Techによる影響力が益々高まっている現状に危機感を持った投資家や起業家は、ブロックチェーンやICOブームに代表されるようにオープンなインターネットを取り戻そうとしています。

Interne Computertは、そのための手段を提供します。

Internet Computerではサービスの機能やデータをトラストレスに共有し合うことができるので、摩擦や交渉、プラットフォームリスクのないネットワーク効果を育み続けることが可能です。

また前述のように、トークンによる資金調達の機会を世界中の開発者に等しく提供することで、BigTechの独占的エコシステムよりもはるかに簡単に、より多くの開発者が成功の機会を得ることができるでしょう。

オープンにトークン化されたサービスはそのガバナンスシステムによって透明性が確保されるので、(既存Big Techがしばしばやらかすように)秘密裏にユーザーデータが売買されるようなこともありません。

計算リソースを利用したステーブルな価値

Using Computation to Provide Stable Liquidity to Contracts

Internet ComputerのトークンであるICPは、Internet Computer上の計算リソースを使うのに必要な"cycle"に変換することができます。

CycleはEthereumにおけるgasに相当しますが、その価格がステーブルに保たれる仕組みを持つのが特徴です。

まず、ICPトークンはNNSが設定したレートでcycleに変換できます。 変換レートはIMF SDR換算で固定され、0.65 SDRの価値を持つと評価されたICPトークンが1 trillion cycleに変換されます。 ICPトークン-SDR換算レートはICP価格の変動に応じて (NNS上の提案を経て) 修正されるので、cycle自体の価格はICP価格の変動に関係なく一定です。

そして、このcycle価値はInternet Computer上で計算リソースが動き続ける限り安定します。 NNS上の変換レートより高い価格でcycleが売りに出されたとしても、(ICPを自分で変換すればよいので) 市場にそれを買うの動機は発生しません。 逆にNNS上の変換レートより低い価格でcycleが売りに出された場合は、計算リソースを使いたい人がこのcycleを買い、計算リソースと引き換えにcycleを消費することで市場から直ちに取り除かれます。

こうした仕組みでcycle価値がステーブルに保たれることで、Internet Computer上でサービスを構築したい開発者はそのランニングコストを安定して見積もることができます。

参考
Understanding the Internet Computer’s Network Nervous System, Neurons, and ICP Utility Tokens | by DFINITY | The Internet Computer Review | Medium

Clearing stuff about cycles and what "a rate that keeps their real-world cost constant" means! : dfinity

Special Drawing Rights (SDR)

汎用仮想マシンとしてのWebAssemblyの定着

Making WebAssembly the World’s Virtual Machine

Ethereumでは、Solidityなど高レベル言語からコンパイルしたバイトコードを実行させるための仮想マシンを、Ethereum Virtual Machine (EVM)として独自に開発しました。 しかし、安全で効率的な仮想マシンを開発するのは、それ単体でも技術的に極めて難しいことです。 結果、EVMでできることは大幅に制限されてしまいました。 これは2014年時点の判断としては仕方のないことと言えるでしょう。

しかし、今ではWebAssemblyがあります。

WebAssemblyは、多くの高級プログラミング言語をサポートしていることや、そのバイトコードがネイティブに近いスピードで実行できることなど多くのメリットを持っています。 この規格はW3Cによって定められ、業界標準としての重要性とそこに向けられる開発者・利用者の関心は日々増加しています。

Internet Computerは、開発にWebAssemblyの共同設計者が参画しているおかげでWebAssemblyの規格と今後の発展性を最大限に活用できるよう設計されています。

Internet ComputerのcanisterはWebAssemblyのバイトコードで動作するため、プログラミング言語を問わずスマートコントラクトを記述できる可能性を持っています。 Canisterを通して、WebAssemblyをフロントエンドだけでなくバックエンドの優れた仮想マシンとしても定着させることを目指しています。

参考
Why WebAssembly?. WebAssembly (or Wasm) is one of the… | by Andreas Rossberg | The Internet Computer Review | Medium

Motoko, a programming language for building directly on the internet - Stack Overflow Blog

Motoko, a Programming Language Designed for the Internet Computer, Is Now Open Source | by Andreas Rossberg | The Internet Computer Review | Medium

Bringing the web up to speed with WebAssembly

ブロックチェーンのトリニティ-三位一体の関係の完成

Completing the Blockchain Trinity

Internet Computerは、Bitcoinに始まり、Ethereumによって発展してきたブロックチェーンのトリニティ-三位一体の関係を完成すべく設計されました。 これら三者は、互いに補完し合う関係性を持っています。

Bitcoinの強みは、暗号通貨としての設計のシンプルさにあります。 シンプルゆえに目的が明確であり、おかげでデジタルゴールドとしての地位を確立することができました。 しかしそのシンプルさは、ブロックチェーンのより汎用的な多くの利用用途を制限してしまうことに繋がります。

その次に現れたEthereumは、高度にプログラム可能な暗号通貨として設計されました。 Ethereumで実行されるプログラムはチューリング完全であり、原理的にはあらゆるシステムの実装に使用することができます。 これによって、ブロックチェーンの適用範囲が暗号通貨からあらゆるスマートコントラクトに拡大され、Ethereumは大きな成功を収めています。

Internet Computerはさらにその範囲を拡大し、汎用のコンピュートプラットフォームとしての役割を目指しています。 ウェブスピードで動作し、無限に容量を増やすことができること。 わずかなコストで計算リソースやデータをホストし、簡単にスケールアップできること。 エンドユーザーのウェブブラウザにコンテンツを安全に提供し、より汎用的なシステム・サービスの構築に使用できること。 これらを満たすブロックチェーンネットワークを構築することが、Internet Computerの目指すところです。

今後は、Bitcoin・Ethereum・Internet Computerの三者が互いに取り込み合い、相互に付加価値を与え合うことになるでしょう。

画像はこちらのスライドより引用

参考
Motion Proposal to Integrate Bitcoin With the Internet Computer Adopted by Community | by DFINITY | The Internet Computer Review | Medium

Integrating the Internet Computer and Bitcoin Networks | E001 - YouTube

Internet Computer Overview | DFINITY

おわりに

以上、Dfinity / Internet Computerの目指す15個の目的をまとめました。

こうして改めて読み込んでみると、Internet Computerがいかに野心的なプロジェクトなのかが再認識できます。

私は普段AWSを主戦場としていますが、クラウドの次には何が来るんだろう?という考えを追及するうちにInternet Computerに興味を持ち始めました。 同じくInternet Computerに興味のある方、よければTwitterのフォローもよろしくお願いします。

[関連記事]

www.bioerrorlog.work

www.bioerrorlog.work

www.bioerrorlog.work

参考

Announcing the Internet Computer “Mainnet” and a 20-Year Roadmap | by Dominic Williams | The Internet Computer Review | Medium

A Closer Look at Software Canisters, an Evolution of Smart Contracts | by DFINITY | The Internet Computer Review | Medium

Chain Key Cryptography: The Scientific Breakthrough Behind the Internet Computer | by DFINITY | The Internet Computer Review | Medium

AMD SEV Virtual Machine Support - Roadmap - Internet Computer Developer Forum

Internet Computer Overview | DFINITY

https://dfinity.org/pdf-viewer/pdfs/viewer.html?file=../library/an-intelligent-decentralized-cloud.pdf

Computation and Storage Costs :: Internet Computer

Internet Identity: The End of Usernames and Passwords | by DFINITY | The Internet Computer Review | Medium

The DFINITY “Blockchain Nervous System” | by Dominic Williams | The Internet Computer Review | Medium

The Network Nervous System: Governing the Internet Computer | by DFINITY | The Internet Computer Review | Medium

Understanding the Internet Computer’s Network Nervous System, Neurons, and ICP Utility Tokens | by DFINITY | The Internet Computer Review | Medium

Open Internet Service - Dfinity Terminology

How the Service Nervous System (SNS) Will Bring Tokenized Governance to On-Chain Dapps | by DFINITY | The Internet Computer Review | Medium

Service Nervous System | Governance for Dapps - Roadmap - Internet Computer Developer Forum

Non-revokable APIs - Developers - Internet Computer Developer Forum

Special Drawing Rights (SDR)

Clearing stuff about cycles and what "a rate that keeps their real-world cost constant" means! : dfinity

Motoko, a programming language for building directly on the internet - Stack Overflow Blog

Motoko, a Programming Language Designed for the Internet Computer, Is Now Open Source | by Andreas Rossberg | The Internet Computer Review | Medium

Why WebAssembly?. WebAssembly (or Wasm) is one of the… | by Andreas Rossberg | The Internet Computer Review | Medium

Bringing the web up to speed with WebAssembly

Motion Proposal to Integrate Bitcoin With the Internet Computer Adopted by Community | by DFINITY | The Internet Computer Review | Medium

Integrating the Internet Computer and Bitcoin Networks | E001 - YouTube