2017年2⽉3⽇、4日、5⽇の3日間にわたり、DG Labは「Blockchain Core Camp」(以下、BC²)を開催した。DG Labは 2016年7月(東京)、11月(San Francisco)と2回に渡りブロックチェーンをテーマに「THE NEW CONTEXT CONFERENCE」(以下、NCC)を開催してきた。NCCは主にビジネスパーソンをターゲットに開催されたカンファレンスだったが、今回のBC²は、3日間にわたり一般のエンジニアを対象に、ビットコインで用いられているブロックチェーン技術のコア実装をハンズオン形式で体験することを目的にワークショップとして開催した。本ワークショップは今後も不定期に複数回開催することを予定しており、初回となる今回はビットコインのコア実装を中心に、その応用や将来的に期待されている技術なども網羅、ブロックチェーン技術の基礎から拡張技術まで幅広く体験することを目的とした。トレーナーとしては、ビットコインコアへのコントリビューション実績を持つメンバーを含むDG Labのエンジニアチームを始め、海外からも、ビットコインのコアデベロッパーであるThaddeus Dryja氏(Blockchain Layer2技術として注目を集めるLightning Networkの発明者)、Jeremy Rubin氏(マサチューセッツ工科大学 Digital Currency Initiativeのファウンダー)、Nicolas Dorier氏(C#版のビットコインであるNBitcoinの開発者であり、注目技術TumbleBitのC#版NTumbleBitの開発者)を迎えた。
本記事では、BC²のダイジェスト映像と、各セッションで議論された内容の概要をセッション順に紹介する。
DG LabのFacebookページ にてDG Labの活動を更新中。ご興味ある方はこちらからフォロー。
<Day1:基礎>
Day1はビットコインの基礎から始まり、徐々にビットコインコア(難しい内容)へ。最後はJeremy Rubin氏によるビットコイン開発現場の話が好評を博した。初日という事やそのボリュームの多さ、難易度の高さから最後には参加者の若干疲れた様子もうかがえた。
ビットコインの可能性(by 渡辺 太郎)
ビットコインの基本と体験(by Anditto Heristyo)
Transactionデータの作成(by 中川 卓俊)
RPCアプリの作成:注意とベストプラクティス(前半)(by Karl Johan Alm)
パフォーマンスを重視するビットコインでの開発手法、その仕組みとプロセス(BIP, PR, 等)(by Jeremy Rubin)
<Day2:拡張>
C++とRPCを触る(by Karl Johan Alm)
はじめにRPCの機能一覧を解説、実際にコマンドを追加した際のデバッグなどにも触れる。演習問題ではウォームアップで簡単なコマンド追加から、あると役に立つコマンドの追加なども体験。かなり難易度の高いセッションとなり、音を上げた参加者も。
Bitcoin as a Platform(by Anditto Heristyo)
Segwitの特徴と利用(by 中川 卓俊)
LockTimeを利用したP2SH(by 中川 卓俊)
最後は実際の演習により、LockTimeを含んだScriptの作成、P2SHアドレスの作成、P2SHへの送信、Block化の確認などを体験した。
TumbleBit for scaling and privacy(by Nicolas Dorier)
付箋や実物のペンによる署名行為などフィジカルなアプローチで丁寧に説明を行った。
コンセンサスとOrphan Block(by Anditto Heristyo)
<Day3:将来>
最新の課題(by Anditto Heristyo)
RPCアプリの作成:注意点とベストプラクティス(後半)(by Karl Johan Alm)
PoWゲーム&Diffie-Hellman(by Thaddeus Dryja)
Structuring Multi Transaction Contracts(スマートコントラクト)(by Jeremy Rubin)
Lightning Network(by Thaddeus Dryja)
総括セッション(by 渡辺 太郎)
Future of Blockchain : Ideathon / Hackathonをやってみよう
ちなみにBC²の2週間後、ワークショップに参加した10人以上のエンジニアがビットコインコアに対してPRを始めていた。今は規模は小さくともBC²が日本のビットコインコアデベロッパーの第一歩になったのであれば、少なからず意味を持つイベントであったと思う。