This article has been translated from English to Japanese.

スマートコントラクトに関する前回のレッスンで述べたように、イーサリアムはスマートコントラクトを作成し、実行できるコンピューティングプラットフォームである

スマートコントラクトとは、事前にプログラムされたソフトウェアコード(「コンピュータプログラム」)であり、指定された条件が満たされると、コードが自動的に実行される。

スマートコントラクトを作成する開発者の多くは、分散型アプリケーション(dApp)の一部として作成している。

しかし、dAppsとは何だろうか?そして、なぜそれが重要なのだろうか?

dApp

分散型アプリケーション(dApp)とは何か?

分散型アプリケーションは、「dApp」、「Dapp 」、「dapp」とも呼ばれ、スマートコントラクトを使用して自律的に動作するソフトウェアアプリケーションである。

スマートコントラクトは、コードに明示的に記述された所定の条件に従って自動的に実行されるコンピュータプログラムにすぎないため、dAppsは人間の関与なしに自律的に動作することができる。

「dApps」は ウェブアプリやモバイルアプリかなり似ている が、dAppsはスマートコントラクトを使用して構築され、ブロックチェーン上で実行されるという点が異なる。

最も単純な意味では、dAppはスマートコントラクトとウェブユーザーインターフェース(UI)である

dApp = フロントエンド + スマートコントラクトのバックエンド

つまり、昔ながらのスマートフォンやウェブアプリのようなフロントエンドのユーザーインターフェース(UI)と、バックエンドで実行されるスマートコントラクトの機能を組み合わせたものだ。

アプリのフロントエンドとは、ユーザーの画面またはグラフィカルユーザーインターフェース(GUI)に表示される部分を指す。アプリのバックエンドとは、ユーザーの画面(「フロントエンド」)に表示されない部分を指す。

dAppsは、仲介者や中央当局の介入を必要とせずに、2つの当事者がコードで取引や契約を行うことを可能にする。契約が確実に履行されるよう、コードを信頼するだけでよいのだ。

dAppsはオープンソースでもある。つまり、ソースコードは誰でも見ることができる。ソースコードを検査し、悪意のある意図があれば(理論的には)発見できるため、dAppsは信頼しやすい。

テクノロジー企業はコードを厳重に管理しているため、Googleの極秘検索アルゴリズムがどのように機能しているのか、Alexaが実際に私たちの会話を聞いているのかどうか、私たちは実際には知らない。

スマートコントラクトとdAppsがあれば、すべてが適切に機能しているかどうかを確認することができる。

dAppsは検閲にも強い。つまり、政府や大企業がコンテンツをブロックしたり、ユーザーを追放したりすることはできない。

これは、使い方(あるいは悪用)によっては良い面にも悪い面にもなり得る。例えば、Facebookのようなプラットフォームがユーザーの政治的見解やフェイクニュースの拡散を理由にユーザーを追放できることから、ソーシャルメディア上の検閲は議論の的となってきた。

dAppが何らかの動作をするようにプログラムされ、スマートコントラクトが実行された場合、そのコードを停止または元に戻すことは誰にもできない。「かわいいから後で削除するかも」などということはありえないのだ。

最後に、dAppsの大きな利点の1つは、オフラインにすることが難しいことである

dAppsは、世界中の分散型コンピューターネットワーク(ブロックチェーンによって数百から数千に及ぶ可能性がある)上で稼働している。

Decentralized app (dApp)

たとえ少数(あるいは数百)がオフラインになったとしても、残りのネットワークがブロックチェーンを稼働し続けるため、事実上、ダウンタイムはゼロになる。

それはそれで良いことだが、dAppsにはまだいくつかの欠点があることに注目すべきである。特に開発者側には。

ブロックチェーンに公開されたコードやデータの修正が困難であるため、開発者にとっては、dAppを一度展開した後のアップデートが特に難しい。つまり、古いバージョンのバグ修正や新機能の導入が厄介になる可能性がある。

また、イーサリアム・ネットワーク上で実行するメリット(すなわち、セキュリティ、透明性、分散化、信頼性)には、高いオーバーヘッドコストが伴う。

イーサリアムの現在の合意形成メカニズム(PoW)には時間がかかり、さらにすべてのノードが各トランザクションを実行し、保存する必要があるため、計算能力に対する要求が高くなる。

dAppsが基本的に完全にオフラインにならないとしても、ネットワークの混雑により実行速度が低下する可能性がある。

こうしたトレードオフにより、dAppsのスケーラビリティの実現は困難となっているが、イーサリアムの今後のアップグレードでは、プルーフ・オブ・ステーク(PoS)コンセンサス・メカニズムへの移行など、こうした問題の一部に対処することが約束されている。

dAppの例としてはどのようなものがあるだろうか?

dAppsが現実世界でどのように機能しているかについて、より理解を深めるために、Uniswapを例として見てみよう。

Uniswapはイーサリアムブロックチェーン上に構築された分散型取引所(DEX) である。

このアプリは、ユーザーが暗号資産を簡単に交換または「スワップ」できる機能を提供する。

アプリのユーザーインターフェースは次のようになっている。

Uniswap

流動性管理や価格設定に中央集権型のオーダーブックを使用する従来の取引所とは異なり、Uniswap DEXはAMMテクノロジーで動作する。

「AMM」とは「自動マーケットメーカー」の略で、これは注文板ではなく流動性プールに依存し、数学的公式を用いて売買価格を決定するスマートコントラクトの別称である。

事実上、Uniswapは取引所に暗号資産を一切保有せず、流動性を確保するために取引の反対側を取ることもない。

代わりに、取引はあなたとスマートコントラクトの間で行われる。スマートコントラクト内には、暗号資産をいくらで売買できるかを決定する数式がある。

暗号資産はどこから来るのか?例えば、ETHの一部をBATと交換したい場合、AMMが取引を処理している場合、BATはどこから入手するのか?

ここで「リクイディティプール」が活躍する。他のユーザーが流動性を提供するために暗号資産を預け入れ、取引手数料の一部を受け取ることができる。

Uniswap DEXはオープンソースソフトウェアで稼働しているため、ユーザーは何か怪しい動きがないかソースコードを確認することができる。

プロトコルは公開されており、許可も不要であるため、暗号資産の売買を希望する場合は誰でもdAppを利用できる。アカウントの登録やアクセス権の申請は不要である。必要なのは暗号通貨のウォレットを接続することだけだ。