# Polybase https://polybase.xyz/ Ceramicsに似ているサイト。 分散データストレージとしての比較でしかないので、VC/DIDなどは考えていない。 (にしても営業力が強すぎる) https://forum.ceramic.network/t/ceramic-vs-polybase-spacetime/372 NoSQLのサービスとして検索周りはFirestore,Supabase,PostgreSQL などと勝負しようと している。 ```js import { Polybase } from "@polybase/client"; const db = new Polybase({ defaultNamespace: "your-namespace", }); await db.collection("City").create(["tokyo", "Tokyo"]); await db.applySchema(` collection City { id: string; name: string; country?: string; constructor (id: string, name: string) { this.id = id; this.name = name; } setCountry (country: string) { this.country = country; } // Fn ignores all above rules, so anything needed must be reimplemented transfer (b: record, amount: number) { # ctx is in global scope of fn # error() is in global scope of fn if (this.publicKey == ctx.publicKey) { throw error('invalid user'); } } } `, "your-namespace" ); const data = await db.collection("City").record("tokyo").get(); ``` なおEthereum/Emailで認証もできる ただ実装が不明瞭なので謎が多い。 誰に見せるかなど柔軟なアクセス管理については `Polylang` という自作言語でできそうだが あまり言及されていない。Roleに関しても特に言及はない。 https://polybase.xyz/docs/authentication ```js import { Polybase } from '@polybase/client' import { ethPersonalSign } from '@polybase/eth' const db = new Polybase({ signer: (data) => { return { h: 'eth-personal-sign', sig: ethPersonalSign(wallet.privateKey()), data) } }) }) ``` ![](https://i.imgur.com/pUbFa1l.png =300x) 作成したデータ(Collection)はExploreで閲覧できる。 - https://explorer.polybase.xyz/ TxをQueryとして閲覧できる。 - https://explorer.testnet.polybase.xyz/ - https://explorer.testnet.polybase.xyz/collections/demo%2Fsocial%2Fusers ## うしろの仕組み データの保存場所は自由に設定でき(分散型/集中型)、Polybaseではなくサービス提供者が管理することができる。 ポイントとしては、データはオフチェーンで保存し、チェーン上でMerkleTreeRoot hashとzk-proofsを用いて検証することで改ざんされていないことをチェーンを使い保証しつつ、Web2的なスケーラビリティを実現できる。 なお今はAplha版なので、PolybaseのGateway経由でしかデータにアクセスできない。 未来的にはOpenにして誰でもValidatorを立てることができる。 ### zkRollup MerkleTreeRoot hashとzk-proofsのみをOn-Chainに書き込むので CeramicsAnchorServiceとは違い、Hashの中身を知ることなく Pluggable Module などデータ保有者がHash元のデータを持つことだけをブロックチェーンに書き込むことができる。 イメージ $P(Hash(data))=X$ においてVerifierは$data$を知らなくても$P(Hash(?))=X$になる事を検証できる。なので、data自体はオフチェーンでも改ざんされていない事が保証できる。 これをRollupして保存する。 ### コスト Aplha版は無料だが、今後はFirebaseと同じ形でCollectionを保存したい開発者が払うことを想定している。 なおPolybaseはMainnetになった段階でトークンを出し、Validateやデータ管理をしてくれた方にインセンティブを与える&Polybaseの収益とする未来がある。 最終的には、 メインネットと完全な分散化を達成した後(2023年半ばに予定)、ネットワークは私たちの監視なしに運営され続けるので、私たちは会社を閉鎖し、プロトコルの継続的な管理に責任を持つDAO(分散型自治組織)に置き換える。 ![](https://i.imgur.com/XI9gZbR.png =700x) ![](https://i.imgur.com/mdvwlHp.png =800x) ## おまけ ![](https://i.imgur.com/0Mc7Y5A.png) # Ref https://polybase.xyz/Polybase_A_Decentralised_Query_Index_and_Storage_Protocol-v2.0.pdf