---
# System prepended metadata

title: Polybase

---

# 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