皆様こんばんは、ぐぬぐぬたいです。今回はずーーーっと置いておいたPartisia Blockchainの記事(複数個に分けてます)を書きます。この記事シリーズは次の三部作くらいを想定しています。
- テクノロジー面にフォーカスした記事(この記事)
- エコシステム面にフォーカスした記事(まだ書いてない)
- ZK/スマコン面にフォーカスした記事(まだ構想すらない)
この記事では特に、次のイロハニからPartisia Blockchainのテクノロジーへの理解を深めていきましょう(著者は公式でも何でもないので、ここ違うでしょっていうところがあったら指摘してください)。
イ. トランザクション発行後、ほぼ即座(0.3s後)にブロックが生成される
イ-2. シャーディングが導入済み
ロ. zkMPCのような分散型・秘密計算サービスを提供する
ハ. ブリッジ(オラクル)サービスを分散型で提供する
ニ. 他L1のネイティブコイン・トークンを使用してガス代を支払える(BYOC)
イ. Partisia Blockchainのコンセンサスアルゴリズムとネットワーク
Partisia Blockchainは、筆者の理解ではdBFT/PoAを掛け合わせたようなコンセンサスアルゴリズムを採用しています。ノードは、25000$MPCをロック(指定額という点でdBFTらしさ)し、運営者の情報(団体名等)を公開し、審査を通過(PoAらしさ)することでコンセンサスに参加する、ベイカーノードになります(他チェーンで言うところのバリデータと思ってよいです)。
dBFT/PoAの利点として、トランザクション処理の高速化や、ファイナリティの確保が得られます。Partisia Blockchainでは、ベイカーノードはトランザクションを受け取った直後にブロック①生成を行い、2/3以上のネットワーク上のベイカーノードのブロック①に対する承認が得られれば(FastTrack コンセンサスと呼んでいます)、ブロック①が承認されたものとし、次のブロック②の生成を開始します。この際、ブロック①確定時に直前のブロック⓪について、ファイナリティを約束するのも、FastTrackコンセンサスの大きな特徴になります。
※ここで言う「ファイナリティ」とは、ブロックチェーンが何らかの理由(例えば、2/3以上の承認が得られないなど)で停止・ロールバックした際にも、ブロック⓪の状態は変わらないということです。例えば、ブロック⓪→ブロック①→ブロック②となる順番を考えた時に、ブロック①の2/3承認が取得され、ブロック②生成をしている際に、何らかの理由でロールバックが発生した場合、ブロック①に立ち戻り、処理を開始するためです。
トランザクションの取得後、即座にブロックを生成しても問題ないよう、Partisia Blockchainには既にシャーディングが実装しており、3重に並列化したブロックチェーンが動作しています。各シャードごと、1000TPSの理論値で処理されているので、現状の最大処理速度は3000TPSになります。
ロ. zkMPCのような分散型・秘密計算サービスを提供する
zkMPCは、zero knowledge Multi-Party Computationの略で、ゼロ知識証明(zk)をマルチパーティ計算(MPC)に適用した技術のことです。Partisia Blockchain foundation側としては、zkはMPCにおける必須技術になっているため、「zkMPC」とに表現することが多いです。この記事では、それぞれの用語を説明します。
zkとは、ゼロ知識証明と呼ばれる技術のことで、その名前のとおり、「相手に知識を一切与えることなく、何らかの条件を証明すること」です。この記事では、非常に簡単なケースを考えてみましょう。
皆さんがDeFiを利用するときには、たまにウォレットを接続するときにsignatureを必要とされる時がありますよね。あのSignatureの意味は、ウォレットを接続するときに、トライしている人間がウォレットを保有している本人かどうか?を検証しようとしています(もしくは、そのウォレットがサービスの規約に従うことを証明しようとしています)。
言い換えれば、あなたに対して『ウォレットの本人であること』を示せと言っているのです。
もう一度、DeFiを利用していた時を思い出してみると、DeFiの『サービス側が提示してきたメッセージ』を『当該ウォレットで署名できる』から証明が完了し、ウォレットの接続が完了します。ここで理解していただきたいのは、ウォレットについての知識を何一つ出すことなく、ウォレットの所有権を証明したということです。
このように、『ある命題を真であることを、情報をなんら出すことなく証明すること』がゼロ知識証明と言われます。(細かく言っておきますが、zk-SNARKとかとは違い、ただのzkです。たぶん。)。
ゼロ知識証明ではない例としては、署名するのではなく、DeFiサービスにあなたのウォレットの秘密鍵を渡すケースです。DeFiサービスはその秘密鍵からウォレットをインポートして、あなたが秘密鍵を持っていて、ウォレットの所有者なことを確認できます。しかし、『秘密鍵』という情報が提示されてしまうので、ゼロ知識証明ではありません。
さて、次にMPCについて、説明しましょう。MPCとは、マルチパーティ計算と呼ばれる技術のことで、複数の参加者(ここではノード)が分散して計算を行うことを指します。この際に、ゼロ知識証明がなければ、それぞれのノードはユーザーから生データ(分割された状態で)をもらい、生の答えを(分割された状態で)提供することになります。
ユーザーにとって、このようなサービスはプライバシーが守られていないため、Partisia Blockchainでは、適切にデータを暗号化した状態で分散計算し、ユーザーのデータ、答えのプライバシーを保護します。ユースケースとしては、インプットデータが個人情報だったり、研究に使っている情報だったり、アウトプットを研究に活用するときです。
Partisia Blockchainでは、ノードに$MPCを一定額以上ロックすることで、zkMPCにzkノードとして参加することができます。ユーザーは、zkMPCを実行するためのコントラクトを使用することで、秘密計算サービスを利用できます。運営は、このサービス提供形態をPrivacy as a Service(PaaS)と呼んでいます。
zkノードによって、分散かつゼロ知識証明を活用したデータの秘匿性を保持した計算により、MPCサービスが提供されます。このサービスの利用の一つとして、オラクルが挙げられます。
ハ. ブリッジ(オラクル)サービスを分散型で提供する
Partisia Blockchainでは、分散型のブリッジサービスが搭載されています。既に、Ethereumチェーンとは接続しており、ETHをブリッジできる状態であることに加え、Polygonチェーンとも接続しており、USDC(Polygon)をブリッジ出来る状態です。
それぞれのオラクルノード(ブリッジに関わる作業を担当するノード)は、Ethereum/Polygonのチェーンにアクセスし、ブリッジコントラクトの情報を確認し、ブリッジトランザクションの承認作業を行います。承認が一定数に到達すると、Partisia Blockchain上で、ETHトークンを生成し、送信します。
ブリッジの際、複数ノードによる計算が発生しているので、この作業自体もMPCの例です。ブリッジによくある、スマートコントラクト自体のバグの可能性(ETHチェーン側、Partisia Blockchain側問わず)は残っていますので、100%安全なブリッジとは言えませんが、他のブリッジノードがハックされることによる危険性は十分分散されていれば小さくなります。
さらに、オラクルノードは保証ステークと呼ばれる保証金を預ける必要があるので、ブリッジのバグが発見され、被害が発生した場合、ある程度の補償額が確定されています。
このような様々なカバーによって、Partisia Blockchainは安全なブリッジサービスを提供します。
ニ. 他L1のネイティブコイン・トークンを使用してガス代を支払える(BYOC)
最後に、④のBYOCについて説明します。Partisia Blockchainの大きな特徴であり、ブリッジと強く関係する機能です。Partisia Blockchainでは、ネイティブトークンとして$MPCが存在しますが、実は現状、$MPCはトランザクションの手数料として使えません。
代わりに、ブリッジしてきたETH(ETH_BYOCなどと書くことが多いです。)をTX手数料として消費します。すなわち、オラクルサービスを提供するノード(オラクルノード)は報酬として、$MPCではなく$ETHを取得します。この仕様から、BYOC(Bring Your Own Coin)と機能を表現します。また、BYOCに対応していて、Partisia Blockchain上にブリッジされたトークンのことをBYOC Twinsと呼びます。
現在、ETHチェーン上のERC20トークンのブリッジコントラクトの審査が実施されており、先行してPolygonのUSDCが利用できるようになっています。BYOC Twinsの価格情報はオラクルノードにより提供されており、この価格をベースとして、トランザクションの手数料やサービスの手数料が決まります。
以上、今回の記事ではあくまで機能的な側面にのみ注目し、情報をまとめました。
次の記事では、機能的側面から想定される経済的な影響、Partisia Blockchainのエコシステムとしての側面から議論します。
イエローペーパーは次のような感じで日本語訳しているので、そちらも読んでみてください:https://github.com/liray-unendlich/partisia-yellowpaper-jp/blob/main/partisia-yellow-jp.md