理解を一歩深めるための仮想通貨レクチャー

私たちはDappsの何に可能性をみたのか

理解を一歩深めるための仮想通貨レクチャー 第4回

私たちはDappsの何に可能性をみたのか

2018.08.20

Dappsとは、利用者が端末の性能を提供してアプリを稼働させること

一定のレベルまではスケールさせられる柔軟さを秘めている

Dappsだからこそできることとは?

マイニングの意義とおもしろさ

前回も最後に軽く説明したが、近年Dapps(分散処理アプリケーション)が注目を集めている。Dappsは、利用者が端末の処理性能を少しずつ提供して、アプリケーションを稼働させるために必要なネットワークの維持を行うことだ。

自転車や住まいを共有し、効率よく資産を活用するシェアリング・エコノミーが注目されて久しい。その本質を、利用者が少しずつメンテナンスコストを負担しながら、必要な資産を利用する仕組みととらえると、さまざまな財・サービスに応用できるだろう。

今日、誰もがインターネットにアクセスできる端末を持つことが当然になった。一方で、これらの端末のほとんどは限られた性能のみを利用しており、大規模なサービスを提供するアプリケーションの処理は提供側に依存しているのが現状だ。

もし、ビットコインの仕組みのように、開発保守がネットワーク参加者の間で行われ、大規模なデータセンターの代わりに利用者がハードの処理性能を少しずつ提供することで運用できる仕組みがあるとしたら、これまで大規模なデータセンターを必要としていたサービスも、個人の有志が集まることで実現できるようになるかもしれない。そんな可能性を秘めているのがDappsなのだ。

Dappsの先駆けは黎明期のSkype

実は、身近なところにDappsの先駆けとなるサービスが存在する。それは黎明期のSkypeだ。

今でこそ膨大な利用者と通信を支えるためインフラを見直しているが、細部を省略して説明すると、黎明期のSkypeの仕組みでは、利用者の端末性能に応じた「ノード」と「スーパーノード」を自動的に分類していた。利用者に相当する一般参加者の「ノード」に対して、「ノード」の中でも一定の処理能力を持つものを「スーパーノード」と判別し、「スーパーノード」はノード同士が通信する際のハブになる役割を果たしていたのである。

もちろん、利用者の認証や登録など、一部の機能はクライアント/サーバー型に依存した部分もあるが、こうしたテーマはビットコインネットワークで実現している仕組みを参考にすることでヒントを見出せるだろう。

ここで言及した「ノード」と「スーパーノード」の関係性は、ビットコインの利用者とマイナーの関係に似ている。決済で利用する場合は、ネットワークに対して手数料を支払うことでビットコインをサービスとして利用でき、同時に、ビットコイン・コアを利用すれば、ネットワーク参加者の端末性能の一部を提供することで誰でもマイナーとして活動できるというわけだ。

Skypeでは、通信のルーティングや通信回路の確立、リレーといった作業をアプリケーション上で行っているが、従来の通信インフラ、例えば電話であれば、基地局や専用の端末を必要とし、仕様や規格変更の際には莫大な投資と時間を必要とするうえ、利用者の端末も新しい通信規格に対応させる必要があるため、普及に一定の時間を要する。

Dappsであれば、利用者にアップデートを促すことで、柔軟かつ迅速な変更が可能だ。さらに、ユーザーが増えたとしてもアプリケーションのアップデートがスムーズになされるのであれば、システムを止めることなく数百人から数億人まで段階的にスケールさせることもできる。実際に、ビットコインネットワークは有志で始めた規模から、世界的にユーザーを抱える規模になった今日でも、一度もダウンタイムを設けずに稼働し続けている。

柔軟なスケーラビリティを持つDapps

世界的な普及を目指すケースでは、Dappsには無視できない特徴がある。

1つは先ほど述べたスケーラビリティだ。通信やストレージにおいて、利用者の端末活用を前提としているため、利用者が急激に拡大したとしても一定のレベルまではスケールさせられる柔軟さを秘めている。

次に、インセンティブの設計が考えられる。Skypeに比べてビットコインネットワークでは、端末の性能を提供することで、マイニング報酬としてネットワーク報酬(コインベース)やネットワーク利用者からの手数料を得ることができる。この仕組みは、単にビットコインそのものに関心のあるネットワーク参加者だけでなく、報酬を得ることを目的とした参加者の流入を促すことができるため、スケールさせる際に必要なネットワーク総和としての処理性能を向上させる効果に期待できるわけだ。

そして、参加が容易であることも見逃せない。Skypeもビットコインネットワークも、専用アプリケーションをダウンロードすることで、ネットワークの利用者になれるだけでなく、マイナーとしてネットワークの維持管理者になることもできる。

つまり、アプリケーションさえ作成できれば、大規模なデータセンターやインフラが無くとも、数百人の小さなコミュニティから始まり、月間百万ユーザーのペースで利用者が拡大したとしてもサービスを稼働し続けられる潜在性を秘めているのである。

Dappsでは何ができるのか

Dappsの要素技術となるブロックチェーンや仕組みとしての仮想通貨が注目を浴びて久しいが、これらの特徴を生かした世の中の変化が見えられないがゆえに、歯がゆい思いをしている。ここでは、Dappsだからこそできることを模索してみよう。

ECを例に挙げてみる。eBayやAmazonなど国を跨いで行われる商取引の場合、必要な機能はユーザー登録・認証のほか、売買対象のリスティング、注文履歴の保存、約定履歴の保存、決済代金の受け払い管理、商品の受け払い管理などだ。

現在では、これらの過程でメールアカウントに注文約定、発送の確認メールのやり取りが何度となくなされ、決済においてはPaypalのような決済サービスや銀行振り込み、貴重品であれば発送状況を追跡するサービスが必要となるかもしれない。また、国際送金を行う場合には着金まで時間がかかるほか、外貨交換の手間も必要になる。しかし、ユーザーが欲しい体験は、スマホでボタンを押下したらすぐに送ってくるようなサービスなのだ。機能だけ見れば、Amazonが銀行を立ち上げようとしたり、メルカリが海外進出を検討したりすることで、遅かれ早かれ何らかの形で実現するだろう。

Dappsが成し得ることは、会社でなくとも、私たち個人の集まりがこうしたサービスを実現できるかもしれないことだ。これらの機能を分散処理アプリケーションに実装し、ネットワーク参加者が利用者や維持管理者といった必要な役割と端末性能という資源の共有を行えば、実現させることができるだろう。注文や約定の記録はアプリケーション上のブロックチェーンに記入することができる。

ネットワークを支えるマイナーに相当する参加者には、トークンという形で売買に必要な手数料に相当する対価を支払う仕組みを導入できる。また、送金を行う場合には仮想通貨を経由することで、迅速な決済を実現することも可能。当然、仮想通貨や資金移動に関するさまざまな規制に対応させる必要はあるが、こうした仕組みはEOSやイーサリアムを用いることでもすでに検討されているはずだ。

足元の潮流としては、仮想通貨が「取引する対象」として見られがちだ。ゆえに、売買規制や資金調達規制といったあたかも金融商品のような扱いを受けている。しかし、ビットコインをはじめとする分散処理アプリケーションの潜在性は、何も持たない個人の集まりが作ったサービスを世界に拡散できる可能性を秘めている点にある。だからこそ、仮想通貨やブロックチェーンがここまで注目を集めたと考えることができる。

もし、Dappsで何かを作ることに関心のある方は、ぜひ私まで連絡を頂けたらと思う。

著者プロフィール

齋藤亮
SBIバーチャル・カレンシーズ代表取締役副社長

2010年、SBIホールディングス入社。SBIグループにて、主に経営企画・事業開発に従事。
2016年、SBIバーチャル・カレンシーズ株式会社 代表取締役に就任、日本初の仮想通貨交換業者として登録を果たす。
2017年より仮想通貨事業者協会(JCBA)理事。

SBIバーチャル・カレンシーズ

 バックナンバー

「マイニング」の仕組みと報酬

理解を一歩深めるための仮想通貨レクチャー 第3回

「マイニング」の仕組みと報酬

2018.08.16

マイニングとは、ルールに沿った256桁のハッシュ値を求めること

得られる収益は大きく分けて2種類

マイニングをする意義とは?

「マイニング」とは?

仮想通貨に関心のある方は、一度ぐらい「マイニング」という言葉を聞いたことがあるのではないだろうか。一般的に仮想通貨におけるマイニングとは、ブロックチェーン上にまだ記録されてない取引情報を格納した最新のブロックを、ブロックチェーンに追加する作業を指す。しかし、その説明を聞いてすぐに理解できる人はそこまで多くはないはずだ。そこで、ビットコインを例に具体的な流れを紹介しよう。

1.ブロックに格納する取引情報の収集を行う

マイニングをする際、まずはブロックに格納する取引情報の収集を行う。ビットコインのアプリケーションをダウンロードした端末に存在する「自動的に通信を行うビットコイン利用者のネットワーク」から集めた情報に、ブロックにまだ取り込まれていない取引(トランザクション)、自身のマイニングによって得られる報酬獲得の取引内容を加えて、1つのブロックの中に格納する。

2.ハッシュ値と呼ばれる、データを圧縮した数値を求める

次の作業では、「ハッシュ関数」と呼ばれる数式に、ブロックに格納された情報とマイナーが任意に設定した数値を代入することで、解に相当する256桁の数値を求める。数式は仮想通貨の種類によってさまざまだが、ビットコインでは「SHA256(セキュア・ハッシュ・アルゴリズム256)」と呼ばれる関数が採用されている。SHA256そのものは、仮想通貨だけでなくデータの暗号化を行う数式として用いられる一般的な数式だ。なお、マイナーが任意に設定した値は「ナンス」、数式の計算で得られた256桁の値は「ハッシュ値」と呼ばれる。

3.繰り返しナンスにさまざまな値を当てはめて、ルールに沿ったハッシュ値を求める

ビットコインではブロックチェーンに新たなブロックを追加する際、この256桁の値が常に一定の条件を満たす必要がある。当然、ブロックに格納した取引の情報は変化しないので、ナンスにさまざまな値を当てはめることで、ルールに沿ったハッシュ値を求めていくわけだ。

効率は悪いものの、ハッシュ値を求める作業そのものは紙と鉛筆で行うことも可能だ。このとき、1秒間に何回この作業を繰り返せるかという数値を「ハッシュレート」と呼び、1秒間に1度この作業を行う場合は「1 hash / 秒」と表される。ちなみに、全世界で1秒間に約40,000,000,000,000,000,000(4,000京)回前後の計算が行われているという(記事を執筆した2018年6月時点)。

4.ルールに合うハッシュ値をネットワークで発信し、確認する

ルールに沿ったハッシュ値が得られた場合、すぐビットコインネットワークに発信する。受信したユーザーは発信されたハッシュ値が正しいことを確認したうえで、次のブロック生成を行う。

こうしてみると、マイニングによってハッシュ値を求めることは難しいように思えるかもしれない。ビットコインは世界中で知られている仮想通貨であるため、さまざまな人によってマイニングが行われているが、知名度の低い仮想通貨であれば、マイニング参加者が少ないためハッシュレートも低いことが想定される。つまり、自宅のPCでマイニングを行える仮想通貨もあるというわけだ。

最近では、仮想通貨のマイニングが可能なスマートフォンのアプリまで出てきているから驚きだ。ほかにも、PCのCPUの処理能力を販売し、マイナーに代わってハッシュ値を求める計算代行サービスや、悪用した事例では、感染すると勝手にCPUの処理能力を利用してマイニングを行うウイルスまで存在する。

「コインベース」と「トランザクション手数料」、2つのマイニング報酬

では、どのようにマイニングで収益を得ることができるのか。

個々の仮想通貨の仕組みにもよるが、マイニング報酬の内訳は大きく分けて2つ存在する。1つは「コインベース」と呼ばれるものだ。

執筆時点(2018年6月)のビットコインの場合では、1つのブロックを生成すると報酬として12.5ビットコインを獲得することができる。これは、プログラム上で定められており、4年に一度半分に減少していく。コインベースがなくなるまでには、100年以上かかると想定されている。

というのも、一定の時間をかけることで、徐々にビットコインは世の中に浸透していき、最終的に世界で活発に利用された結果、コインベースによる報酬がなくてもマイニングが成立するようになるというのが、ビットコインの設計思想であるためだ。

もう1つは、トランザクション(取引)を生成した送金者が任意に設定できる「トランザクション手数料」。多くの仮想通貨交換所のサービスでは、トランザクション手数料を固定しているため、意識する機会は少ない。

なぜ、手数料が固定なのかというと、現在のビットコインの仕組みでは、送金者が設定した任意のトランザクション手数料のうち、値の大きなトランザクションから順にブロックへ格納する仕様になっているためだ。あまりに少額の手数料を設定すると、いつまでもトランザクションがブロックに格納されず、確定しないという現象が起こり得る。交換所が手数料を固定で設定する背景には、こうした点への配慮もあると考えられる。

マイニングの意義とおもしろさ

最近、Dapps(分散処理アプリケーション)が少しずつ注目を集めている。Dappsは、利用者が端末の処理性能を少しずつ提供し、アプリケーションを稼働させるために必要な処理を実施していくというものだ。仮想通貨の世界では、こうした作業の分担による対価をどのように支払うか、そして、ネットワークがスケールしていく過程でどのようにインセンティブを設計するか、という点で興味深い仕組みと言える。

マイニングは、報酬として仮想通貨を得る機械的な作業というだけでなく、ネットワークの運営を担当すると捉えれば、ビットコインマイナーは「ビットコイン」という分散処理アプリケーションを支えていると言い換えられるだろう。

限られた資源の活用とシェアという文脈で、今後はビットコインに限らずさまざまな分散処理アプリケーションが浸透していくだろう。その際、アプリを利用するときには誰もが当たり前の様に「マイニング」を行う時代が訪れるかもしれない。

著者プロフィール

齋藤亮
SBIバーチャル・カレンシーズ代表取締役副社長

2010年、SBIホールディングス入社。SBIグループにて、主に経営企画・事業開発に従事。
2016年、SBIバーチャル・カレンシーズ株式会社 代表取締役に就任、日本初の仮想通貨交換業者として登録を果たす。
2017年より仮想通貨事業者協会(JCBA)理事。

SBIバーチャル・カレンシーズ

 バックナンバー

モナコインで起きた「Block Withholding Attack」とは?

理解を一歩深めるための仮想通貨レクチャー 第2回

モナコインで起きた「Block Withholding Attack」とは?

2018.08.14

2018年5月に、仮想通貨モナコインが攻撃を受けた

攻撃手法は「Block Withholding Attack」と呼ばれるもの

ハッシュ能力のアンバランスさを解決していかなければならない

2018年5月、仮想通貨「モナコイン」のブロックチェーンに対して、「Block Withholding Attack」と呼ばれる大規模な攻撃が行われた。被害額はなんと約1000万円にのぼるというが、モナコインに対して行われた「Block Withholding Attack」とは、どのような手口なのだろうか。ブロックチェーンのブロック生成方法とともに、その仕組みを解説する。

モナコインのブロックチェーン生成の仕組み

モナコインで採用されているブロックチェーンの生成方法は、「プルーフ・オブ・ワーク(PoW)型」と呼ばれるものだ。PoWの概念は、ルーズリーフに喩えるとわかりやすい。

ブロックチェーンとはデータを記録する技術。いくつかのデータの塊が1つのブロックを生成し、それらのブロックがチェーンのように連続的につながっていく。そして、新しいブロックが生成されるとき、1つ前のブロックの情報が書き込まれた状態から記録がスタートするという仕組みだ。ここでは、「記録された情報がルーズリーフに書かれた文字」「1つのブロックが1枚のルーズリーフ」「情報の引き継ぎ方がルーズリーフの結び方」だとイメージしてほしい。

ルーズリーフは、綴じ目としていくつも穴が開いている。紐で1枚1枚綴ってブックレットを作っていると仮定した場合、新しいページを追加するたびに、前のページの綴じ方に配慮しながら、バラバラにならないような正しい紐の結び目を見つけなければならない。

ブロックチェーンの世界では、前ページに配慮した正しい紐の結び方を見つけた際に、ほかの参加者へ公開し、「正しい」という確認を取ってから次のページを綴る作業に移行する。これを繰り返すことでブロックチェーンが生成されていくイメージだ。当然、少人数で正しい結び方を探そうとすると膨大な時間が必要だが、大人数で試行錯誤すると、比較的短い時間で正しい紐の結び方を探し出せる。

上記の作業が繰り返されると、1つのページを綴るにも非常に大きな作業量と時間が必要になってくる。ましてや、途中のページを自分に都合の良い内容に書き換えて差し替えようとしても、既に複雑な綴り方で多くのページが綴られているため、綴り直すのに非常に大きな労力が必要で、現実的ではない。最新ページの書き換えについても、参加者全員の労力にはかなわないため、現実的でないといえる。このように、書き換えが難しいことがブロックチェーンの安全性を保っているわけだ。

「Block Withholding Attack」では何が起きたのか

さて、ここでモナコインの話に戻ろう。モナコインの受けた「Block Withholding Attack」とは、ハッシュ能力(計算能力)の高いマイナー(記録作業を行う人々)が、生成した一連のブロックを隠し持ち、一定時間経過してから生成したブロックを一度に公開する手口だ。この攻撃によって、一定期間、ほかのマイナーが行うマイニング(採掘)の邪魔をすることができる。

ブックレット利用者が数人しかいない場合、紐を結ぶのは手作業でも問題ないが、利用者が増えていくと、専用のマシンによる効率的な製本作業が取り入れられるだろう。

しかし、仮に手作業でルーズリーフを綴じている小規模なブックレットのコミュニティに対して、1人だけ機械を導入したらどうなるか。手作業よりも機械のほうが効率的なので、自分の思い通りにページを追加することができるはずだ。つまり、ページを都合のいい内容に書き換えて、ブックレットに挿入することも可能になってしまうのである。

ハッシュ能力のアンバランス問題解決に向けた試行錯誤

昨今では、ビットコインをはじめとした仮想通貨が注目を集めている。世界の0.5%もの電力を消費しているという報道もあるほどだ。ASICと呼ばれるマイニング専門の機器が登場し、マイニングで人気の仮想通貨を得ることが苛烈になっていくだろう。

もし、そのマイニングパワーの矛先が、利用者の少ない仮想通貨に向けられたらどうなるだろうか。膨大なマイニングパワーを持つマイナーが悪意を持っていれば、情報を書き換えることができてしまうはずだ。

今回問題が起きた「モナコイン」は、海外取引所でも扱われる規模の仮想通貨だが、より規模の小さな通貨の場合、同様の攻撃を受ける可能性は高まるだろう。

実はこの問題、以前から議論されていたテーマであり、ASICや量子コンピューターなど、マシンスペックの著しい向上によるハッシュパワー偏在の影響を避けるための試行錯誤がすでに始まっている。

例えば、「プルーフ・オブ・ワーク(PoW)型」を維持しつつ、急激なハッシュパワーの変化に対応した方法をとる仮想通貨がある。一方、別の仮想通貨では、全体の発行済み仮想通貨の持ち分比率(Stake)により重要度を決定し、ブロックの生成を行う「プルーフ・オブ・ステイク(PoS)型」を採用しようとする動きもあるのだ。

仮想通貨の問題、どの様にとらえるべき?

世界中で仮想通貨の存在が意識され、何らかの形で関わるようになった関係者は確実に増えたといえる。しかし、関係者の増加に比例して、さまざまな問題も顕在化してくるだろう。ただし、これは100%悪いことではない。問題発見と試行錯誤を繰り返すことによって、さまざまな利用シーンにおいて実用に耐えうる仕組みが生まれてくるはずだ。

同時に、仮想通貨に関心を持つ関係者の目線から、それぞれの通貨の設計思想や仕組みに注目することで、よりよい仕組みが見つかるかもしれない。また、開発コミュニティに仮想通貨の技術仕様の改善提案を行うことで、気に入った仮想通貨をより価値の高いものにできる可能性もある。インターネットがより進化していく過程で、それぞれの仮想通貨の技術や仕様に関心を持つきっかけになればいいと思う。

まだまだ黎明期の技術だからこそ、ある人の「こうすればいいのに」というアイデアが、今日のブロックチェーンの様に、思いもよらない形で世界の注目を集めることがあるかもしれない。

著者プロフィール

齋藤亮
SBIバーチャル・カレンシーズ代表取締役副社長

2010年、SBIホールディングス入社。SBIグループにて、主に経営企画・事業開発に従事。
2016年、SBIバーチャル・カレンシーズ株式会社 代表取締役に就任、日本初の仮想通貨交換業者として登録を果たす。
2017年より仮想通貨事業者協会(JCBA)理事。

SBIバーチャル・カレンシーズ

 バックナンバー