ページを読み込んでいます。下に本文があります。
一般的な業務ツールは、入力したデータを運営会社のサーバーに預けます。便利な反面、運営会社が中身を見ることができ、サービスが終了すればデータの取り出し先も失われます。
このサイトは逆の設計にしています。データは端末の中で暗号化してから外に出るため、サーバーやブロックチェーン上にあるのは暗号文だけです(運営者が復号できるかはログイン方法で変わります。下のよくある質問を参照)。保存先は特定企業のサーバーではなく Walrus という分散ストレージで、保存した記録は Sui というブロックチェーン上に残ります。サイト自体も Walrus Sites 上で配信しており、フロントエンドまで含めて特定のホスティング業者に依存していません。
Web3 アプリの最大の障壁は「ウォレットを作り、12個の単語を安全に保管させる」ことです。業務ツールとしては現実的ではありません。
このサイトは Sui の zkLogin を使い、Google アカウントでログインするだけでブロックチェーン上のアドレスが使える状態にしています。利用者はシードフレーズを一度も見ませんし、書き写す必要もありません。ゼロ知識証明によって、Google のアカウントとブロックチェーン上のアドレスの結び付きは公開されません。
ウォレットをすでにお持ちの方は、ウォレット接続(SIWS)でログインすることもできます。この場合、暗号鍵の材料は運営側に存在しないため、運営者は復号できません。
ブロックチェーンへの書き込みには手数料(ガス代)がかかります。業務ツールを使うたびに暗号資産を用意させるのは無理があります。
そこで保存に必要な Sui のガス代と、Walrus の保存料(WAL)は運営側が負担しています。利用者は暗号資産を一切持たずに、ブロックチェーンへの保存を使えます。署名も運営側の鍵で行うため、保存のたびに承認ダイアログが出ることもありません。
Walrus は保存するデータを消失訂正符号で 1000 前後のシャードに分散します。この仕組み上、どんなに小さいデータでも符号化後のサイズには下限があり、ブロブ 1 個あたり数十MB分の枠を確保することになります。
ツールごとに別々のブロブへ保存すると、この下限をツールの数だけ支払うことになります。そこで全ツールのデータを 1 つのバンドルにまとめ、利用者 1 人につきブロブ 1 個で保存しています。保存のたびに、まずリモートの最新バンドルを取得し、ツール単位の更新時刻で突き合わせてから書き戻します。別の端末が直前に保存した他ツールのデータを巻き戻さないためです。
保存するたびに新しい枠を買っていると、古いブロブが期限まで枠を占有し続けます。そこで自動同期のブロブは削除可能な形で登録し、新しい保存が確定した時点で古いブロブを削除して枠(Storage)を回収し、次回の保存で再利用しています。
回収と確定は同じトランザクションにまとめてあります。ただし回収側が失敗したときに保存そのものを巻き添えにしないよう、失敗時は保存だけを単独でやり直す二段構えにしています。保存の成功率を、節約より優先するという判断です。
Sui や Walrus を実際のプロダクトでどう使うのか、動いている例を見たい開発者の方。また「自分のデータを特定の会社に預けたくない」という理由でツールを選びたい方。
クラウドへの複製は 20〜30 秒かかります。ブロックチェーン上の確定処理を2回挟むためで、Web2 のような一瞬にはなりません。ただし入力したデータ自体は端末内(IndexedDB / localStorage)へ即座に保存されるため、その時点で失われません。クラウドは「他端末との同期と長期バックアップ」の役割です。また共有リンク(PDF共有・電子ブック)は復号鍵を URL の # 以降に載せる方式なので、リンクを渡した相手は誰でも閲覧できます。リンクの取り扱いにはご注意ください。
A. ログイン方法によって違います。ウォレット接続、またはGoogleログインで合言葉を設定した場合は、暗号鍵の材料が運営側に存在しないため、運営者も見られません。Googleログインで合言葉を設定していない場合は、鍵の材料の一部を運営側で保持しているため、技術的には復号できる状態です(合言葉を設定すると、運営者にも復号できなくなります)。どの場合も、サーバーやブロックチェーン上に置かれるのは暗号文だけです。ただし共有リンクとして公開したもの(PDF共有・電子ブック)は、リンクを知っている人が閲覧できる状態になります。
A. 不要です。Google アカウントでログインするだけで使えます(Sui の zkLogin)。保存にかかるガス代と保存料は運営側が負担しているため、利用者が暗号資産を用意する必要はありません。
A. 必要ありません。zkLogin では秘密鍵を利用者が保管しないため、12単語を書き写して金庫にしまう、といった作業は発生しません。
A. ブロックチェーン上での確定処理を 2 回(登録と確定)挟み、その間にデータを符号化して複数のストレージノードへ配っているためです。自社サーバーに 1 行書き込むだけの一般的なサービスとは処理量が違います。ただし端末内への保存は一瞬で終わっており、クラウドへの複製は裏で進むため、待っている必要はありません。
A. データは端末の中にも残っており、画面上部のバックアップからいつでもJSON ファイルへ書き出せます。また Walrus 上のデータは特定企業のサーバーではなく分散したストレージノードが保持しています。ただし保存には期限があり、期限を過ぎたものは失われます。長期保存を前提にする場合は JSON バックアップを併用してください。
A. Sui の mainnet と、その上の Walrus(mainnet)です。テストネットではありません。