[Blockchain] TCR: 高品質リストを作らせるモデル

現在、インタネットで、多くの開発した分散アプリケーションがあって、誰でもがみることができます。ブロックチェーン技術のおかげで、インタネットの能力がはるかに広いになった。これのため、いま色々なアルゴリズムと標準も可能性になった。今日、最近の学んでいる面白いトピックを議論します。そのトピックはToken Curated Registryというモデルです。TCRとしても知られています。

こんにちは！マルクス（[Twitter Account: @markusveeyola](https://twitter.com/markusveeyola)）と申します。現在、奥多摩日本語学校の学生で、ブロックチェーン技術を勉強しいます。ブロックチェーンに興味がある開発者のためには、できるだけ私の学んだことを共有したいです。

では、はじめます！

#TCRとは

TCRはユーザーに高品質で信頼できるリストを作らせる投票のアルゴリズムです。投票を使って、ユーザーは応募者の中で誰が信頼できるリストの一部になることができるかどうか決めます。応募者したユーザーを投票するためにはERC20トークンを使う必要があります。ユーザーはトークンを持っている限り、できる限り投票できます。

![maxresdefault.jpg](https://qiita-image-store.s3.amazonaws.com/0/300940/8ee7144c-0fa9-ef79-11d1-fe4f75c07765.jpeg)

##TCRのできること

品質管理、不正防止、ホワイトリストなどのような課題はTCRを使って解決することができます。多くウェブサイトがより良いサービスを提供することができます。私が説明し続けるにつれて、少しずつこれが理にかないます。

![issues.PNG](https://qiita-image-store.s3.amazonaws.com/0/300940/80e5ec02-4ff0-d99d-e140-cb1c06ee515c.png)



#問題
TCRは多くの場合に使用できます。例えば、人々は日本で最高の医者リストを見つけることができます。もちろん、誰も誤診を望んでいません。それで、安全になるためには上手医者を見つけるのも当たり前だ。

また、Q&Aなどのサイトに対して、この技術は本当に大切です。

![problem.PNG](https://qiita-image-store.s3.amazonaws.com/0/300940/e1c6899c-71a2-0a50-9155-eac0975e7431.png)

例えば、StackOverflowのようなQ&Aサイトで、望むだけ質問をすることができます。開発者は質問して、たくさん開発者から、回答を貰らった、とします。しかし、質問をした開発者はその答えが正しいかどうかわかりません。ましてや、正しい答えを貰ったら、最高の答えを貰らったかどうかわかりません。近い将来に、その答えを使って、自分のコードにバグをもらうかもしれません。でも、いい開発者として、みんなさんはその状況が起こりたくないです。

これに対して、TCRでは、信頼できる回答者のリストを作ることができます。

#解決
![solution.PNG](https://qiita-image-store.s3.amazonaws.com/0/300940/4b38ee45-e3a7-9af1-4b32-82a6530da4c2.png)

ここに、コンセプトをわかりやすくするために、TCRモデルの簡単のフローです。

まず、応募者は回答者リストにリストアップしてもらうように応募します,。応募するために、応募者の適格性の証拠としてポートフォリオとLinkedInリンクなどの情報とトークン賭けを提供しなければなりません。ユーザーは田中さんが回答者として相応しくないと思ったら、チャレンジすることができます。誰でも応募者にチャレンジをすることができます。あるユーザーがチャレンジしたかったら、不承認の証拠とトークン賭けを提供しなければなりません。チャレンジをすると、投票が起こります。 トークンを使って、コミュニティの参加者はそこで、その申請者の経験などを見て、YESかNOの投票をします。投票者は投票者は自分がマイノリティだった場合に、自分のトークンを失いません。しかし、自分がマジョリティだった場合に、応募者か挑戦者の賭けの部分から、報酬をもらいます。応募者は賛成の票が多かったら、回答者になることができます。賭けたトークンを取り戻すことができます。また、挑戦者の失った賭けの部分から、報酬を貰います。一方で、挑戦者に対して、ぎゃくもおなじです。



##メリット

![merit.PNG](https://qiita-image-store.s3.amazonaws.com/0/300940/28f8706a-1e90-9894-7bdd-68b4a4127a9f.png)
アプリケーションをTCRと統合するのは良い利点があります。三つのポイントをあげます。

1. 信頼できるリストがあるのでユーザーは安心してアプリケーションを使えます。

2. 企業は、TCRシステムを導入している信頼できる企業としてブランディングができます。

3. 申請者は、リストアップされている事実がポートフォリオとして機能します。

#実装
1ヶ月に、ブロックチェーンのデモのために、私はTCRプロジェクトを作りました。このプロジェクトでは、Augmented TCRというフレームワークのシステムです。このプロジェクトのターゲットはTCRを統合したアプリケーションを作りたい開発者です。

![augtcrimage.PNG](https://qiita-image-store.s3.amazonaws.com/0/300940/849247dd-6f63-6da1-46a1-6a0bdaf4ba23.png)



デモのためには私はが作成したTCRフレームワークのシステムを使って、StackOverflowのようなQ&Aサイトを作りました。このQ&Aサイトで質問を答えるために、コンサルタントとして申請しなければなりません。

![use case.PNG](https://qiita-image-store.s3.amazonaws.com/0/300940/fbc83f11-023f-8f79-3291-f3331903631c.png)

デモの中に、3人のユーザーがいます。

- ユーザーAは回答者として応募します。
- ユーザーBは田中さんが回答者として相応しくないと思い、challengeします。
- ユーザーCは一般投票者として田中さんに賛成します。

###[デモビデオのリンク](https://www.youtube.com/watch?v=kR1DL7iY3_4)

私の次のQiita記事には、TCRの詳細な特徴、Augmented TCRの関数のアーキテクチャ、実装し方など情報を説明するつもりです。しかし今のところ、それを投稿するかどうかまだ考えています。

興味があったら、私に知らせるためにこの記事に「コメント」か「いいね！」をしてください。

###アーキテクチャ
これはプロジェクトフレームワークのアーキテクチャです。
![NPM.PNG](https://qiita-image-store.s3.amazonaws.com/0/300940/60a53f60-e5aa-af9f-bc85-6a24b66a3c32.png)

使った技術はSolidityとRinkesbyネットとWeb3とJavascriptです。近い将来に、NPMにこのフレームワークをコミットするつもりです。見せたQ&Aサイトのuse caseには、この作ったフレームワークとReactJSとC# .Net Coreを使いました。

#まとめ
人々は医療コンサルタントの品質と標準を形作って、決めるので、TCRは民主主義を確立した。ブロックチェーンのおかげで、インターネットのリストに民主主義を確立することは可能です。信頼できるリストを持っているために、データを保護しなければならず、ブロックチェーンはそれを実際に行います。

では、TCRのこと多くことを学びましたか。この記事を読んでくれてありがとうございました。