Pact言語をちょっと触ってみた

NodeTokyo 2018でKadenaのWill MartinoさんのセッションでPactが紹介されました。

Pactとはスマートコントラクトを記述する言語で、Kadenaというブロックチェーンで使われているものです。

僕は普段所謂スマートコントラクトを書いたりはしないのですが、Pactは特徴が面白いなと思ったので、今回はざっくり見てみたのをまとめました。

動機

既存のスマートコントラクトを記述する言語は以下に示すような問題を抱えています。

  • コードが複雑化する
  • バグを未然に防ぐ機構が弱い

これらの問題を解決するためにPactは開発されています。

特徴

形式的検証のサポートというところが熱そうですね。ただこの部分はまだ開発中とのことです。

Getting Started

オンライン

手っ取り早く試すにはオンラインのREPLがあるためそれを使うのが良いでしょう。

また、テストネット環境もWebで試せます。

手元で動かす

もちろんビルドして手元で動かすこともできます。

https://github.com/kadena-io/pact

感想

APIリファレンスがあるので困ったら読みましょう。

やはりLisp likeのシンプルなSyntaxになっていてよいです。

enforce系の式を用いることで呼び出し元の鍵などの条件を強制することができます。

こういった記述を1行でできるのはBitcoinのScriptをそのまま書くよりやはりよいですね。