関数型言語と形式手法でブロックチェーンを証明しよう

株式会社 proof ninja

@yoshihiro503

yoshihiro503

  • 株式会社 proof ninja CEO
  • Tezos core developer

yoshihiro503

  • 名古屋大学
  • 国立情報学研究所 (NII)

  • ❤️ 関数型プログラミング
  • ❤️ 型システム, ラムダ計算
  • ❤️ OCaml, Haskell, Scala
  • ❤️ 形式手法でプログラムの証明

関数型言語をやってるとよく聞かれる

  • 誰が使ってる?
  • どこで使われてる?

言語処理系

ブロックチェーンを雑に説明

  • nodeというプログラムが他のnodeと通信してネットワークを形成する
  • nodeは送金をブロックでまとめて台帳管理する

スマートコントラクトとは

  • 利用者が書ける契約書
  • 自然言語じゃなくてプログラミング言語で書く
  • 契約を厳密に書いて自動履行するしくみ
  • 間に介在する仲介業者や組織をなくせる

スマートコントラクトで

  • オレオレコインを発行
  • NFT
  • 無人交換所
  • 無人共済保険

言語処理系といえば関数型言語

そこでTezos

  • OCamlで書かれたブロックチェーン
  • 静的型付き関数型言語と形式検証
  • 世界一安全なブロックチェーンを目指す
  • michelsonという言語でスマートコントラクトが動く

スマートコントラクトもOCaml

https://www.scamlang.dev/

OCamlでかけるということはつまり

Coqで証明できる

https://github.com/proof-ninja/coq-scaml

coq-scaml

CoqTokyo

  • 隔週火曜日開催
  • Google meetオンライン開催
  • 次回は来週火曜日 10/5 https://readcoqart.connpass.com/event/225829/
// reveal.js plugins