世界を動かす技術を、日本語で。

個人データストレージは今こそ実現すべきアイデアです

概要

  • Tim Berners-Lee による「Socially Aware Cloud Storage」構想の経緯と目的
  • SolidプロトコルAT Protocol など、ユーザーデータ主権を実現するための技術動向
  • 個人データサーバー(PDS)データ協同組合 の概念と普及状況
  • データ所有権の未来像と オープンソーシャルウェブ の実現可能性
  • 今後の課題と、よりパーソナルなウェブへの期待

Socially Aware Cloud StorageとSolid構想

  • 2009年、Tim Berners-Leeが「Socially Aware Cloud Storage」仕様案を提案
  • ユーザーやグループをURIで識別 し、グローバルなアクセス制御を実現する設計
  • ストレージとアプリケーションの独立性 を重視したアーキテクチャ
  • データはユーザーのもの」という思想のもと、Solidプロトコルを開発
  • Solid はオープンソースで、データ所有権とアプリ間の相互運用性を実現する標準仕様

Solidプロトコルの特徴と課題

  • Solid では、アプリがユーザーデータを自動で所有せず、 ユーザーの許可が必要
  • データはユーザー自身が管理し、 一元的な制御 が可能
  • 健康データ、金融データ、SNS投稿 など、用途ごとに異なるサーバーを選択可能
  • Inrupt (Timが共同設立・CTO)が主な資金源、主にエンタープライズ向けに展開
  • 一般普及はまだ限定的で、 大規模なWeb導入 には課題が残る現状

AT ProtocolとOpen Social Web

  • Bluesky 主導の AT Protocol が登場、ユーザーデータ主権の実現を加速
  • 30万人以上のネットワーク と、BlackskyやTangledなどの分散型コミュニティの拡大
  • SolidとAT はアーキテクチャは異なるが、 ユーザー主権型データストレージ を目指す点で共通
  • 個人データサーバー(PDS)Pod と呼ばれるストレージの概念
  • @alice.com@bob.com のような、 ドメインベースのユニバーサルハンドル が実現

データ協同組合と新しいデータ所有モデル

  • 一般ユーザーは PDS を個人PCではなく、 クラウド上の協同組合型サービス に委託
  • Credit Union のような、 会員制・民主的なデータバンク の普及
  • social.coop、data.coop、cosocial.ca など、既存のデータ協同組合の実績
  • Blacksky、Eurosky のような地域・コミュニティ主導の新興プロバイダー
  • データ所有権の議論 が、「企業が何をダウンロードさせるか」から「プラットフォームが何を一時的にコピーできるか」へ転換

オープンソーシャルと将来展望

  • ユーザーデータとプラットフォームの分離 がATネットワークで最も進展
  • ActivityPubSolid との技術的な相互補完や収斂の動き
  • プロトコル非依存型のデータ協同組合 や、柔軟なストレージフォーマットの可能性
  • プラットフォーム崩壊時にも、ユーザーが自身のソーシャルグラフを再構築可能
  • ウェブを再びパーソナルに」という理念の重要性

関連リソース

  • Den Delimarsky 「Be A Property Owner And Not A Renter On The Internet」
  • Erlend Sogge Heggen 「Digital Homeownership」
  • Jeff Atwood 「Avoiding Walled Gardens on the Internet」

Hackerたちの意見

オペラユナイトの話が出て嬉しいな。あれは本当に革命的なアイデアだと思った。誰でも技術知識ゼロでブラウザ上にシンプルな静的ウェブサイトを立ち上げられるんだもん。もしそのアイデアが成功して、人々がコンテンツを共有する手段として広まっていたら、世界はもっと良くなっていたんじゃないかな。今のような高額なマネタイズや操作的なソーシャルネットワークじゃなくてね。

このアイデアは消えなかったんだよね。多くの人がすべてを自分でホストしたいと思ってる。でも残念ながら、企業は中央集権化する方が楽だし、そのデータをマネタイズできるからね。

企業じゃなくて、ユーザーが楽だと感じたんだよね。みんながFacebookやInstagram、Gmailを使ってる理由は、自分でホスティングするよりも圧倒的に簡単だから。みんながそこにいるからでもあるしね。まだ私たちはアクセスしやすくて役立つ形での分散化を解決できていないし、そうなるまでインセンティブも変わらないよ。いつになるか分からないけど。

Plexについて、70%くらいのアイデアがあって、これが人々が自己ホストしたいと思っていることを示していると思うんだけど、なかなかうまく言葉にできないんだ。Plexは本当の自己ホスティングではないけど、Netflixのサブスクリプションよりはずっと近いし、最近ではあまり技術に詳しくない人たちが他の人のサーバーに参加したり、自分のサーバーを設定しようとしているのが驚くほど多い。彼らは単に無料の映画が欲しいからやっているわけじゃない。多くの人が私が最初に始めた理由と同じ理由でやっている:子供たちのためだよ。私は子供たちの前に出されるメディアが気になる。彼らがどんな番組を見ているのか気にしている。子供たちはスクリーンに触れることになるから、YouTubeなどに任せたくないんだ。リアルに全てを見守ることはできないけど、私のサーバーを使っているなら、常に特定のライブラリにしかアクセスできないから、安心できる。ある意味、これは私たちの親が私たちが子供の頃に感じていたことと似ていると思う。ケーブルテレビでは、成長する中で「変な」ことや問題のあることが出てくることは限られていたし、今見られるような極端なものはなかったから、ほとんどのことが何かしら分かっていて、どのチャンネルを禁止するべきか、子供たちが自由にテレビを見るべきでない時間を知っていた。多くの他の親も同じように感じていると思う。彼らはインターネットがすごく敵対的な場所だと感じるのに疲れていて、自分たちの手に少しでも力を取り戻したいと思っているんだ。ああ、上の rant から何か有用なことが浮かんでくれたらいいな。これについては、まだまとめられていないバラバラな考えがたくさんあるんだ。

インターネット上で無数の別々の場所に売られた人たちの手にあるのではなく、あなたのデータは一つの場所にあって、あなたが管理している。これがどう繋がるのか分からない。サイトとデータを作ったり共有した瞬間、彼らがそれを再販するのを防ぐものは何?これが解決しようとしているのは、ポータビリティや相互運用性(そしてブロックやモデレーション、スパムの管理をサイトからユーザーに移すこと)だけのように見える。プライバシーや「誰があなたのデータを得るかをコントロールする」ことには全く役立たないと思う。サイトAにデータを渡して、データ収集者Bには渡さないとしても、AがBに売るのを防ぐものは何?私が見る限り、状況は今日と同じままだと思う。あなたのデータは、一度も共有しなければ一つの場所に留まるけど、他のサイトやサービスを使った瞬間、そこにも保存されて、あなたのコントロールを離れる。

サイトとデータを作ったり共有した瞬間、彼らがそれを再販するのを防ぐものは何?自分のデータの出所と個人所有権を明確に主張できれば、再販を禁止できるよ。EUの法律は、私たちが企業に忘れられる権利を実際に要求できることを示している。私たちのデータが何であるかを正確に定義すればするほど、そうした権利を主張するのが簡単になるんだ。

それを防ぐものはないけど、第三者はコピーを使っているだけ。あなたはまだデータの所有者で、それが一つの場所にあるから、アクセスしたり、共有したり、バックアップしたり、分析したりしやすいんだ。だから、一般的な再販を防ぐわけじゃないけど、データのロックを防ぐことはできる。そこから、どの第三者があなたのデータを売ったのかを示して、訴えるのもそれほど難しくないと思う。それに、非専有のデータフォーマットを義務付けることもある。今の状況よりもずっとずっと良いと思うよ。

現在のデータポイントは歴史的なデータポイントよりもずっと価値があるから、古いデータを保存する意味があまりないんだよね。それに、自分のデータへのアクセスをオンオフできることで、誰が何を目的で使うかをコントロールできるし。データの再販は最初から違法にすべきだと思う。もし弁護士があなたのデータを売ったらどう思う?それとも大腸外科医が?もちろん、そんなの嫌だよね。そういう法律があるんだから、個人データを扱う人にも同じ法律が適用されるべきだよ。

最初のページや2ページ目(トップ60)には、必ず「ウェブを取り戻す」とか、90年代のミレニアル世代のノスタルジーを再現しようとする投稿があるよね。自己ホスティングとか、連合的な何かとか。でも、実際には何も変わらないし、全体的に悪化していくばかり。若い世代は90年代のインターネットやモバイルデバイス、監視がなかった世界の記憶もないし。今、仕事やアパートを探すのは、世界中のデータベースに自分の個人情報の無限の無意味なコピーを作ることを意味する。それが最終的に放置されたり、ハッキングされたり、悪用されたり、売られたりする。どうやって抜け出せるのか分からないけど、妄想し続けるしかないのかな。時々、地球を逆回転させる方が簡単に思えるよ。

これは明らかに妄想じゃないよ。例として挙げられているのは、実際に影響を与えている完全に商業化されたネットワーク(BlueskyやAT-netの他の部分)で、いくつかの権威主義国家から脅威を受けているんだから。

何も変わらないのは、要求がばかげていて普通の人々の生活からかけ離れているからだと思う。じゃあ、もしGoogleがあなたのデータを全部持ってたらどうなる?私が過去20年間観察してきた限りでは、最高のサービスが安く提供されて、素晴らしいセキュリティとデータの可用性があるだけだよ。

もし違う時代を経験した人たちが「何も変わらない」と諦めたら、本当に終わりだよね。私たちは自分たちが言っていることを実行しなきゃ。確かに、いくつかのことは悪化しているけど、今は最高のオープンソースの自己ホスト型の代替手段をローカルネットワークで設定するのが、これまでで一番簡単だと思う。90年代にオンラインだった人たちが今もオンラインで、同じことをしていることを忘れがちだよね。インターネットは、魔法のようなものを見えない人たちにとっては、ずっと使いやすくなっただけなんだ。それでいいと思う。今の状況に文句を言っている人たちは、まだ存在するサービスやコミュニティに対して失礼だよ。彼らはセクシーでもクールでもないけど、確かに存在しているんだから。

これは、気にかけていて、運営の仕方を見直そうとしている人たちに、違うモデルが可能であることを示すことだと思う。大多数は、ほぼ定義上、主流の快適さを選ぶからね。

「今、仕事やアパートの申し込みをするってことは、世界中のデータベースにあなたの個人情報の無限の無意味なコピーを作ることを意味する。それは最終的に放置されたり、ハッキングされたり、悪用されたり、売られたりする。」この問題はEUではほぼ解決されてるよ(法律が解決できる範囲で)。データ保護法は十分に強力で、実際の企業は顧客情報を違法に保持したり売ったりすることができないんだ。でも、人々は氷山の一角しか見ていなくて、EUのデータ保護が面倒なクッキーバナーと関係があると思っている。私たちは、デジタル世界を市民のために良くするためのヨーロッパの本当の成果をもっと称賛する必要がある。即時の手数料ゼロの銀行振込もその一例だね。

世界中のデータベースに自分の個人情報の無限の無意味なコピーを作って、結局は放置されたり、ハッキングされたり、悪用されたり、売られたりするんだよね… どうすればいいのかわからないけど、データはその持ち主にとって危険な負債として見られるべきで、資産ではないと思う。もし「メガバンクがデータ漏洩で破産、役員が逮捕された」みたいな見出しがあったら、一般的な「またデータ漏洩か、LifeLockの無料トライアルだ」っていう感覚が変わると思う。

誰もが「無料で広告なし、トラッキングなし、支払いなし」のインターネットを求めてる。でも、誰もそのために誰かにお金を払いたくないから、誰もホストしたがらないんだよね。20年間広告も見てないし、サブスクリプションも払ってない人たちが「インターネットはクソだ、IRCや掲示板に戻るべきだ」って文句を言うのはさ、まるでお金を払わない客の意見が聞く価値があるかのようだよね。

一方で - 何も変わらない まあ、TFAや私の投稿の兄弟たちが、連合ネットワークがこの方向に変化をもたらしているいくつかの方法を指摘してるね。SOLIDやATプロトコルと並んで、ActivityPubも人々が自分のデータを所有することを促していると思う。だから、大きな広告だらけの利益追求ネットワークが行動するのを待つのではなく、変化が起こる場所に注意を向ける必要があるよ。実際、彼らにはインセンティブがないからね。

解決策は主に反トラスト法とプライベートデータ市場の規制だと思う。でも、あまりにも多くのポートフォリオが現状に依存しているから、AIバブルが弾けるまで道は開かれないだろうね。Chromeの訴訟は、アドエックスの大打撃が繰り出される前の一撃みたいなもんだ。

変なことに、まだIRCのフェデレーターがいるんだよね。ディスコードみたいなチャンネルを持つ大きなサーバーがあって、たぶん誰かの地下室のコンピュータで動いてるんだ。そういうのを使ってる人たち(たいていニッチな興味を持つグループ)がたくさんいる。

この二つの提案(私が読んだ限りでは、あなたの意見は変わるかもしれないけど)は進化のテストに失敗してると思う。話してる規模では、アイデアは進化と同じように進むべきで、遠い目標を持つんじゃなくて、現状を改善するための小さな変化を積み重ねていく必要がある。今、私たちは(ほぼ)重要な局所的最大値にいるし、(また、私が読んだ範囲では)この情報コントロールを提案している人たちは、そこからここまでの具体的なステップを示していない。もちろん、全ての道筋を考える必要はないけど、最初の一歩か二歩は必要だよね。でも、その一歩は前進しなきゃ。飛びたいからって羽が生えるわけじゃないし、まずは温かくするための羽毛が必要だよね(私は進化生物学者じゃないから、これが正しい理論かは分からないけど)。

BlueSkyのユーザーの99.9%は、Blueskyのサービスだけを使ってる。でも、BlueSkyには各ユーザーのためのパーソナルデータサービスがあって、それによってユーザーはBlueSkyのホスティングからデータを他の場所に移すことができる(そして、1、2週間前からは再びBlueSkyに戻ることもできる)。ユーザーは自分のPDSに好きなデータを入れられるし、https://tangled.orgを使ってgitデータをホストしたり、https://teal.fmで音楽のリスニングデータを保存したり、https://leaflet.pubでブログを書いたりできる。自己ホスティングのオプションも急速に進化してる。多くの人が個別に、または共同でPDSをホストしてる。データの集約層をホストするのはかなり難しいけど、いくつかの進展があって、良い感じ。現状よりも大きな改善が感じられるし、開発者たちのエネルギーがすごく見える。アーキテクチャの分解は、さまざまな分野での勝利と作業を可能にしてる。基盤はしっかりしてるし、コアも一貫性があってよく作られてる。大きなものとしてではなく、一貫したレイヤーとしてスケールするように作られてる。あなたが求めていることを実現していると思うし、進展や受け入れの兆しを見ると心が温かくなるよ。

「それぞれが現状よりも改善されている必要がある」 それには同意するよ。特に平均的なウェブユーザーを見たとき、「自分のデータを所有する」ことはUXの改善として十分なのかな?広告主ではなくエンドユーザーのために最適化された製品や、広告が少ないことと組み合わせれば、もしかしたら…と思う。そう願ってる。お金があまりかからないのに多くの作業が必要になるのは心配だけど、楽観的ではあるよ。

子供の頃、4GBのUSBメモリは私にとって大きなことだった。40GBのHDDは絶対に埋まらないと思ってたけど、インターネットが成長し始めたんだ。今は、どれだけストレージがあっても、必ず埋まるよね。私はかなりの量を自己ホストし始めたけど、それでもストレージソリューションは5〜6年の寿命があって、その間に少なくとも一つのコンポーネントが故障するんだ。膨大な量の写真をクリックするけど、印刷されたアルバムのような影響はないよね。ストレージコストがどんどん上がっている中で(クラウドベースでも自己ホストでも)、重要なものだけを印刷形式で残そうかなって考えてる。

豊かさの時代には、賢い優先順位付けが必要だね。

まだフォトアルバムを印刷してるよ。これ、めっちゃおすすめ!

私は20年近く、いろんな形のNASを運用してる。寿命はかなり長くて、バックアップNASには約10年前のドライブが入ってるし、Ryzen 1600(8年前)の上に作ったものだ。平均的な電源は10〜12年持つかな。メインのNASは5年以上前のハードウェアで動いてるけど、最近交換したドライブは容量が大きくなった。今のドライブのサイズは、私の年間の追加(個人的な写真や映画)よりも大きいから、低使用率で10年の寿命には満足してる。信頼できて手頃な長期オフラインストレージがあればいいんだけど、バックアップテープとリーダーは高くて、一般ユーザーにはあまり使われてない。そうでなければ、もっと信頼性があってパフォーマンスも良い階層型ストレージシステムを作りたいんだけど(nvmeホットティア?どうかな)。

個人データの保存のアイデアは大好きだし、デフォルトになってほしいけど、いくつかの技術的な問題があると思う。この文章ではスキーマについて一度も触れてないけど、スキーマがないとデータのシームレスな移行がほぼ不可能なんだ。簡単なCRUDアプリが文字列フィールドをUUIDフィールドに変更できるか確認するのに一週間かかったよ。今はGoogleやFacebookからデータをエクスポートできるけど、その後はすべてのデータフィールドがどう表示されるべきかを忠実に再現するソースUIのコピーを書かなきゃいけない。で、明日ソースが変更されて、元々1つのフィールドだったのが2つになったり、別のフィールドが完全に削除されたりして、そのデータが消えちゃう。まあ、将来のダンプではね。表示には古いスキーマを使うの?それとも新しいスキーマ?両方使うことはできるの?データがサイロに分かれてると、データフォーマットを自由に安全に変更できるけど、アプリケーションが進化する中でこれが頻繁に起こる必要があるんだよね。サイロ内でも、これをやるのはかなり難しくて、バグやデータ損失のリスクが大きい。無限のデータリポジトリ間で同期しようとすると、各リポジトリがデータスキーマと潜在的に矛盾する関係を持っているから、データ損失はほぼ確実だよ。もう一つ大きな問題はスキーマの権限とアイデンティティ。例えば、「Aさんはこのフィールドのセットを見ることができる」とか「Aさんはこの別のフィールドのセットを見ることができない」といったデータがあって、それが3つの異なるサーバーに同期されると、どれかのサーバーはユーザーAが実際にはAさんだってことを知らない。だから、閉じられた状態で失敗するけど、そのサーバーのデータは実質的に存在しないことになる。もしこのデータリポジトリの目的がAさんとデータを共有することならね。信頼やアイデンティティ、監査が分散されているシステムでは、細かいアクセス制御は本当にできないよ。

NASについてだけど、オンラインとオフラインの組み合わせに市場があるかずっと考えてた。冗長性を持たせるために少なくとも2つのHDDが必要だし、ビットロットを防ぐためにもね。それに、NASは全体パッケージとサブスクリプションとして売られ、最初の2年間は暗号化されたバックアップサービスが含まれて、その後はバックアップのサブスクリプションが必要になる。利益率はまずハードウェアで、その後はiCloudやGoogleストレージのように階層ごとに課金される長期バックアップで得られる。1.5TBのストレージが2TBのストレージとして課金される感じ。2014年以前は、AppleがTime Capsuleのためにこのルートを取るかもしれないと思ってたけど、結局iCloudに力を入れたよね。Googleは絶対にこのルートを取らないし、Microsoftも興味ない。Amazonはこれをやるべきだったけど、冷却ストレージバックアップとバンドルするのに十分な実績がない。完璧な解決策があっても、Metaを信頼する人は少ないと思う。2012年以前は、Appleがある程度顧客中心であることに賭けられたけど、UniFiがやるかもしれないね。彼らは2ベイのUNASを発表したばかりで、実は時価総額が40Bの会社だって最近知ったよ。(もっと小さいと思ってた)

NASは全体パッケージとサブスクリプションとして売られる… まったくポイントを外してるね。

Synologyは自社のNAS向けにクラウドバックアップサービスを提供してるよ。他のブランドも、他のサービスに簡単に接続できるしね。

「最初の2年間は暗号化されたバックアップサービスが含まれていて、その後はバックアップのサブスクリプションが必要です。」サブスクリプションをやめたらNASが使えなくなるのか、そうじゃないのか、ちょっと混乱するよね。もしサブスクリプションなしではNASのデータにアクセスできなくなるなら、NASはただのクラウドになっちゃうし、初期費用と自分の電気代がかかるだけだよ。個人的には、できるだけクラウドからデータを移してるところ。Synologyといくつかのシングルボードコンピュータでいろんなサービスを動かしてるし、親の家には写真用にSynologyを置いてる。親の写真は私のNASにバックアップされて、私のデータは親のSynologyに。Synologyが今年から全製品を劣化させることに決めたのは残念だけど、UGreenは今のNASが手狭になったときの代替品として良さそう。

私はこの分野でFOSSプロジェクト「Blobcache」に取り組んでる。https://github.com/blobcache/blobcache アプリケーションの状態を保存するためにサーバーを信頼するのは、変更を加えたりデータを読むために信頼するのとは違うよね。サーバーはもっとシンプルになって、クライアントは賢くなるべきだと思う。アプリを使うときは、アプリがストレージからE2E暗号化された状態を読み込んで(別のマシンかもしれないし、自分が持ってないかもしれない)、変更を加えて新しい暗号化データをサーバーに送るのが理想。サーバーは耐久性と不正アクセス防止のためだけに信頼されるべきで、どちらのことを正確に行っているかを教える必要はない。Blobcacheは、シンプルなストレージサーバーと賢いクライアント間でE2EE状態のトランザクションを促進するAPIを提供してる。古いハードウェアにTailscaleのようなVPNをインストールして、他のデバイスからデータを読み込むこともできる。設定はSSHのように、アクセスを許可するために設定ファイルにキーを入れるだけ。ストレージをリソースとして消費・生成する際の摩擦をほとんど取り除いてくれるんだ。私はこれを使って、GitのようなE2EEバージョン管理を作ってるけど、ホームディレクトリ全体のためのものだよ。https://github.com/gotvc/got

完全な初心者として、atprotoの力と自分がドメインを持っていることをどう活用すればいいの?