紙幣の検査と検証によるコインのマイニング
StackMintのご紹介
本記事は、Ellcrysネットワーク内におけるコインの生成・配布スキームであるStackMintについてご紹介することを目的としています。Ellcrysについての理解を深めるために、まずこちらの記事をお読み頂くことをお奨めします。
StackMintとは
StackMintとは、新しいコイン(Ell)の生成と発行のために紙幣の検査と検証を行うプロセスのことを指します。 Ellcrysでサポートされている紙幣を持つ方であれば世界中のどのような方でも、ネットワークの検証プロトコルにパスさえすれば、StackMintを使って紙幣をネイティブコインと交換することができます。
StackMintを選ぶ理由
StakMintの優れた点は、その公平さにあります。Ellcrysは、コインの生成と配布に対してグローバルなアクセスと公平なアプローチを提供することを目指しています。このことは多くの人にとって有益なことであり、ただ専門的なマイニングハードウェアや安価な電力へのアクセスを持つ人にとってのみ不都合なこととなります。StackMintによって、誰でも自身の持つ法定通貨の保有量に応じてコインの生成に関わることができるようになります。一部の非常に裕福な人たちがコインの大部分の生成と所有に関与することになるため、一見するとこれは不公平なように見えます。しかし、StackMintを使えば、コインを獲得するチャンスを得るために最安値のマイニングハードウェアを購入するためにお金を節約したりする必要はなく、普通の人でもわずか100ドルでコインの生成に参加することができます。
仕組み
このセクションでは、StackMintの仕組みについてご説明致します。なお、記載されている内容の一部に変更が加えられる可能性があるということにご留意下さい。StackMintは検査(Scanning)と検証(Validation)という2つのルーチンで構成されています。
i. 検査(Scanning)
検査ルーチンには、紙幣の画像取得とネットワークへの送信が含まれています。スキャンされた紙幣は、他のトランザクションと同じようにネットワークに送信されることになります。紙幣がノードに受け取られると、その紙幣は紙幣アナライザー( banknote analyser)に送信され、検出ルーチンとフィンガープリントルーチンにかけられることになります。検出ルーチンでは、紙幣の発行国と単位名の決定が行われます。他方、フィンガープリントルーチンでは、紙幣の一意のデジタル表現を作成するために、紙幣のユニークな属性の収集が行われます。これによって、紙幣が重複して承認されること(または二重検査)が防がれます。不正防止対策として、スキャナーは紙幣を送信するときに多少の手数料を含める必要があります。
ii. 検証(Validation)
検証ルーチンは、「承認できない」紙幣を新しいコインとの交換から分離させようと試みます。検証ルーチンを正常にパスした紙幣のみが承認されることになります。このルーチンは、オンチェーン検証とオフチェーン検証の2つのステップに分けられます。
- オンチェーン検証: オンチェーン検証は、スキャンされた紙幣がネットワーク上のノードに受け取られた時に実行されます。オンチェーン検証をパスできなかった場合、その紙幣は次のステップ(オフチェーン検証)へと進むことができず、さらなる検証を受けることができません。
- オフチェーン検証: オフチェーン検証は、クラウドソーシング検証としても知られています。この検証には、紙幣および対応するフィンガープリントの信頼性と正確性を検証するためにステーキングを行う世界中の人々が関与することになります。ユーザーはオンチェーン検証をパスした紙幣を取り出し、注意深くフィンガープリントの正確性を吟味し、紙幣が「本物」であるという保証を与えます。その後、ステークを含めて、結果を送信します。大多数のオフチェーンバリデーターによって承認された場合、その紙幣は本物であるとみなされます。正しく検証を行った大多数のバリデーターは、正しく検証を行えなかったバリデーターから送られたステークを等しく配分します。
交換アルゴリズム
交換アルゴリズムによって、特定の紙幣をどれだけの量のコインと交換するかが決定されます。このアルゴリズムは、紙幣の額面を入力として受け入れ、Ellの数を戻り値として返します。また、このアルゴリズムでは難易度特性(Difficulty feature)が採用されており、これにより報酬額は毎年2%ずつ削減されていくことになります。リリース初期には、100万のスキャナーが検査ルーチンに参加すると見積もられており、紙幣の額面はその推定スキャナー数で分割されることになります。これには、現在の供給量を過度に膨らませることなく、数百万もの人々が検査に参加できるようにするという効果があります。初年度に1 Ellを得るには、およそ1,000,000ドルほどかかることになります。スキャナーの数は、毎年2%ずつ増加していくと見積もられています。JavaScriptによる実装は、以下のコードで確認することができます。
バリデーターのインセンティブ
前述の通り、紙幣の検証結果を送信したときに、オフチェーンバリデーターはコインをステークします。つまり、これがProof of Honesty(誠実さの証明)となるわけです。オフチェーンバリデーターは、検証をうまく行えなかったバリデーターの総ステーク + 交換されたEllの15%を等しく分配します。さらに、最初の検証ステップ(分析およびフィンガープリント)に参加したオンチェーンバリデーター(ノード)は、交換されたEllの15%を分配します。つまり、紙幣の所有者には70%がリターンして返ってくることになります。
よくあるご質問
どのようにして紙幣はネットワークに送られるのですか?
この機能は、モバイルウォレットアプリケーション内の機能として提供されることになります。そのような機能の中には、写真撮影、適切なトランザクションの作成およびネットワークへの送信などが含まれています。
オフチェーンバリデーターとしてネットワークに参加するにはどうすればいいですか?
オフチェーンバリデーターとしてネットワークに参加して頂くためには、ネットワークに紙幣の問い合わせを行ったり、検査のために紙幣を表示したり、検証レスポンスのトランザクションを作成したりする機能を持ったアプリケーションが必要となります。この機能は、ウォレットアプリケーションによって実現されることになります。
偽札の防止はどのようにして行われますか?
弊社では、不正利用者からバリデーターが検出できないような偽札が送られてくる危険性について認識しています。しかし、本物の紙幣を積極的に送ってくる人と比較すると、そのような不正利用者の数は極めて少ないと考えています。また、偽札を作成するコストが検証によって受け取る報酬額よりも大きくなるという可能性も考えられます。
今後どのような紙幣をサポートしていく予定ですか?
リリース時には、世界経済ランク上位30か国の紙幣をサポートする予定となっています。それ以外の紙幣のサポートも、ネットワークのアップグレードに伴い追加していく予定となっています。
上記のFAQに記載されていない内容で他に何かご質問等がございましたら、ぜひお気軽にメールでhello[at]ellcrys.coまでお問い合わせください。
Originally published at https://medium.com/ellcrys/