Counosコイン

 

 CSC  株式会社 

スイス

Counosコイン

 

概要

電子決済方法の完全なピアツーピアバーションを作るつもりである。この方法を通してあるユーザーは他のユーザーに直接的にお金を送ることができるようになる。金融機関がいらなくなる。デジタル署名はこのソリューションの中に入っているが、二重支出問題を解決するために第三者がいれば、大きなメリットなどがなくなる。よって、我々のソリューションは第三者がいないことという点に注目する。ピアツーピアネットワークを使って、二重支出問題を解決する。取引にタイムスタンプをハッシュする時に、ハッシュベースのプルーフオブワークの連息的なチェーンにハッシュする。そうすると、出来上がった登録はプルーフオブワークの再作成がなければ変更などできない。一番長いチェーンは今まで行われたエベントオのシーケンのプルーフにあるし、ネットワークの中で一番ちからが強いCPUプールから来る。

ほとんどのCPU力はネットワークをアタックするために協力したいノードがコントロールしなければ、正直なノードはアタックしたいノードより速く一番長いチェーンを作ることになる。ネットワーク自体はとても簡単な構造が必要である。メッセージの放送はベストエフォートベースで行われるし、ノードは自由にネットワークに入たり、出たりすることが可能である。再び入る時に、いなかった間にエベントが行われたが、一番長いプルーフオブワークを行われたことの証明として認めれば良い。ビットコインのアルゴと同じように、現在16.800.000コインがすでにマイニングされた。あと4.800.000以下のコインはこれから世界の人々がマイニングする。Counos Coinは第三者や中央銀行みたない組織がない。代わりに、弊社のプロのチームが頑張って、将来の使いやすさを目指す。


取引について

ある電気コイン(あるいはコイン)をデジタル署名のチェーンとして定義する。客保有者はコインを次の保有者に渡す時に、前回の取引のハッシュをシグナルする。次の保有者のパブリック・キーをコインの最後につける。支払いをもらう者は保有者のチェーンを確認したい場合、デジタル署名のチェーンを確認できる。

問題は、受取人が所有者の1人がコインを複製していないことを確認できないこと。ここで、一つの標準なソリューションを言うと、中央的な、信頼ができる組織、あるいはミントを導入する必要があり、その者はそのシステムに二重支出問題がないようにチェックする。支払いが終わった後に、コインはミントに戻らないといけないし、ミントは新しいコインを発行できるし、ミントだけが発行する権利がある。このソリューションの問題は、このシステムの運命は全てミントをコントロールする会社によって決まるし、客取引はミントを銀行のように通さないと行けないことである。

支払いをもらうひとに、過去にコインを保有していた人は以前の取引をサインしなかったということを証明しないと行けない。我々に取って、一番大事な取引は最初の取引である。最初の取引をちゃんと定義すれば、複数発行の問題に心配する必要なない。取引があったかなかったかということを確認するために、全ての取引を知る必要がある。ミントモデルでは、ミントは全ての取引を確認し、どんな取引が最初にくるかを決定できる。信頼できる第三者がないシステムでは、全ての取引を公開する必要がある(1)。また、参加するものがみんな一つのイベントの順番、つまり、一つの歴史に賛成するシステムを作る必要がある。また、受取人は、各取引の時点で、ネットワークのノードの大半がそれに賛成しているということやそれを最初にもらっているということのプルーフが必要である。

 

タイムスタンプサーバ

 

我々が提案したソリューションはタイムスタンプサーバーから始まる。タイムスタンプサーバーはタイムスタンプ付きレコードのブロックのハッシュを取り、それを新聞やUsenetポスト[2-5]で公開する。タイムスタンプはデータがその時点に存在したという証明になる。存在しなかったら、ハッシュがなかった。客タイムスタンプは前のタイムスタンプのハッシュを含み、客追加のタイムスタンプは前の追加のタイムスタンプを強くする。


プルーフ・オブ・ワーク

ピアツーピア分散型タイムスタンプサーバーを実装するために、プルーフ・オブ・ワーク型システムを利用しすべき。Adam Backのハッシュシステム[6]に似ている。ただし、新聞やUsenetの投稿を利用しない。プルーフ・オブ・ワークというのは、値を見つける仕事であり、SHA-256のようなアルゴリズムを使う。ハッシュはゼロビットのカウントから始まる。必要な平均作業は、必要とされるゼロビットの数に対して指数関数的増える。単一のハッシュの実行で確認できる。弊社のタイムスタンプネットワークの場合、プルーフ・オブ・ワーク実装する時に、ブロック内のノンスをあげる。そのブロックのハッシュで必要なゼロ・ビットに当てはまる価値を見つけるまでにこのプロセスを行う。プルーフ・オブ・ワークを行うためにCPUの力がたくさん利用されるが、それをやった後に、ブロックを変更したい場合同じ仕事をもう一回やる必要がある。プルーフ・オブ・ワークはマジョリティー投票を使ってマジョリティーを定義するという仕事もできる。マジョリティーは IPアドレスごとに1つの投票という比率でベースされていたら、たくさんのIPを持つ方はシステムに浸潤することが可能になる。だから、プルーフ・オブ・ワークでは、1 CPU当たり1票をつける。マジョリティーの投票は最大の作業証明努力が投資された一番長いチェーンで代表されている。正当なノードによってCPUパワーの大部分が制御されている場合、信頼できるチェーンが速く成長し、他のチェーンもそのチェーンに依存する。過去のブロックを変更したい時に、アタックする方はそのブロックに関連するプルーフ・オブ・ワークを再作成をする必要がある。また、そのブロックの次のブロックも再作成をしないと行けないし、その後に正直なノードとキャッチアップしないといけない。この後、あるブロックの次にブロックがたくさんあるほど、アタックしたい人が成功する確率が指数関数的に減少する。ハードウェアのパフォーマンスやワーキング・ノードに関する時変の利子などに合うために、プルーフ・オブ・ワークの難しさは移動平均できまる。その移動平均は1時間あたりのブロック数の平気である。ブロックが速く作成されたら、難しさも速く増える。

 

Network

 

ネットワークを操作するための必要なステップは以下である:

  1. 新しい取引は全てのノードに放送される。
  2. 各ノードはあるブロックの最後の取引を集める。
  3. 各ノードはそのブロックのプルーフ・オブ・ワークを探すために働く。
  4. あるノードはエビデンス・オブ・ワークを見つけたら、ブロックを全てのノードに送る。
  5. ノードは全ての取引が確認された後で、その時だけに、ブロックを認める。
  6. ノードはブロックを認める時に、次のブロックを作成するために仕事もする。その時、現在のブロックのハッシュを前回のハッシュとして使う。

ノットはいつも必ず一番長いチェーンは正しいチェーンであることを前提にし、そのチェーンをさらに長くするために仕事を行う。二つのノットは同時的に次のブロックに関する違う情報を提供すれば、最初のバーションをもらうノードも出てくるし、最後のバーションをもらうノードも出てくる。その場合、ノードは最初にもらったブロックを使って仕事するが、長くなる場合もあるので、他のノードも保存する。次のプルーフ・オブ・ワークを見とける時に、タイが壊れる。ブランチが長くなり、他のブランチで働いていたノードは一番長いブランチにスイッチする。新しい取引の放送は全てのノードに届く必要がない。たくさんノードに届いたら、いつか一つのブロックになるはずである。ブロック放出は、失われたメッセージに対しても耐性がある。あるノードはあるブロックをもらわなければ、次のブロックをもらう時にリクエストを送ることになるし、一つのブロックが足りないという認識もする。