[Zilliqa×DMM.com×LayerX] Scillaワークショップを開催しました!

はじめに

こんにちは!LayerXの山口(@yamarkz)です!

先月開催DMM.comさんの会議室をお借りして、Zilliqa / DMM.com Blockchain Labs team / LayerXの合同でスマートコントラクト開発言語 ”Scilla” の勉強会を開催しました。

本記事では開催したイベントの内容をご紹介します!

Zilliqaとは

Zilliqa(ジリカ)はスケーリング問題の解決を目指した、スマートコントラクト実行プラットフォームのプロジェクトとして立ち上がりました。

“スマートコントラクト” というキーワードを聞くと、Ethereumを思い浮かべる方が多いと思いますが、ZilliqaもEthereumと同様にブロックチェーン上でアプリケーション(スマートコントラクト)を実行するための基盤を提供します。Ethereumと大きく異なる点としては、Zilliqaはシャーディングという技術を用いてスケーリング問題を解決しようとしている点です。

彼らはトランザクションの承認を複数のシャードと呼ばれるノードのグループに分け、分散処理に裁く仕組みを導入することでスケールさせようとしています。3,600ノードがネットワークに参加している場合、6つのshardsにグループ分けされ、最大2488tpsを捌けることが過去の実験から数字が出ています。

実用的なスマートコントラクトの採用にボトルネックとなっているスケーリング問題に真っ正面から向き合い、解決に向け真摯に取り組んでいるプロジェクトとして日本でも徐々に知名度が高まってきています。

詳細な紹介は以下動画を参照。

Scillaとは

Zilliqaはブロックチェーンに加え、独自の開発言語も開発しています。それが ”Scilla” と呼ばれる今回ワークショップで使用したスマートコントラクト開発言語です。Scillaはチューリング不完全で、関数型言語ライク記法となっています。Zilliqaのブロックチェーン上で実行されるスマートコントラクトは基本このScillaを用いて開発します。

Scilla の言語設計については以下の記事で詳細丁寧に紹介されています。

Scillaはオープンソースで開発が行われており、Github上に公開されています。また、周辺ツールの開発も行われており、ブラウザエディタなども使うことが可能になっています。

ScillaのブラウザIDE

URL: https://savant-ide.zilliqa.com/

Scillaのサンプル実装 Hello World

(***************************************)
(* Associated library *)
(***************************************)
library HelloWorld

let one_msg =
fun (msg : Message) =>
let nil_msg = Nil {Message} in
Cons {Message} msg nil_msg

let not_owner_code = Int32 1
let set_hello_code = Int32 2

ワークショップ

ワークショップでは3時間行われ、Sciilaの言語仕様についてのレクチャーをZilliqa開発チームHan Wenさん(@_chanwen)より解説いただき、解説を元に実際にScillaでコントラクトのサンプル実装を行うという流れで行いました。

Crowdfunding Contract の解説
Scillaのサンプル開発に必要な実装要件の紹介

実際にScillaとブラウザIDEを用いてコントラクトのサンプル実装を2人1組みになって行いました。

テーマは「じゃんけんのコントラクトの実装」でした。簡単なテーマだと思う方がいるかもしれませんが、スマートコントラクトの開発は従来のプログラミングパラダイムとは異なり、独特で、かつ0ベースで言語仕様のキャッチアップも必要となるため程良い難易度のテーマでした。

聞く話では別のイベントで同様のテーマで実装のワークショップを行なったところ、完成まで6時間ほどかかったとのこと。今回のワークショップでは、何名かが2時間という短い時間の中でおおよその仕様を満たした実装を終えるという結果となりました。

今回のワークショップを体験した中で感じた感想や、フィードバックをZilliqaチームに共有して無事に終了することができました。

Zilliqaチームのみなさん、今回来日し、ワークショップを開催していただきありがとうございました。

集合写真

最後に

Zilliqa×DMM.com×LayerXで開催したコントラクト開発言語 “Scilla” ワークショップを紹介しました!

LayerXでは今後も将来性の高いプロジェクトと共に、ブロックチェーン技術が社会により良い形で広まる様活動していきたいと考えています。

今回開催したワークショップについてZilliqaの公式ブログでも紹介していただきました!ありがとうございます。

LayerXでは一緒にブロックチェーンという領域で共にチャレンジしてくれる方を募集しています。話を聞いてみたい!という方でも歓迎していますのでぜひ下記のリンクからご応募ください。

エンジニア: https://www.wantedly.com/projects/175017

BizDev: https://www.wantedly.com/projects/225562