Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Zerochain

zak
March 26, 2019

 Zerochain

LayerXの開発を進めているZerochain ( https://github.com/LayerXcom/zero-chain )についての発表資料 @blockchain.tokyo
2019-03-26 会場: Microsoft

zak

March 26, 2019
Tweet

More Decks by zak

Other Decks in Programming

Transcript

  1. Who am I? zak (Twitter: @zak74702675) ⧫ 慶應義塾大学 理工学部 金子研究室所属

    ⧫ LayerX R&D インターン ⬪ 2月~ ⬪ Zerochainのお手伝い 2
  2. Zerochain technical stack (1) 7 Substrate by Parity Tech. zerochain

    module by LayerX inc. P2Pやコンセンサス 等の機能を提供 秘匿化スキーム with Jubjub & Bellman Substrateに組み込むモジュールとして 秘匿化スキームを実装
  3. Zerochain technical stack (2) 8 ⧫ Bellman ⧫ groth16という仕様の,Zcashが研究開発を進めて いるzk-SNARKs実装

    in Rust ⧫ https:/ /github.com/zkcrypto/bellman ⧫ zerochainではTxの正当性を主張するproofの生 成と検証に使用.
  4. Zerochain technical stack (3) 9 ⧫ BLS12-381 ⧫ BLS12-381楕円曲線の実装 ⧫

    BLS12-381はpairingの値を効率的に計算すること が可能 ⧫ BLS12-381有限体上の楕円曲線:Jubjub ⧫ zerochainではこの楕円曲線を用いたRedjubjub という署名をTxに施している.
  5. Confidential payment on zerochain 想定するシナリオ ⧫ AliceはBobに40送金したい ⧫ AliceもBobも自分の残高を自 分以外の者に対して秘匿化し

    たい ⧫ Aliceは「自分がBobに対して いくら送ったか」を第3者に対し て秘匿化したい ⧫ Bobは「Aliceが確かに40を自 分に送金していること」を確認し たい ➫ ゼロ知識証明 Alice Bob Charlie 11 Before: 100 →After: 60 Before: 100 →After: 140 Transfer 40
  6. Storage 12 Storage \ Encrypted balance Alice 0x194ac Bob 0xde531

    ⧫ アカウントに紐づく(Lifted ElGamal暗号によって)暗号化 された残高がチェーンに記録さ れる. ⧫ Lifted ElGamal暗号は加法準 同型暗号なので暗号化したま ま加減算が可能. ⧫ アカウントごとに残高を復号化 する秘密鍵bdk (balance decryption key)が存在する.
  7. Transaction structure 13 Alice Sign: Tx Remit 40 unit from

    Alice to Bob. Proof (後述) Sender’s addr Alice Recipient’s addr Bob Encrypted value for sender 0x124ab... Encrypted value for recipient 0x057ee... Encrypted balance for sender 0x994dc...
  8. Proof (1) 14 ⧫ Aliceは自分の残高を見せたく ないし,Bobにいくら送金したか を第3者に隠したい. ⧫ BobはAliceがきちんと40送金 して,自分の残高が更新された

    ことを確認したい. ⧫ システムとしてAliceが不正な 値(自分の残高以上や負値)を Bobに送金できないようにした い. ➫ Proofを見て以上が満たされて いることを確認したい. Alice Bob Proof check true/false 0x37485bcdeef719a... Proof Txに付されるProofを検証. これによって送 金される値が変 な 値 ではないこと( 次 頁 の statementを 満 たしているこ と)が保証される. Proof自体からAliceの送金額は 求められない(zk) Pairing Check
  9. Keys 17 残高を秘匿化するための鍵系 公開鍵 秘密鍵 bdk - 公開情報 - Aliceの

    残高を暗号 化 するに 使 用 - Aliceの残 高の復号化 に使用 - 監査用鍵 として 使 用 可能 公開鍵 - 公開情報 - Txが正当 にAliceから 発 行された かを確認時 に使用 Txに署名を施すための鍵系 秘密鍵 - AliceがTx 発行の署名 時に使用
  10. zerochain v.s. Zcash ⧫ Zcashと比較してzkの証明コストが抑え られるように全体をデザイン. ⧫ Account-Based ➫ ストレージに保存しておくべきデータ容

    量が削減可能 ➫ 加えて,任意のStateを扱うことが可能. ➫ 例えばSecurity Tokenの台帳と しての利用.投資家にとって「何 をどのいくら持っているか」は秘 匿化したい情報. ⧫ Account Baseな秘匿送金スキームは ペーパーレベルでは提案されているも のの,実装は世界初(弊社調べ) ⧫ UTXO-Based ⧫ 「誰が誰にいくら送金」を秘匿化するこ とが可能. 19
  11. What’s next? 20 ⧫ アカウントの秘匿化に対応. ⧫ 証明系をBulletproofsにも対応. ⧫ setupが不要. ⧫

    Walletの開発 ⧫ wasmで動くwebウォレット ⧫ 監査のための閲覧用ウォレット ⧫ Security Tokenの管理など,通貨以外の分野への応用可 能性の検討と実装
  12. 22

  13. Features of Substrate (1) 23 ⧫ Substrate ⧫ ブロックチェーンを用いたシステムに必須となるP2P のnetworkingやconsensusアルゴリズムを提

    供. ⧫ “Substrate runtime module library (SRML)”と して独自機能を取り込ませることでブロックチェーン そのものを開発することが可能. ⧫ modularな設計から高い拡張性を実現.
  14. Features of Substrate (2) 24 ⧫ P2P networkingにはLibp2p を採用 ⧫

    ConsensusはHybrid PBFT/Aurandをdefault採用 ⧫ Aurandでintermediateなfinalityを与え,PBFTで absoluteなfinalityを与える. ⧫ Aurandで5 sec/block,PBFTで30 sec/block Aurand PBFT
  15. Features of Substrate (4) 26 ⧫ Substrate Core ⧫ Block

    synchronisation ⧫ Extensible JSON-RPC API endpoints ⧫ Crypto primitives library ⧫ Pervasive and secure networking via libp2p ⧫ Storage ⧫ Telemetry ⧫ Light client ⧫ Chain specification and versioning ⧫ Pluggable consensus ⧫ Low-level JavaScript utils ⧫ Transaction queue and block production mechanism ⧫ Sandboxed WebAssembly interpreter ⧫ Interchain connectivity via the Polkadot protocol
  16. Features of Substrate (5) 27 ⧫ Substrate Runtime Module Library

    ⧫ Accounts & Balances - basic cryptocurrency, including account management and viewing ⧫ Assets - simple, secure additional on-chain fungible assets ⧫ Consensus - setting and modifying runtime code and storage (i.e. the set of authorities as a list of session keys on-chain), and reporting offline or misbehaving validators ⧫ Contracts - turbo-charged Wasm-based smart contracts ⧫ Council - council election and proposals ⧫ Democracy - public proposals and referendums ⧫ Sessions - key rotation for authorities ⧫ Staking - Proof-of-Stake logic, including both staking and nominating of validator accounts ⧫ Timestamp - have your chain know about time ⧫ Treasury - decentralised grants, similar to a DAO
  17. Features of Substrate (6) 28 ⧫ ブロックに刻むデータ構 造とロジックを記述するだ けで,実際に動くチェーン を開発することが可能.

    ⧫ チュートリアルとして Substrate Kittiesという子猫 の管理/売買システムを開発することができるので 是非.
  18. Features of Substrate (7) 29 ⧫ Substrateで開発されたチェーンはhard forkせずとも ロジックをupdateすることが可能. ⧫

    チェーンロジックをwasmとして吐き,それをネット ワーク内に通常のメッセージと同様に伝搬させるこ とでチェーンを止めることなくチェーンのロジックを 変更するようにSubstrateが取り計らってくれる.