Filecoinキャッチアップ:2020年9月
# Filecoinキャッチアップ:2020年9月
Filecoinのテストネットが2020年8月中に公開される予定だという話は聞いていたので、9月になって確認してみたところちゃんと公開されているようだ。(どうせもっと遅れると思っていた)
以前調べたときは詳しい設計の情報などが少なかったのでこの機会にキャッチアップしてみる。ドキュメントは英語と中国語しかないので引用箇所は英語を機械翻訳の助けを借りて訳したものだ。
## Filecoinのビジョン
公式ページがリニューアルされていて、かっこいいFilecoinのビジョンを紹介するムービーが追加されていた。だがビジョンについてはこちらの公式ブログ記事の方が詳しいので一部引用して紹介する。
https://filecoin.io/blog/introducing-the-filecoin-economy/
これによるとFilecoinは今までのクラウドストレージソリューションに代わるグローバルクラウドストレージを提供する。これまでと違うのは、仲介者を排除したブロックチェインベースのストレージ市場を提供することである。
Filecoinは、従来のWeb 2.0プラットフォームよりも手頃な価格で効率的にデータを保存できる方法があるという考えに基づいて設立されました。ブロックチェインベースのマーケットプレイスとして、Filecoinはコミュニティ主導で分散型です。つまり、個々のストレージクライアントとストレージ採掘者は、価格、評判、信頼性、検索性、レイテンシーに基づいて取引を競い合っています。そして、Filecoinのブロックチェインは、ファイルが安全で公的に検証可能な方法で保存されることを保証します。
しかし、それだけではありません。Filecoinのストレージマーケットプレイスは、世界の未利用のストレージ資産を活用しています。Filecoinを使えば、世界中のどこにいる人でも、自分の使っていないストレージスペースを他の人に提供することができます。これは、膨大な量のストレージを解放し、ストレージソリューションの価格設定に前例のない規模の経済性を推進する力を持つ、独自のシェアリングエコノミーを生み出します。
(中略)
Filecoinの使命は、人類の情報のための分散された効率的で堅牢な基盤を作成することです。
ストレージの大容量化に伴い、パーソナルコンピューターなどには大容量のストレージが搭載されていることが一般的になったがそれらのほとんどが使用されていない。
それらの浮いているストレージをマーケットに投入することで市場優位性が生まれるはずであるというのがここで主張されていることのようである。
使用していない自家用車というリソースを利用してタクシー業界に参入したUberや、空き部屋を貸し出すAirbnbのストレージ版のイメージだろうか。
## エクスプローラー
テストネット稼働に伴いブロックチェインエクスプローラーも閲覧できる。
https://stats.testnet.filecoin.io
filescanというのも公開されている。こちらもエクスプローラーだと思うんだけどなぜ別れているのかよく分からなかった。マイナーの情報中心に閲覧できる。https://filscan.io/#/home
## 新しく発表されたドキュメント
2020/8/27日に新しく「Engineering Filecoinʼs Economy」というドキュメントが公開されている。エンジニアリングと題しているが内容はホワイトペーパーっぽい。
https://filecoin.io/2020-engineering-filecoins-economy-en.pdf
前書きによるとこのドキュメントではFilecoinプロトコルが提供するインセンティブ設計やFILコインの分配について解説している。具体的には、ネットワークの長期的な有用性に寄与することを目的とした各手数料、報酬、またはペナルティについて、それらどのようなものであるかを説明している。
その他の内容は以下。
- なぜFilecoinネットワークには強力な価値提案があるのか(第2節)
- そのビジネスモデルから経済や市場を構築するとはどういうことか(第2節)
- その市場がどのようにデータストレージを扱うか(第3節)
- ストレージクライアントが市場で果たす役割とFilecoinプロトコル(第4章)
- プロトコルがどのようにデータを取得し、どのように配信するか(第5章)
- 経済における交換媒体としてのファイルコイン・トークンの役割(第6節)- 現在の経済構造とファイルコインプロトコルの初期パラメーター(第7節)
- 今後のネットワークの成長を牽引する可能性のある、計画されている主な改善点(第8節)
などである。ちなみに英語版と中国語版がある。
## 詳しいインセンティブ設計
やはりインセンティブ設計が気になる。ここでの登場人物は、研究者、エンジニア、利害関係者、採掘者(マイナー)、顧客(クライアント)である。
### データのためのマーケット
余っているストレージを有料で提供したい人と、ストレージを使いたいと思っている人の間で成立するマーケット。これがデータのためのマーケットであると言えるだろう。
Filecoinでは利用したい人がクライアント、ストレージを提供する人がマイナーである。
マイナーとクライアントの基本的な取引がドキュメントの図2で説明されている。
<引用図2>
- クライアントからマイナーへの取引の提案(他の記述を読むと提案する側はどちらかには固定されていない様子)
- あるマイナーが取引を落札
- クライアントからマイナーへのデータの転送
- データをセクターに封印
- 証明(データ所有の証明)と収入(マイナー収入)
- データの取り出し
セクターについては後述するが図より、マイナーにはブロックの採掘だけでなく。複数の収入源があることがわかる。
- クライアントとの取引による手数料(データ保管料)。実際手に入れられるのはブロックに対してセクターをポストしたとき。
- ブロックリワード。いわゆるブロックチェイン上のブロックの採掘手数料のことだろう。
- 取り出し手数料。クライアントがデータを取り出す際、回収マイナーに手数料を払う。
実世界との関係まで示したエコシステム図。
<引用図3>
研究者と開発者がマイナーとトークンを交換し合う必要性があるのかよくわからないが、面白いのは通貨の仕組みと現実世界のユーザの間に「ストレージに関係する商品とサービス」を挟んでいることとトークンホルダーと潜在的ユーザの間に通貨の交換を想定していること。つまりアプリケーション開発者の存在とFILの取引所への上場が前提になっている。
それについての説明を引用する。
Filecoinエコノミーには3つの異なる市場があり異なる商品やサービスを交換する。
ストレージ市場では、ストレージマイナーが貸し出しを申し出ては、Filecoinネットワークによって検証されるデジタルストレージを提供しています。逆に、ストレージクライアントはFilecoinを使用してデータを保存できます。このストレージは、使用されるストレージスペースの量と契約期間に基づいて価格が設定される。
回収市場では、クライアントはFilecoinを回収マイナーに支払い、データのコピーを提供してもらう。
最後に、トークン取引所は、参加者がFilecoinをクライアント、採掘者、その他のトークン保有者の手に渡すための取引を可能にします。
### ストレージマイナーのライフサイクル
ストレージマイナーのライフサイクルが図5に示されている。
<引用図5>
- チェイン上にマイナーを作成し(登録するということか)
- トークンを取得してネットワークにキャパシティをコミットし
- マイナーの最小サイズに達したときブロックの生産を開始し
- クライアントとの取引を行い
- コミットされたキャパシティセクターを取引のあるセクターにアップグレードし
- 追加の取引収益を獲得し
- 最後に障害か回復を宣言する。
## セクター
### セクターとは?
セクターはFilecoinストレージ市場のストレージの基本単位。市場で異なるマイナーの持つストレージを交換可能かつ代替可能(ファンジビリティのある)なコモディティとして扱うための1単位である。
取引がないセクターだったとしてもマイナーはネットワークにストレージ容量を約束していることに対して報酬が得られる。ストレージの需要を発見すれば(つまり取引が成立すれば)マイナーはセクターをアップグレードし取引手数料という形でクライアントから報酬を得る。
セクターにはそれ自体を評価する仕組みがあり質の高いセクターと低いセクターという概念が存在する。
コミットされたキャパシティセクターは、顧客データを保存するためのマイナーのインセンティブを向上させますが、問題を完全に解決するわけではありません。
実際のクライアントファイルを保存することは、ストレージマイナーの運用上のオーバヘッドを追加することになります。特定の状況では、例えば、マイナーが取引手数料よりもブロック報酬をはるかに重視している場合、マイナーはクライアントデータを完全に無視し、ブロック報酬を追求するために、可能な限り迅速にストレージパワーを増加させるために、単にコミットされた容量を保存することを選択するかもしれません。これはFilecoinの利便性を低下させ、ネットワーク上にデータを保存するクライアントの能力を制限することになります。
Filecoinは、検証済みクライアントの概念を導入することで、この問題に対処しています。検証済みクライアントは、検証者の分散化されたネットワークによって認証されます。検証済みのクライアントは、検証済みのクライアント取引データを、データキャップのサイズによって設定された所定の量だけストレージ市場に投稿することができます。検証されたクライアント取引を持つセクターは、検証されていないセクターに比べて、より多くのストレージパワー、つまりより多くのブロック報酬が与えられます。これにより、ストレージマイナーはクライアントデータを保存するための追加のインセンティブを得ることができます。
つまり質の高いセクターを採掘したほうがマイナー報酬は高くなるので、空のセクターばかり採掘されてしまうなんてことが起こりにくいということだ。
どんなセクターの質が高いのかについても図6で示されている。パラメータについてはここでは割愛。
検証者の分散化されたネットワークというのが具体的によくわからないが、検証は誰でも簡単に行えるようになるということらしい。
<引用図6>
### セクターの封印
セクターの封印という段落でPoRep(複製の証明)について言及がある。重要なので引用する。
PoRep (複製の証明) によるセクターの封印は、計算量の多いプロセスであり、その結果、セクターの固有のエンコーディングが行われます。
データが封印されると、ストレージマイナーはプルーフを生成し、プルーフに対してSNARKを実行して圧縮し、最後に圧縮の結果をストレージのコミットメントの証明としてブロックチェインに提出します。PoRepアルゴリズムとプロトコルのセキュリティパラメータによって、コストプロファイルとパフォーマンス特性は異なり、封印コスト、セキュリティ、オンチェインフットプリント、検索レイテンシなどの間でトレードオフを行う必要があります。しかし、セクターは市販のハードウェアで封印でき、封印コストは時間の経過とともに減少すると予想されています。Filecoinプロトコルは、コストと検索レイテンシの両方を改善したNarrow Stacked Expander (NSE) PoRepへのアップグレードが計画されているStacked Depth Robust (SDR) PoRepで開始されます。
### セクターのライフサイクル
セクターのライフサイクルについて。
セクターが生成され、取引がFilecoinブロックチェインに組み込まれると、ストレージマイナーはセクター上でProofs-of-Spaceetime (PoSt)の生成を開始し、潜在的にブロック報酬を獲得し、ストレージ料金も獲得し始めます。セクターが元の契約期間中に存続することが保証されていれば、マイナーはより多くの価値を生み出し、獲得できるようにパラメータが設定されています。しかし、ネットワークのパフォーマンスを向上させるために、セクターの寿命にはいくつかの制限があります。寿命の短いセクターが追加されると、ネットワークの容量がボトルネックになります。その理由は、チェインの帯域幅が新しいセクターで消費され、有効期限が切れたセクターの代わりにしかならないからです。そこで、チェインの帯域幅をより効果的に利用するために、最低セクター有効期間を6ヶ月とすることが導入され、マイナーはより長い有効期間のセクターにコミットするインセンティブを得ることができた。
6か月というのが文字通り、6か月ストレージをオンラインにしないといけないということであれば、かなり参入ハードルが高い。家のPCの余ったハードディスクの容量を使ってマイニングするのは無理そうだがどうなんだろう。
運用上のリスクや障害はストレージビジネスでは一般的です。しかし、ネットワークのクライアントのためのストレージ保証を維持するためには、ストレージプロバイダーがチェインに障害を報告し、障害からの復旧を試みるという強いインセンティブを持つことが重要です。
このインセンティブがないと正直なマイナーのハードウェア障害と悪意のある行動を区別する方法がないので、マイナーを公平に扱う必要があります。
障害料金の大きさは、障害の深刻度とマイナーがセクターから得ることを期待される報酬に依存し、インセンティブが一致していることを確認します。
セクターストレージの故障料には、以下の3つのタイプがあります。
- セクター障害料金。
この手数料は、セクターが故障状態にある間、1日あたりセクターごとに支払われます。
料金の大きさは、セクターがブロック報酬で1日あたりに獲得すると予想される金額よりもわずかに多くなります。セクターが2週間以上連続して不良状態のままであれば、そのセクターは終了料を支払い、チェインステートから外されます。この料金の初期値は、不具合のあるセクターのブロック報酬2.14日分です。ストレージマイナーの信頼性が合理的な閾値を超えて上昇すると、これらの手数料によってもたらされるリスクは急速に減少します。
- セクター障害検知料。
マイナーが正直に報告せず、報告されなかった障害がチェインによって発見された場合に支払われる1回限りの料金です。PoStチェックの確率的な性質を考えると、これは特定のセクターが獲得すると予想されるブロック報酬の5日分になります。
- セクターの終了料金。
セクターは、自動フォールトやマイナーの判断により、期限が切れる前に終了させることができます。終了手数料は原則として、そのセクターがこれまでに稼いだ金額と同等の金額が課金されますが、長いセクターの寿命を阻害しないように上限を設けています。アクティブ・ターミネーションでは、マイナーが採掘を停止することを決定し、マイナーは手数料を支払って退出することになります。
フォールト・ターミネーションとは、セクターがあまりにも長い間(14日間)不良状態にあると、チェインが取引を終了させ未払いの取引手数料をクライアントへ返却しマイナーにペナルティを課すことです。取引終了料は現在、セクターが獲得できるブロック報酬の90日分に上限が設定されています。マイナーは現地の規制を遵守することを決定する責任があり、コンテンツ法を遵守するために終了料金を受け入れる必要がある場合もあります。
### マイナーの担保
マイナーの担保について。
Filecoinもまた(ビットコインのように)、リソースの投入によってセキュリティを達成しなければなりません。Filecoinのマイニングは、設計上、償却コストが安く、再利用が容易な商用ハードウェアを使用することに注意してください。Filecoin はまた、プルーフ・オブ・ステークのプロトコルのように、コミットされたストレージハードウェアに比例したアップフロント・トークンの担保を使用します。ネットワークを攻撃するには、ハードウェアを取得して実行する必要がありますが、トークンを大量に取得する必要もあります。
マイナーの負担を最小限に抑えた方法で担保に対する複数のニーズを満たすために、ファイルコインには、初期誓約担保、担保としてのブロックリワード、保管取引提供者担保の3つの異なる担保メカニズムが含まれています。1つ目は、採掘者がセクターごとに提供しなければならないFilecoinの初期誓約である。2つ目は、ブロックリワードを時間の経過とともに権利確定させることで、初期トークンのコミットメントを減らすメカニズムである。3つ目は、マイナーとクライアントの間のインセンティブを調整し、マイナーが市場で差別化を図ることができるようにします。
### オフラインデータ転送のサポート
なんとオフラインデータ転送もサポートしているということだ。ハードディスクを新幹線で運んでFilecoinに保存できるということだろうか。
オフラインデータ転送膨大な量のデータを扱う場合、それらのファイルを安全に保管するためにインターネット経由で転送するのは難しい(費用と時間がかかる)ことがあります。ペタバイト規模のデータセットやそれ以上のデータの場合、最も賢明な解決策はハードドライブにデータを転送することです。Filecoin Protocolとプロジェクトには、オフラインでのデータ転送をサポートするツールと構造があります。
## オープンソース?
goによる実装のlotusがMIT + Apache 2.0ライセンスで公開されている。
https://github.com/filecoin-project/lotu
## 3種類のマイナーの役割
https://docs.filecoin.io/mine/how-mining-works/#types-of-miners
ストレージマイナー, 回収マイナー(retrieval miners)、リペアマイナー(repair miners)などがいる。
ストレージマイナー, 回収マイナーはすでにlotusに実装されている模様。
### ストレージマイナー
ストレージマイナーはネットワークの中心です。彼らはクライアントのためにデータを保存し、時間を超えてストレージを検証するための暗号証明を計算することでFilecoinを獲得します。ブロック報酬と取引手数料を獲得する確率は、マイナーがFilecoinネットワークに貢献するストレージの量に比例し、ハッシュパワーではありません。
### 回収マイナー
回収マイナーは、ネットワークの静脈です。彼らは、ファイルサイズの市場価値によって決定される特定のファイルへの入札とそのマイニング料金によってFilecoinを獲得します。回収マイナーの帯域幅と取引のための入札/初動応答時間(すなわち、レイテンシーとクライアントへの近接性)は、ネットワーク上で回収取引を成立させる能力を決定する。回収マイナーの最大帯域幅は案件の総量を決めます。
### リペアマイナー(実装予定)
現在、あるマイナーがセクターの保存を停止した場合前述のように終了料金を支払う。しかし別のマイナーがデータを保存している場合は、元のクライアントに代わってデータを回収し、新しいセクターにデータを統合し安定した数のレプリカを保存するためのリペア・マイナーと呼ばれるアクターが存在するはずです。
## コインの分配
ファイルコイントークンのコイン(FIL)の分配について。
<引用図13>
まず基本情報として総発行量が2,000,000,000FIL。
マイナーへの割当が55%。マイナーリザーブが15%で合計70%。残りの30%が財団、開発者チーム投資家(2017年のICO時の適格投資家)に割り当てられている。
## ロードマップ
https://app.instagantt.com/shared/s/1152992274307505/latest
## SpaceRace
https://spacerace.filecoin.io/
SpaceRaceはFilecoinのテストネットのストレステストを目的とした、マイナー競争のイベントである。
世界のトップ100のマイナーと、各大陸のトップ50のマイナーは、テスト期間中に達成したストレージの容量に基づいてFilecoinの報酬を獲得することができる。
9/15日にSpaceRace1は終了したが、SpaceRace2の開催が公式ブログで9/12日に発表された。
https://filecoin.io/blog/space-race-2/
SpaceRace2ではストレージマイナーはテストネットで維持に成功したセクターの一部をメインネットに転送することができる。
## IPFSとの関係は?
IPFSの開発元のプロトラボが開発に関わっている。
Filecoinの実装であるLotus自体はIPFSと関係はなく、パワーゲートというAPIライブラリでFilecoinとIPFSの連携ができる。
https://docs.textile.io/powergate/
Filecoinに保存されたデータがIPFSネットワークで簡単に利用できるようにします。
FilecoinとIPFSの関係性はpinning servicesで理解できそう。これによるとIPFSネットワーク上でファイルを保持するためのバックエンドとしてFilecoinを使うという構図になる。
Filecoin-backed pinning services
https://docs.filecoin.io/build/tools/filecoin-backed-pinning-services/#how-to-use-an-fps
FILを支払うのはpinning servicesサービス提供者であればいいわけだから、一般ユーザはFILを手に入れる必要はないかもしれない(エコシステム図ではそうなってはいなかったが)。
それはそれでユーザビリティは高くなりそうである。
## テストネット
現在目的の違う3つのネットワークが稼働している。
- Testnet
- Nerpa Devnet
- Butterfly Devnet
"Testnet"はマイナー向け。"Nerpa Devnet"はアプリ開発者向け。"Butterfly Devnet"はコア開発者が新しいコードをテストする目的で使われる。
https://docs.filecoin.io/networks/#network-dashboard
## 気になった点
- ネットワークの立ち上げ時は「頻繁には読まれないファイル」に最適化されている。
- 検証可能なストレージ。クラウドストレージプロバイダーを信頼したり、法的手段に頼るのではなく、Filecoin Protocolはクライアントのデータが保存されているかどうかを暗号学的に検証する。これがPoRepとPostによってなされるのは明白なので具体的な実装が気になる。
- オープン参加。十分なハードウェアとインターネット接続があれば、誰でもFilecoinネットワークに参加できる。
- ストレージの分散はローカル最適化を促進する。つまりストレージが分散化すれば、中央集権的なデータセンターより、より近いストレージを使用できるようになるため。
- 補助金。何かしら開発すると、財団から補助金がもらえるっぽい。SpaceRaceの他にもアプリ開発のハッカソンなどが行われているみたい。
## 免責事項
この記事は特定のコインへの投資をすすめるものではない。