Bitcoin Talk にようこそ

I: Bitcoin Talk にようこそ。Matthew Zipkinです。今回は Makoto Takemiya 氏と Jeff Mcdonald 氏、そして Lan Wang 氏がそれぞれ東京、韓国、マレーシアからそれぞれ参加してくれています。
彼らはデベロッパーであるとともにNEM: New Economy Movementのチームでもあります。皆さん、調子はどうでしょう?

M: 良いです。
L: どうも。

I: 私は Makoto が NEM の創設者だと思っています。
そこであなたがこのプロジェクトに時間を費やすモチベーションについてお話してもらえませんか?

M: 私が創始者と言われて良いのかわかりませんが、少なくともチームが発足した当初からのポート開発者であることは確かです。私は、ユーザーが簡単に取り扱え、安全に自身の資産運用を行う事ができて、既存のプラットフォームに伴う問題を修正できるようなプラットフォームをゼロから作ることに大きなモチベーションを持っています。

I: 既存のプラットフォームとは、Bitcoin と似たものという意味ですか?

M: そうです。そして、NEM のフォーク元となる予定だった NXT やそれに似たプロジェクトは文字通り何百と世の中にあります。

I: NEM は NXT のフォークでは無いのですか?

M: いいえ、NEM はゼロから開発されたものです。NEM は実際にはコインではなく、プラットフォームと位置付けています。

I: すなわち、NEM は新しくゼロから書かれたコードのプラットフォームであるという事ですか?

M: ええ。私たちは昨年の1月から開発を行っています。プロジェクトが開始されてから、およそ1年と8ヶ月程度です。

I: では、NEMの機能で Bitcoin と異なる部分を教えていただけますか?

M: まず全体の構造がまったく Bitcoin とは異なります。例えば、Bitcoin D、これはクライアントとサーバーを、誰もが稼動させている Bitcoin Core Application で併合させています。私たちは、NEMにおいて、それらの異なる2つのプロジェクトとして作成することで、機能を分離させました。1つは専用のサーバーで、もう1つは専用のクライアントです。そして全ての暗号通貨取引の裏づけを自身のサーバーで稼動させなくても良く、クライアント側で行う事もできます。したがってモバイルアプリを用いたとしても、iPhone 上でサーバーは稼動しません。ただリモートサーバーに、安全に接続するだけです。そしてそこにトランザクションを送る事ができます。これは Bitcoin でも実現できない訳でもありませんが、私が思うに、コードベースは最近デザインされたものなので、より困難になるでしょう。

I: 2つの異なったプログラム・アプリケーションを包括的に取り組む事を始めたというのは興味深いですね。

M: ええ。もし最初から2つのプロジェクトに分割してた場合、私たちのポート開発者は
Venmo や Mint といった類のアプリケーションに精通していなければいけません。ですので私たちはNISとNCCを用いています。NISは NEM Infrastructure Server の略であり、全てのブロックチェーンに関する”魔法”を起こすものです。また NCC は NEM Community Clientの略です。そして私たちは今後、別の NCC が他の人々によって作成され、同様にモバイルアプリケーションも作成される事を期待しています。

I: では、どのように2つのアプリケーションを実行するのでしょうか?またそれらが Full Node や、私たちが Bitcoin を保存している Simplified Payment Verification(SVP)ウォレットとどのように関連していますか?

M:はい、SVP はある意味で似た類のアイディアではあります。いくつかの違いはあるものの、関連しています。当然、NIS は Full Node であるという事になります。NIS があらゆるブロックチェーンデータを保存しています。

J: SVP はブロックチェーンのヘッダーのみをダウンロードして読み込みますが、NCC はフルブロックチェーンにアクセスできます。これが SVP との基本的な違いです。

I: NCC はトラストレスにブロックチェーンヘッダーをダウンロードすることになるのですか?

J: いいえ。NCC は NIS で動作しています。そして NIS はフルブロックチェーンを所有しているサーバーですから、比べて NCC は基本的に非常に貧弱なクライアントになるわけです。

M: Adjacent Interface を介して互いにやり取りができる様にする Web アーキテクチャなので、NCC はサーバーから全てのデータを取得する事になります。信頼できる自身のサーバーを使うにしても、インターネット上のランダムなサーバーを使うにしても、誰も秘密鍵にはアクセスできないですし、コインを盗む事もできないので、恐らくそれを信頼する事になるでしょう。しかし、正確かつ全てのデータを取得して、自身のサーバーで扱いたいと考えるなら、カジュアルな用途を除くと私が思っている程それは重要ではありません。

I: なるほど、わかりました。ですが NCC はいまだブロックヘッダーを検証しているのですか?あるいは、完全に未検証のままなのでしょうか?

J: NCC は現時点で、トランザクションの明確化は行ってはいませんが、なんらかの理由で希望されれば、表示されるデータを完全に検証するクライアントを変更したり、新たなクライアントを作成することが可能です。しかし、リモートサーバーにアカウントの秘密鍵を与える事はありませんから、誰もコインを盗んだりできません。悪意のあるノードは誤った情報しか与える事ができないので、大した問題にはなりません。どうしても安全を期したいということでしたら、とにかく自身のサーバーでブロックチェーンを扱うことです。

I: ではこれより、NEM の背景にある、非常に興味深い Proof-of-Importance(PoI)に話を移しましょう。ですがその前に、ある程度で結構ですが、どのように Proof-of-Stake(PoS)が働いているのかについて説明していただけませんか?それから、皆さんがPoIを作成するにあたって PoS に施した改善について話していきましょう。

M: PoS の実装は非常に沢山ありますが、私が思う PoS を用いている NXT のもっとも原型的な働きは、採掘難易度(Difficulty)の計算において、アカウントが持つステークにランダムな数字と共にウェイトを充てているという事です。私には NXT のランダムな数字については知り兼ねますが、恐らく誰もが検証できる公開鍵のようなものでしょう。アカウントはランダムな数字を使ってランダムに表されています。そうする事でステークに与えられるボーナスも多少ですが発生します。より高いステークを持つ人々がブロックを作成する可能性が高くなるのです。

I: PoI は時間が経過すればするほど、Difficulty は低下していきますか?それに基づいて最終的に誰かがブロックを発見するという事ですか?

L: 私たちは NEM に、Peer-to-Peer(P2P)タイムサービスを用いています。これによって短時間で計算が終わるようになります。時間が経つにつれ、Difficulty は低下していきますし、ブロックを作成する事ができます。また確率論的に言っても、ノードを稼動させてブロックを作成する人々が非常に少なかったとしても、新たなブロックを60秒ほどで作成する事ができます。事前に作られたブロックによって、Difficulty は調整されるのです。他の暗号通貨では、このような事はできません。

I: なるほど。皆さんが60秒のターゲットブロックタイムを設けて、自身のタイムサーバーをインターネット上に実装したのは興味深いですね。それに他の暗号通貨がそうしていなかったというのも知りませんでした。皆さんはどうしてアカウントの重要性に焦点を当てたのですか?それはどのように働くものなのでしょうか?

M: それは単体でも非常に大きなトピックですね。なぜ重要なのかということの理由についてお話させて下さい。ブロックの Difficulty を制御するためにある種のタイムアウトするサービスが必要になりますが、ブロックタイムを設ける際には、60秒というのは非常に的確なものとなります。それに加え、セキュリティー機能もあります。実際に、ブロックだけでなくトランザクションの時間も計りますので、トランザクションに関する制約によって二重支出のような課税を行う事はさらに難しくなります。P2P タイムサービスの魅力はほかにもあります。私たちはそれぞれのノードにそれぞれの時間を持たせ、自身のピアによって定めさせる様にしました。これによってそれぞれの Important Score に基づく待ち時間に、わずかなずれが生じることになります。ピア・ノードはそれぞれサンプルに基づいて計算を行うので、まずはサンプルをまとめ、いくつかのラウンドにおいて計算を行います。そしてそれぞれのラウンドは、悪質なノードが侵入し、ネットワークの時間を早めてしまわないよう、与えられた時間いっぱいまでしか変更する事ができません。もしいずれかのピアが予想された時間の枠を超えて時間を指定した場合、たとえば、時間が長かったり、想定している時間と異なるような場合には、このピアを除外することになります。そうしてアルファトリミングを行い、異常値が除去され、各ノードは独立して時間を計算するのですが、ネットワークが収束することによって、計算された同期時間に収束するのです。

I: それはネットワークの遅延を考慮したものなのですか?

M: モデルは通信時間を考慮に入れています。そのためにリクエストとレスポンスのルートを用いるのです。

I: なるほど。では私から質問です。ネットワーク内の全てのノードが時間と同期されていて、トランザクションを時間と照らし合わせているのならば、二重支出を防ぐのには十分だと思われるのですが、なぜブロックチェーンが必要になるのでしょう?

M: はい。それぞれのピアには自身の時間を計算するために、時間の分散が生じます。といっても大変なものではなく、数秒以内のものです。全てが収束すると、私の見立てでは300ミリ秒近くになると思います。しかし、それだけでは実際の時間を決めるのには十分ではないのです。中央集権化されたものを置けば、信頼のできるタイムサービスを提供できますが、NEM は既に良質なタイムサービスを持っており複雑なブロックチェーンのパートが必要無い為、ブロックチェーンを使用しても問題ありません。

I: NEM は明らかに非中央集権化の、いかなるサードパーティーに依ったタイムサービスも利用しないプロジェクトのもとに働いているために、タイミングの同期性は金銭的な安全のためでなく、ネットワークの働きを助けるものであるということなんですね。

M: ええ。私たちはそれを、ブロックタイムを規定の60秒に収束させるために使用しているんです。

U: ユーザーの視点から言えば、暗号通貨にかかわり始めたころ、異なるプラットフォームにてブロックチェーンストアを閲覧するのが主流だったので、NEM は本当に気に入っています。またブロックは時に、他のものより後に送られたにも拘らず、先に到着する事がありました。これは異なったマシンがそれぞれの現地時間にあわせて、統一された時間を使っていないためですよね。現在では殆どのコンピューターがインターネットとそれぞれ同期しています。ですが時に、タイムスタンプをオフにするような、それぞれのコンピューターがそれぞれの時間を使用しているような事が、ブロック上で起こります。ですが NEM を用いれば、全てのブロックが、ブロックの前にタイムスタンプを持つことを保証する統一されたプロットタイムを得る事になるんです。

I: では PoI に移る前に、Bitcoin や Proof-of-Work(PoW)、電気代を半分にまで抑えた PoS についてお尋ねしたいと思います。”nothing at stake” 攻撃というような潜在的な攻撃に対する研究も行われていますが、皆さんは PoS モデルの脆弱性についてどのように取り組んでいらっしゃるんですか?

M: はい。nothing at stake は PoS への第一の反論だと思うんですが、あまり理解されていないことですから、私が手短にご説明します。まずは Bitcoin ですが、複数のフォーク後のチェーンをマイニングしようとすれば、異なったフォーク毎にマイニング設備を稼動させなければいけませんね。またそれぞれのフォーク後のチェーンでブロックを作成しようとしても、これには電気や時間を要するのですから、現実問題として、ブロックの作成は一度に1つのチェーンでしか行えないわけです。一方、PoS であれば、同時に複数のフォーク後のチェーンをマイニングする事ができます。PoS ではサンプリングから、確率分布に沿って全てが行われるので、同時にマイニングする事が容易になるのです。nothing at stake では、誰もができるだけ多くのブロックを、ブロックがメインフォークにあるかどうか、メインフォークが何であるかに関わらず、トランザクションの手数料のために作成しようとします。誰もが常に、毎回自分のステークスをすべてのフォークに帰属させます。そしてある理由によって、たとえ多くのステークを持っていなくても、たくさんの人が誰かのフォークにとても簡単に加わる事ができるのです。ある理由とは、誰もが可能な限り多くのお金や手数料を得ようとする動機です。しかし、これを同時に誰もが行った場合、通貨の価値はゼロに近づいてゆきます。ですから、そもそもこの議論は矛盾している訳です。誰もがお金を欲しがっているのに、この方法を取ると通貨の価値が無くなって参加者は一文無しになってしまうのです。理論的には成立しているように思われますが、非常に非現実的なのです。例えれば、自動拳銃でロシアンルーレットをするようなことでしょうか。

I: 負けが約束されている(笑)その攻撃の背後にあるアイデアは、できるだけ多くのフォークを気にすることですね。自身の公開鍵が次のブロックを帰属させるフォーク後のチェーンを探さなければ、2つのブロックを持ってしまうので、そのブロックの後に起こっているすべてのフォークを見る必要があります。基本的に唯一のマイナーのチェーンにブロックを繋ぐべきですね。

M: 私が言いたいのは、NEM は6時間後にはフォーク後のチェーンはもう分岐できなくなっているという事です。6時間より時間が経ったフォークは、現在のチェーンに置き換わりません。これがセキュリティー機能の1つでもあります。もし量子スーパーコンピュータをお持ちなら、コインを使ってその発端に戻る事も出来ます。

I: なるほど。コードにはいくつかチェックポイントがあるとは思いますが、基本的にはあなたが正しいようです。過去6年間に Bitcoin ネットワークが既に開発していたものより何らかの形で大きな力を発揮できれば、理論上はブロックがゼロの状態からチェーンを書き直せます。

M: 私たちは6時間のリミットを設けることで、あらゆる変更が6時間以内になされるように設定しています。Bitcoin では2週間毎に計算しますが、NEM の Difficulty はブロック毎に計算されます。ブロックはそれぞれ自身の Difficulty Score を持っていて、以前のブロックと比べ5%を超えないように計算されています。非公開でマイニングをするにしても、他の人々の参加を認める場合にも、始めはブロック毎に5%しか変更することができないのです。また Difficulty を変更するのには長時間を要するので、全てのステークスでマイニングをすることはできません。喜ばしいことに、これが6時間のリミットと合わさって、あらゆる主要な攻撃を非現実的なものにしているのです。現実には、nothing at stake は理論上の問題に過ぎないと私は考えています。それが初めてだったのかは分かりませんが、theorem のチーム等が、PoS によって拘束力を持たせたシステムを紹介していました。攻撃をやめさせるために、複数のフォークへの参加を、資産が減りうるものにするという考えは私は面白いと思います。

I: なるほど。制限を超えてハーベストを行おうとすると、ブロックをマイニングしている間にはそのお金を使用することができないのですね?

M: 理論上は可能だと言えます。ただ現実的な問題でも、心配するような大事でもないのです。

U: 現状、制限はありません。ただ、残存するコインの10%は30日を過ぎると風化していきます。オフィシャルな制限はありませんが、風化した大量のコインをアカウントに送金させず、それらですぐにはハーベストやマイニングをさせない方法があるのです。

I: NEM:XEM を受け取った際、ステークを纏めるアカウントにコインが移るまでしばらく待たなければいけないのはそういうことなんですね。待つことで、ブロックをハーベストするのに十分なコインが手に入るのですね。

M: 権利を与えるのにおよそ30日かかるのです。

I: では、皆さんの素晴らしいプラットフォームである、PoI に話を移しましょう。この新しいコンセンサスアルゴリズムを作るために、皆さんは PoS で何をなされたんですか?

M: 具体的に、どのように行われているのかご説明します。コインを作ろうとする各段階では、ヒット値とターゲット値が定められます。ヒット値はランダムな数字で、以前までのブロックと、公開鍵を持っている人々に基づいて定められています。公開鍵は誰にでも確認できます。ヒット値がターゲット値を下回った場合、ブロックを作成し、得ることができます。ターゲット値は、最新のブロックが作成されてからの経過時間に基づいて定められています。またアカウントの 重要度(Importance)にも関係があります。アカウントの Importance とは、ブロックの Difficulty を新たなブロックの Difficultyで 割ったものです。なので Importance が高くなれば、ターゲット値も高くなります。そしてヒット値がターゲット値を下回った場合は、ブロックを作成することができます。PoS においては、ターゲット値はアカウントのステーク、アカウントの持つアセットの量、そして Importance によって計算されます。ここで Importance について少しお話しましょう。我々が PoS を用いないのには主に2つ理由があります。第一に PoS では、多くのブロックを作成する人が多くのお金を作り出します。理論上、これは新たな経済活動の素晴らしいモデルとは言えませんから、もっと平等な新しいモデルを考えることにしました。もう一つは、Importance が新たなブロックを作成する以外に使い道があるという理由です。たとえば一票の価値を、簡易税を停止させる目的で、Importance を使って上げることができるのです。Importance とは言わば、度量衡の一種です。経済全体へのアカウントの貢献度を測る価値基準なのです。資産はあまりないが、経済活動へより貢献している人を評価することこそ PoI の背景にある考え方であり、我々が Importance を使用する理由なのです。お望みでしたら、いかにして Importance が計算されているかもお話いたしましょう。

I: Importance は Score のようなもので、トークンのような、受け取ったり送ったりできるものなのですか?

M: いえ、計算された Score ではありますが、ゼロサムなのです。システム内の全てのアカウントの Importance は合わせて1になります。誰かの Importance が上がれば、それ以外の人の Importance が下がるのです。逆もまた然りです。

I: なるほど、NEM ユーザーは、パーセンテージを占めることになるのですね?

M: その通りです。

では、Importance は何によって上がるのかについてお話していただけますか。

M: Importance というのは、トランザクショングラフに基づいた、理論上の重要度を図で示したものなんです。これまで、トランザクショングラフは非常に価値あるデータだったにも関わらず、誰にも見向きされませんでした。Google や Facebook、Twitter 等はお勧めや検索を行うためのアルゴリズムに基づいたグラフを用いていますが、いくつかの理由から、暗号通貨に携わる人々は、トランザクショングラフを使いませんでしたし、どんな類のグラフに基づく計算でさえ、本当にしてこなかったのです。Importance Score のもっとも面白い部分の一つなのですが、Importance とトランザクショングラフを用いて、我々はグラフの中から重要なノードを見つけるアルゴリズムの改善されたバージョンを使用しています。現在、我々が使用しているアルゴリズムは、支出をリンクするためにいくらか不安定なものになっているので、他の要因も加えることにしました。その一つはアカウントの持つステークです。理由は、ネット上で既得されたステークではありますが、既得のステークと、確定されたスケジュールを持っているためです。多額のお金を受け取ろうとしたり、送ろうとしたり、または送った額よりも多い額を受け取ろうとしたりする場合、Difficulty はネット上で既得されたステークを計算するために減少します。Importance に関して言えば、お金を受け取るより送るほうが良いということです。実際に NCD があるアルゴリズムによって認識している Score は、よく知られているというわけではありません。しかしその Score は、グラフ理論に基づいて、多数のアカウントからお金を受け取ろうとした場合に高くなります。誰かに送金しようとしたり、複数のアカウントから受け取ろうとすることが、トランザクショングラフにおいて、自身のアカウントをより良いものにすることに繋がるのです。トランザクショングラフというのは、経済活動の量的表現であると言えます。またさらに特徴があり、日本の NTT で開発された scan ++ を用いてトランザクショングラフをクラスタリングしています。このアルゴリズムは大規模なグラフではうまくスケーリングされ、三種類のノードを発見します。クラスタ内のノードとクラスタを補間するハブを発見し、稼働中のアカウントやノードの、異常値を見つけ出します。異常値やハブのアカウントは高い Score を得られませんが、クラスタ内のアカウントは、高い Score を得ることになります。ですから、クラスタ内に入ることができるよう、他のアカウントと相互にやり取りしようとすることになるのです。

I: ネットワーク構造のマッピングはトラストレスに行うことができ、ノードがどれほどよく関係しあっているかというような、コンセンサスの分配の一環だということですか?

M: ええ、トランザクショングラフでは、全てのトランザクションはブロックチェーン上で認識されます。トランザクショングラフは全てのノードによって独自に計算され、まったく同じ結果を得ることになります。フルブロックチェーンへのアクセス権を持つノードで計算を行えば、全てのアカウントと同じ結果を得ることができます。

I: ハブやクラスタ、異常値等お話してきましたが、これはお金を相互にブロックチェーン上でやり取りするアカウントについてのことですか?それともインターネット上の実際のノードについてのことでしょうか?

M: アカウントのことです。私は大学でグラフ理論を学んだので、アカウントの代わりにノードという言葉を使うこともありますが、私たちの話しているのはシステム上のアカウントのことで、インターネットノードのことではありません。

I: なるほど。皆さんのモデルは、お金のやり取りの高速化を目指すものなのですね。

M: そうです。そういった高速化は、経済モデルにおける切実な要求ではないと言う人もありますが、個人的な意見として、健全な経済活動を実現するためには、お金のやり取りがスムーズであるべきです。私は多くを経済学者の Herbert Simon 氏から学びました。AI 研究の大家であり、ゲーム理論や物理学など、あらゆる分野で功績のある方です。ノーベル経済学賞も1970年代に受賞されました。氏は市場は合理的なものではありえず、またどうして合理的でないのかについて多くを語っています。ノーベル賞を受賞されたのも、人間が合理性に縛られていることを示す学説を発表したからです。脳内のニューロンの活動には100マイクロ秒もの時間がかかります。心を落ち着けようとした場合、相互にやり取りする何百ものニューロンが情報を処理するのに、数マイクロ秒かかります。世界中の全ての情報にアクセスできたとしても、ニューロンの活動に要する物理的な時間が足りないので、その全ての情報を処理し計算することはできません。現実には、全ての情報にアクセスすることのできる人なんていませんが、人は合理性に縛られているので、市場は創造的な人の営みでもあり非合理的なものでもあるのです。これは市場が粗悪なものであるとか、最適化を行っていないという事ではなく、市場は単に、最適ではないのです。最適化を行っているのと、最適であるのとには隔たりがあります。最適に近づくことはできても、数学的な確実性を得ることはできません。経済問題の多くは、こうした最適化による変化によって引き起こされたものです。つまり、お金のやり取りの高速さは、市場の非合理さのために、経済モデルに必要な要素だということです。トランザクションを計算とみなすのであれば、可能な限り自由な変動為替市場の実現のために、できる限り多くの計算を行って、ある種の最適に近づこうというのが私の考えです。

I: なるほど。つまり、自由市場は素晴らしいモデルではありますが、アクセスする人のために完璧ではなく、またお金のやり取りの高速化を促すことによって、モデルの最適化を助けるのですね。この考えはハーベスティングを行う場合に重要なのですね?ブロックのマイニングを考慮しなければ、報酬がハーベスティングを容易にするので、ハーベスティングを気がかりに思うことはありませんし、単にユーザーの一人であれば、ハーベスティングを行わないので報酬は影響を及ぼさないということですね?

M: ええ。ほとんどのユーザーはハーベスティングを気にかけたりしませんから、Importance や、自身の Importance Score を気にはしません。しかし、Importance Score には別の使い道も生まれつつあります。私たちはいくつか取り組んでいることがあり、その一つが評価システムです。現実世界で分散型の取引を行うためには、評価が必要です。Amazon や ebay、Yahoo オークションについて勉強すると、それらの Web サイトが機能している理由は、唯一取引者が評価を得ているためです。出品者は評価を得ており、それによってある種の信頼があるのです。取引する相手を知らなくとも、それまでのレビューを見れば相手が詐欺をするような人ではないことが分かり、商品を購入することになります。評価を用いたり、悪意ある人に欺かれ得る非中央集権化のシステムにおいて評価を得るためには、あらゆる評価にウェイトを与え、ウェイトを与えるための何らかの基準が必要です。オンライン評価システムのように、経済活動により大きい貢献をする人が、より高い評価を人につけることができるようになるように、私たちはその基準に、Important Score を用いようと考えています。Importanceはノードへの評価システムです。レビューに基づくものよりも、この評価システムをより優れたものにするために私たちは Importance を使用します。

I: 従来の評価システムを第二の評価基準として使用しようと考えていますか?それとも、Importance に統合してしまうのでしょうか?

M: 統合はしません。Importance はブロックのマイニングではなく、人々の相互関係に使用します。

I: 報酬でお金のやり取りを高速化させ、自由市場を促進することが NEM の背景にある理念なのですね。この理念が今回のシステムを作るモチベーションなのですか?

M: 成功するかどうかは分かりませんが、開発者の眼から見て非常にシンプルで、強固で、誰にでも使うことのできるプラットフォームをローンチしたいというのがモチベーションです。ブロックチェーンはソートされたデータを分配し、多数のノード間でデータを共有することで、非常に安定したネットワークをもたらし、世界を変えることができます。ですが、NXT や Bitcoin のようなプラットフォームでは、そのための発展が難しいのです。Bitcoin のブロックチェーンを処理するためのコードを書いたことがあるか分かりませんが、本当に苦痛で、まったく面白くないんです。そこで、私たちは早くて軽い、簡単に扱える開発者用プラットフォームを作りたかったのです。例えばエネルギーの使用の問題を修正するために、PoW の代わりに PoI を使用できます。また、Bitcoin はマルチシグにも問題があります。最低でもセットアップに一日はかかりますし、スペシャルウォレットを使用しなければいけないので、非常に困難なものなのです。そこで私たちは、スマートコントラクトのような、ブロックチェーンに基づいたマルチシグを用いることにしました。NEMのマルチシグは MVN です。そのため1つのコマンドであなたのアカウントをマルチシグアカウントにし、そこへ署名者を追加する事が出来ます。設定は10秒でできます。これは本当に美しいシステムであり、私たちはこれまでに大規模な損失やハッキングを被っていません。

I: なるほど。では、チェーン上のマルチシグシステムがどのように機能するのかについてお話していただけますか。

M: それは誤解の多いところですね。ご説明します。NEM ではさまざまなトランザクションのタイプがあり、開発サイトの(bob.nem.ninja.docs)では、全てのトランザクションについて説明されています。マルチシグアカウントのマルチシグとその署名者は、アカウントのメタデータではなく、ブロックチェーン上にあるものですので、マルチシグアカウントを作成する際には、ブロックチェーン上で新しいトランザクションを作成することになります。そのデータはブロック上に保存され、トランザクションを作成した人全ての署名がなされていることの証拠となります。そうして、特別なトランザクションのタイプを使用することで、ブロックチェーン上で自身のアカウントをマルチシグアカウントにすることができ、いつでも署名者を追加したり除外したりすることができます。マルチシグアカウント上の署名者は、アカウントの残高と同様に安全です。なぜなら、署名者は、ブロックチェーン上のトランザクションであり、他とは異なったトランザクションのタイプだからです。更なる特徴として、MマルチシグとM of Nマルチシグがあります。例えば、M of N を5 of 5にしたとき、ブロックチェーン上でトランザクションを作成するためには5人の署名者全員の署名が必要になります。これには24時間など、時間制限があります。

I: では、チェーン上でマルチシグを有効にする前に、全参加者の署名と同意が必要になるのですね?

M: はい。全員の署名が必要です。

I: チェーン外でマルチシグアドレスを構成する Bitcoin モデルと較べて、敢えて送金を行うような利点がありますか?

M: 使いやすさなど、たくさんあります。Lon が詳しく分かると思います。

L: 他のプラットフォームでは署名者はセントラルウォレットに署名しなければいけません。しかし NEM であれば、セントラルウォレットを介さず、トランザクションに直接署名することになります。これは大きな違いです。

I: なるほど。ではトランザクションをチェーン上で有効にする前に、誰もがトランザクションに署名しなければいけないのですか?それとも始めの一人が署名して、採掘が行われ、ブロックチェーン上にあっても、他の人が別のトランザクションを作成するまでは実際にお金が移動することはないのですか?

M: いえ、作成時のマルチシグトランザクションは保留の状態にあるので、実際に全員が署名するまではブロック上に作成することはできません。

I: 他の署名者とブロックチェーン外で共同して行わなければいけないのですね。

M: P2P ネットワークにあるサーバーの NIS で全て行われます。ピアはそれぞれに通信を取り合います。もし制限時間内に署名が行われなかった場合、トランザクションは消滅します。

I: Bitcoin のようなマルチシグも実装されているのですか?それとも、チェーン上で行うモデル以外は考えていませんか?

M: チェーン上で行うモデルだけを使用します。

I: 他ではいくつかのトランザクションタイプがブロックチェーンに追加されていますが、それらはお金を誰かから別の人に移動させるだけのものです。皆さんは他に新たなトランザクションタイプを実装しましたか?

M: マルチシグアカウントはそうですね。署名の変更もそうです。さらに、もう一つ面白いのは Importance の移動です。私たちはアカウントからアカウントへの Importance のオンチェーンマッピングを使用しています。これのなにが便利なのかお話します。例えば、10,000ドルの価値があるなら、ブロックをハーベスティングしたいと思うでしょう。ですがマルチシグであっても、自身のノードへのハッキングやその他の攻撃のことを考えれば、アカウントをオンラインにしハーベスティングを行うのは心配です。そこで私たちは、いわゆるハーベスティングの委任(デリゲート)を作りました。ボタンを一つ押すだけで、クライアントがハーベスティングのデリゲートの開始を宣言します。クライアントはブロックチェーン上に特別なトランザクションを作成し、そのトランザクションが、その他のアカウントが一定以上の資金なしにハーベスティングが行えるよう、アカウントからアカウントへのマッピングを作成します。これには Importance を使用します。またハーベスティングを行うアカウントは、手数料を回収します。手数料は親アカウントに戻されます。つまりあるアカウントとリモートアカウントとの、一対一のマッピングということです。

I: なるほど。ですが Importance を送られた、代理としてマイニングを行う人はなんらかの利益が得られるのでしょうか?

M: いえ、なにも得られません。

I: では何がインセンティブになるのでしょう。

M: Importance は誰かのためにあるのではなく、自分の安全な未来のために使用するものなのです。将来、投票のようなものを設けた際には、ブロックチェーン上での民主制のデリゲートに用いることができるでしょう。これが私たちの構想の一部です。どれだけ話していいのか分かりませんが、NEM のテストネット上では実際にアセットを実装しています。NEM でのアセットは基本的にカラードコインを意味し、モザイクと呼ばれています。NXT では単にアセット、Bitcoinでは、カラードコインと呼んでいます。なぜなら、実際に誰か対象を取り、そこにマッピングデータを送っているからです。COunterparty や、Omni などはそのようにしていると思います。NXT でも実際には、NEM のテストネットと同様、何もないところからアセットを作成することができます。モザイクは、特別なトランザクションタイプの一つです。モザイクについてはあまり情報を公開していないので、これが始めてということになります。NXT からお話しましょう。Fu と呼ばれるアセットを作成したとします。その名前は一意ではなく、1,000個だって作ることができます。ユーザーはアセット ID を検索することで、一日中、正しい Fu を探すことを楽しめるでしょう。これでは、アセットが正しいのかそうでないのかや、誰が作ったのかなどが、全てを調べつくすのが難しすぎて分からないという問題が生じます。しかしインターネット上には、ドメイン名と呼ばれる、誰かとデータを結びつけておける方法が既にあります。Google.com にアクセスすれば、誰が作成したのかも、Google.com がその人達にホームページとして設定されていることも分かります。そこで私たちはそのアイディアを採用し、ドメイン名を設けることにしました。それは、ネームスペースと呼ばれています。最高レベルのドメインを設定できるよう、3つのレベルにドメインを設定できます。Jeff というドメインを作ったとしたら、そのサブドメインとして Fu を設定できます。さらに Fu のサブドメインとして、Bar というサブドメインを設定したとします。これで Jeff、Fu、Bar の3つのドメインを作成しました。これらが自分のネームスペースです。そしてそこで自分のアセットを作成することになります。どの層の下にもアセットを作成することができます。例えばあなたが Google だったとしたら、Google というネームスペースを作成することができ、そこで Fu という名前のアセットを作成することができます。誰もが Google.Fu というネームスペースだと分かります。また、この Fu は Google が作成した本物だということも分かります。アセットをネームスペースとリンクさせることによって、評価の基盤を築くことになります。さらに、本物と偽物の区別が付くので、詐欺に備えることがずっと容易になります。将来的には、非中央集権化のインターネットなど、ネームスペースを使ってできることがたくさんあります。

L: モザイクという用語の由来についてお話しましょう。Nick Sabo 氏は財産権や所有権について多くを語りました。私たちはこれをブロックチェーンでどのように実装するかを考え、計算や評価システムなど、財産権を保護するための多くのアイディアを追加しました。また、後にモザイクに発展していく、スマートタイルという財産権についてのアイディアも発想しました。Jeff はこのモザイクの背景にある考えの発想に、非常に貢献してくれました。実際、Jeff は Nick 氏の記事を全て読んでいると思います。Jeff、もう少し詳しく説明してもらえますか?

J: ある時期、Nick Sabo 氏は財産権に関する記事を作成していました。ブログで、彼はブロックチェーン上の、異なるものを表すタイルについて語っています。例えば、カータイルや、ID’s、ブロックチェーン上で安全を確保するために必要なもの等が、タイルとして数字で表すことができるのです。現実には、異なったタイルを統合するとモザイクが得られます。NEM において構想しているのは、ブロックチェーン上に一つのタイルを設けるのではなく、複数のタイルを統合して、パッケージやバッグ、コレクションにすることです。そうすることで、アセットやタイルのコレクションを所持することができ、誰かにそのコレクションを送ることができます。これが、メインブロックチェーン上でのタイルやアセットの機能をモザイクという名前にした理由です。

I: それぞれのトークンをどのように統合するのですか?グループにする必要はあるのですか?

J: そうしなければいけない事はありません。グループにすることが利益になる場合に、その選択肢が用意されているという事です。

I: 利益の多くは、評価で裏づけされることになるでしょうね。

J: はい。

M: 別の用途は、モザイク中のそれぞれのタイルやアセットに他の機能を追加することです。例えば、スマートコントラクトでは、モザイク内の分散したプログラムを使用できるようになります。またモザイクを用いてそれらのプログラムを統合し、グループ化できるようにすることで、異なったものをモジュール式に組み合わせることができるようになり、より良いものを作ることができるようになります。レゴのようなものです。例えば、レゴでは多くのブロックが非常にシンプルなので、それらを組み合わせて、作りたいものを作ることができます。

I: なるほど。その例えは、いくつかのトークンを組み合わせてモザイクを作ることができるというようなことでしょうか?

M: 例えば、基本的には Web サーファー用の契約のような、ストレージ、帯域幅、そして恐らくは CPU のためのストレージ契約のモザイクがあった場合、分散したプログラムであるトークンを所持することができます。そしてそれを組み合わせることで、分散したサーバーで働くプログラムを作ることができます。これは NEM の目標でもあります。他のもっと単純なケースとしては、銀貨のようなフィジカルコインを作った場合があります。銀貨に100 XEM の価値を与えたい場合、銀貨のアセットと100 XEM のアセットをリンクすることができます。これがモザイクであり、これをグループとして人に送ることもできるので、いわば物理的にブロックチェーン上で誰かにアセットを送るようなものです。ただ価値がリンクされているという点で異なります。

I: モザイク機能をメインネットに実装する際には、ハードフォークをする必要がないのでしょうか?

L: いえ、もちろん必要です。

M: PoW でないコインでは、匿名のマイナーが全てを管理していないので、ハードフォークを行うのはかなり難しいと思います。したがって PoS や PoI のブロックを作成する人々は、実際にシステム内にステークを持っているので、システムの成功を願っています。Bitcoin のマイナーもシステムの成功を願っていますし、それ以上に、運用コストの低下やたくさんの Bitcoin を得ることを願っているので、堅牢なシステムを作ることを嫌がったりしないでしょう。

I: 分かりました。では他に、まだ話題に上がっていない技術的な機能はありますか?

J: Bitcoinで、ノードが誤った情報を送信しないように、セキュリティー機能を持つことのできる新しい機能を XE に実装しようと議論が起こりました。Bitcoin のネットワーク上には Eigentrust ++ という、正しい情報を送信するノードにある種の評価を与えるものがあります。Makoto、もう少し説明できますか?

M: 私たちは基本的に、Eigentrust ++ を NEM の P2P ネットワークを保護するために実装しています。これは理論上、Eigentrust ++ アルゴリズムよりもほんの少し単純なものです。これが何なのかお話しましょう。ノードが相互に通信する際、3つの異なった結果があります。1つは有効で、ピアから受け取ったデータは正しいものです。もう1つはニュートラルで、データは正しいですが、既に持っていて、新しいものでない場合です。そして3つ目は無効で、データが不完全か、ハッシュが一致しない場合です。この3つの結果があります。評価には有効と無効の結果が関係あります。このアルゴリズムは多くの計算式から成っているので言葉で説明するのは難しいのですが、基本的にはノードが、有効か無効かの通信結果に基づいた評価に関するデータを収集します。ノードがそれぞれのピアと通信し、評価のデータを要請します。これを全員に、べき乗法で行い、全員から得られたデータに基づいてトラストスコアへと収束されます。また誰かが嘘をついている可能性があるので、ピア A
が送信してきたデータがピア B と同じタイプのものであるか確認しなければいけません。これは信頼値に収束し、P2P ネットワークの安全を確保し、信頼できるものにするために使われます。P2P データ送信の有用性を高めるために使われるのです。実際にブロックチェーンの安全を確保する必要はありません。シミュレーションでは、ネットワークの90%が不正確で、誤った情報を送信していたとしても、Eigentrust ++ であれば通信の失敗はわずか3.6%しかありません。Eigentrust ++ が悪意のあるノードをブロックするので、90%が悪意があり誤った情報を送るものだったとしても、96.4%の通信は正しいものであるということになります。難しいのは、不正なノードだったとしても、時には誠実なように振舞うということです。ですが、使用しているネットワークの90%が悪意のあるもので、正しいデータを40%しか送信せずフィードバックしない場合でも、80%以上の正しい情報を得ることが可能です。これを稼動させるのに大変な労力を要しましたが、実は新しいアルゴリズムではないんです。古典的なEigentrust ++ アルゴリズムや、私たちが実現できる物よりも少し複雑な論文は、既に存在しています。Eigentrust ++ や、通常の P2P ネットワークでは、データが正しいのかどうか検証することはできません。ですが、暗号を用いることで、暗号ハッシュを試行し、正しいか検証することができます。アルゴリズムを、一般的なネットワークよりも少し改善することができるのです。

I: 皆さんの仕事はどのくらい進んでいるのでしょうか?今年 Poloniex で取引が開始されましたが、他のマーケットプレイスではオープンされるのでしょうか?利用者はどのような人々でしょう?

M: 現在では2000人程度のアクティブユーザーがいます。彼らは積極的に NEM を使用し、NEMを取引所外のアカウントに所持しています。彼らが取引所でしていることを説明するのは難しいです。現在、NEM の唯一の使い道は投機なので、ユーザーは投資家であり、彼らはあまりコミュニティー全体に貢献しているとは言えません。中には素晴らしい人もいますので、テレグラムチャットグループや、セレクトチャットグループを設けて、そこで活発に活動しています。本当に前進するためには、本来の用途を無視して投機だけを行う投資家を乗り越えなければいけません。それに向け、いくつかの会社が設立されており、その内の一つはコミュニティーファンドから出資を受けています。NEMは多大な資産を確保しており、DA のような、プロジェクトを提案でき、出資を受けることのできる NEM コミュニティーファンドを設立しています。また最初のプロジェクトである、Crypto Apex が NEM コミュニティーファンドから表彰され承認されました。これは実際に登録されている会社であり、通貨や XEM、恐らくは Bitcoin やその他の貨幣間での暗号化された両替を目指しています。コミュニティーファンドから出資を受けた会社で働く人がいると思うと楽しいです。私は現在国際送金サービスに取り組んでおり、これも実際に登録を受けた合法の会社です。こうしたファンドが、多くのユーザーを惹きつけることになればいい、と考えています。他にもプロジェクトはあり、例えば、開発中の Photomeet です。Instagram に似たプロジェクトですが、写真の権利を売買することができます。投資家を乗り越えるためには、本当のユーザーと非常に明確ななにかが必要です。平均的な人々は、私のように”暗号オタク”ではありません。人々は暗号通貨ではなく、現実のお金、例えば円やユーロを望んでいます。そこで我々がすべきなのは、あらゆる暗号技術や、NEM の使用が理想的な状況に依るものだということを知らずとも、ただ使うことのできるサービスを作ることです。例えるなら、NEM は線路のようなものだと思います。NEM は非常に強いチタニウムで出来た広軌の線路です。その上で人を乗せて運ぶ列車を作る必要があるのです。その列車こそ、今私たちが取り組んでいるモデルのタイプです。我々は、素晴らしい線路を手に入れました。ですが、その上で使うことの出来る、車やエンジンを作る必要があるのです。

I: なるほど。もしプロジェクトに参加したい人がいたら、どこに行けば良いですか?

M: いい質問ですね。あまり親切なサイトではありませんが、NEM.IO というウェブサイトがあるので、まずそこにいくのが良いと思います。そこから私たちにコンタクトしやすくなるように取り組んでいます。また Facebook のグループもあります。

J: www.facebook.com/ourNEM です。そこで最新情報を得られます。また Twitter もあります。

M: twitter.com/NEMofficial です。Twitter は私たちにコンタクトを取るのに一番良い方法だと思います。

I: Makoto、Jeff、Lon、本当にありがとうございました。幸運を祈っています。

M: どうも。

J: ありがとう、Matthew。

L: ありがとう。

公開日: 2015年4月12日
出典: https://letstalkbitcoin.com/blog/post/lets-talk-bitcoin-247-understanding-the-new-economy-movement

ソース: https://blog.nem.io/lets-talk-bitcoin-247/

参考: http://nem.tokyo/2017/04/25/blog-20170425/

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です