メインコンテンツまでスキップ

Introduction

LCP(Light Client Proxy)は、検証対象のChain(以下、Upstream)に対して、検証側Chain(Downstream)の代わりにLight Client検証を行い、Downstream chain側はその妥当性を低コストで検証可能にするProofを生成するミドルウェアである。

Cross-chainの通信のための検証方式には様々な方式が存在する。代表的な方式として

  1. TokenのAtomic Swapに特化したHTLC方式
  2. chain外の単一もしくは複数のpartyから構成された信頼できるExternal Validators方式
  3. 互いのChainのconsensusを検証するLight Client方式

などがある。1.はAtomic Swapに特化しており汎用性がなく、2.は担保やOracleを用いるなど多くのバリアントが存在するが、共通してそれらのpartyへの追加の信頼の仮定が必要である。3.は、この中で応用性と追加の信頼の仮定が不要である点で優れているが、実装コストの高さによる拡張性の低さと検証コストの高さに難がある。

Light Client方式の検証コストの高さは、ChainごとのConsensus algorithmと検証環境における検証に必要な暗号プリミティブのサポートの有無に依存している。これにより、例えばEVM系チェーンにおいて検証処理の実行コストの高さ(gas cost)がしばしば問題になる。また、Light Clientの実装はChainの組み合わせごとに必要となることから拡張性に難がある。

これらの課題に関する取り組みとして、対象チェーンの検証を代替するProxy方式を実現する、ibc-proxy がある。これは、検証対象のUpstream chainをDownstream chainの代わりに検証するProxy chainを導入し、Downstream chainはProxy chainを検証する。これにより、各chainは通信先chainごとのLight Clientの実装を不要とすることができる。しかし、このアーキテクチャはProxy chainが信頼できるという追加の仮定を必要とする。

TEE(Trusted Execution Environment)とは、プロセッサ上の隔離された環境である。特徴としては開発者は任意のプログラムを構成し、それを隔離環境であるEnclaveで実行可能である。また、TEEの代表的な実装であるIntel SGX、AMD SEVは、Remote Attestationと呼ばれる、ハードウェアを含む実行環境やそのプログラムを第三者に証明可能とする機能を提供する。

我々は、TEEを用いてEnclave内でLight Client検証を実行し、低コストで対象Chainの妥当性の確認を可能にする新たなProxy方式としてLight Client Proxy(LCP)を提案する。この方式では、Enclave内に対象Chainごとに1つのLight Client実装のみを必要とするため拡張性を高めることができる。また、検証元のchainはLight Client検証の代わりにEnclave内で生成された鍵による署名検証のみを実行する。これにより通常on-chainの検証コストを大きく下げることができる。さらに、新たな中間Chainではなく、TEEをProxyとして用いることによりシステムの信頼仮定を最低限に抑えることができる。