Tezosハンズオン

Tezosハンズオン

Jun 15, 2019
meetup, Blockchain
Tezos, Hands-on

Tezosとは #

  • 第3世代のブロックチェーン
  • 2018-09: Mainnet開始
  • ペーパーで約束されたものをほぼ実装した.
  • 財団がRandDにお金を出してる.
  • PoS

Tezosの特徴 #

  • プロトコルはステークホルダーの物というのが第一の信条.
    • LPos: Liqid Proof of Stake
    • オンチェーン・ガバナンス: 自己修正投票
  • 安全第一
    • 形式検証を用いている

DPoS #

Proof-of-Stake #

  • トークン所有量に応じたブロック生成権が与えらえる.
    • ASICが必要ない
    • 手数料が高騰しない
    • 環境に良い
  • トークンを所有していないマイナーからプロトコルをステークホルダーに解放する.

Delegated PoS (委任PoS) #

  • ステーク投票により選ばれた少数のノードにブロック生成権を与える.
  • 権利を投票に使う.
  • EOSが代表格
  • 利点
    • PC持ってないステークホルダーも間接的にブロック生成に参加できる.
    • ノード数を減らすことで合意形成効率を上げられる.
  • 欠点
    • 過度にノード数を減らすと分散性・安全性を損なう.

Liquid PoS (Tezos) #

  • 選ばれた少数のノードではなく, 誰でもベーキング(ブロック生成)できる.
  • マーケティングにより, マイニングとは言わずにベーキングと言う.
  • ベーカリー(ベーキングの委任を受ける業者のこと), ベーキング権(マイニングする権利), ベーキング(マイニングのこと)という.
  • マイニングを少数ノードに牛耳られることなくステークホルダーに還元するためにLPoSを採用している.
  • 現在450〜500くらいのノードがある.
  • スピードは狙ってない.
  • 現在は30〜40TPSくらい.

Liquid Democracy (PoSとDPoSの間の概念) #

  • 直接民主制(PoS)から代表民主制(DPos)へ.
  • Liquid Democracy(LPoS)は直接民主制と代表民主制の中間の概念.
  • Liquid Democracy(LPoS)は議題ごとに代議員を選ぶことができる.
  • TezosはLiquid Democracy(LPoS)を採用している.

オンチェーンガバナンス #

ガバナンスとは #

  • どうやって改良(フォーク)していくかの手続きのこと.
    • ソフトフォーク(後方互換)
    • ハードフォーク(後方非互換)

ハードフォークのリスク #

  • プロトコルのハードフォークはコミュニティのハードフォークも生む危険性がある.
    • DAOによるEthereumとEthereum Classicの分裂
    • Bitcoin Cashのハードフォークとハッシュ戦争
  • ガバナンスの目標
    • どうコミュニティの分裂を避け, プロトコルをスムーズに進化させていくか.

オンチェーン・ガバナンス #

  • プロトコルをスムーズに進化せていくための手法.
  • フォーク手続きがプロトコルに実装され, 過程が全てチェーン上に記録される.
    • プロトコル更新の提案
    • 更新のテスト
    • 採用投票
    • 採用後の自動移行
  • プロトコルの所有権を開発者やカリスマからステークホルダーの物とした.
    • けれども投票で独裁化することできる.
    • プロトコル自体も投票で決めることができるので.
  • 危ないっちゃ危ない.

変更できる部分のプロトコルの分離 #

  • シェル(ハード寄りの部分)
    • オンチェーン・ガバナンスの対象外
    • ネットワーク通信, ストレージ等の実装
  • プロトコル(脳みその部分)
    • オンチェーン・ガバナンスの対象
    • トランザクションの意味やコンセンサスを定義

Tezosのオンチェーンガバナンス #

  • プロトコル変更をコードとして提案, P2Pで配布する.
    • 第1回投票: 提案の1つを選択
    • 第2回投票: テストするか投票
    • テストが本番と並行して動かされる
    • 第3回投票:

初めての修正 #

  • Gas Limitの変更
  • ステーキング参加条件の緩和(10000 -> 8000)
  • 名称はAthenes(アテネ)

初めての修正後の課題 #

  • ノードの自動更新は成功したが, サードパーティのウォレットなどの一部が更新を知らなかった.
  • 最短で3カ月ごとに更新される.
    • これは割と忙しい.

Tezosと安全性, 形式検証 #

形式検証 #

  • 安全性を数理的に完全に証明する.
    • 検証に適した関数型言語OCamlを採用
    • 型システム, モデル検査, 定理証明を採用
    • 以上をすべての分野に採用する
    • ノード実装, スマートコントラクト

Tezosのスマートコントラクト #

  • 安全性を優先したデザイン
  • VM: Michelson
    • 静的型付け, 純粋関数型のスタックVM
    • 人間でも一応読み書きできる
  • 高級言語もある
    • Ligo, fi

ユースケース #

  • Elevated Returns: 不動産のトークン化の基盤
    • 不動産の証券化を行う.
  • Tezsure: ブロックチェーンを用いた簡易保険
  • Chorus Mobility: 自動運転車間の交通優先権取引
  • Viaz: P2P funding platform
  • Decet: 農作物先物取引市場
  • etc…

これから #

  • エコシステム
    • ディスク使用量の改善
    • 改良, 検証された高レベル言語, 形式検証ツール
  • プロトコル改訂
    • BFTコンセンサスの導入, PVSSによる乱数生成
    • zk-SNARKSの採用
  • セカンドレイヤー
  • Marigold(:=plasma)

ブロックチェーンとは #

  • 台帳方式
  • 分散環境
  • 開かれたネットワーク
    • Paxosは閉じたネットワークでは合意形成ができる.
    • 開かれたネットワークではSybil攻撃(成り済まし攻撃)があるのが問題.
    • それを解決したのがSatoshi Nakamoto.
    • ネットワークとは無関係の資源占有による制限を取り入れた. (PoW, PoS etc)
  • トークン
    • 分散データベースを作りたかったけど, Sybil攻撃を防ぐために資源占有を促すためのインセンティブとして仮想通貨(トークン)が生まれた.
  • スマートコントラクト
    • 安全性が超大事.

形式検証 #

  • 数理的にプログラムが好ましい性質を持っていることを証明する.
  • 静的型付け
  • モデル検査
  • 定理証明
  • 産業的には, クリティカルシステムに使われてきた.
    • 航空宇宙産業
    • 原子力発電

Tezosの流れ #

  • やりたいことをアカウント操作にする.
  • 操作をP2Pネットワークに放流する.
  • ベイカーが操作を取り込んでブロックを作る.
docker pull furuse/tezos-hands-on:2019-06-15
docker run furuse/tezos-hands-on:2019-06-15 curl -I https://tezos.com
git clone https://gitlab.com/dailambda/docker-tezos-hands-on
cd docker-tezos-hands-on
git checkout master
git pull
./tezos-client get balance for alice
./tezos-client add address jun tz1ZD7QcE3yWfj6v8pwfbKTgdb3HU1q8EMM4
./tezos-client get balance for jun
./tezos-client list known addresses
./tezos-client transfer 111 from alice to jun
./tezos-client list known contracts

Tezosのツール #