🚀

Bitcoin Cashのスマートコントラクト開発の第一歩

2024/12/16に公開

はじめに

OKUNアドベントカレンダーの16日目です!

OKUNのフィリピン拠点ではブロックチェーン技術を使ったプロダクトを開発しています。フィリピンの社会課題を解決するプロダクトとして拡張性と実用性が重要なので、プラットフォームにはビットコインキャッシュ上のスマートコントラクトを採用することにしました。(技術選定理由の詳細についてはまた今度。)

今回はそのBCHのスマートコントラクト開発をするうえで、何を参考に進めていくべきかを簡単にまとめていきたいと思います!

こんな人に向けて

  • ブロックチェーンの開発に興味がある方
  • ビットコインキャッシュのスマートコントラクト開発に興味がある方
  • すでにイーサリアム系で開発したことがある方
  • ブロックチェーンの基礎知識がある方(細かい用語の説明は省いています)

まだまだ新しい技術なので、できるようになれば先駆者になれること間違いなしです!
一緒に開拓していきましょう!

Bitcoin Cash(BCH)って?

「通貨であれば、送金が早く安くできるべき」という理念を根底に持ち、
2017年にBitcoinのスケーラビリティー課題を解決するためにBTCからハードフォークをして生まれた暗号通貨です。2023年5月のアップグレードによりスケーラビリティを兼ね備えた高度なスマートコントラクト開発が可能となりました。

何が嬉しくてCashTokens開発するの

CashTokens開発の魅力は、低い手数料の他にも、BCHのスケーラビリティを活かし、トランザクションの処理速度を確保しながらスマートコントラクトを実行できる点です。特に、分散型金融(DeFi)アプリケーションやNFT、資産のトークン化などで、そのメリットが際立ちます。手数料が低いため、少額の取引や頻繁に行われるトランザクションに対しても、高コストの問題を心配せずに利用することができます。

開発のみちしるべ

BCHのスマートコントラクト言語:CashScriptとは

イーサリアムのコミュニティーでの開発経験も豊富なRosco Kalis氏によって作成されたスクリプト言語です。文法はJavaScriptやイーサリアムのスマートコントラクト言語であるSolidityと似ており、スマートコントラクトの実装経験がない初心者でも、比較的簡単に扱えます。TypeScript SDKを提供しています。

公式ドキュメント

基本的にこのドキュメントを軸に作業を進めるのが良いでしょう。
Basicsでは言語の概要とビットコインキャッシュで開発するうえで理解しておくべきことが記載されているので必読です。

CashScript公式ドキュメント:
https://cashscript.org/

言語と動作を学ぶ:CashScript Playground

Web上でスクリプトを書きスマートコントラクトを実行するところまで動作を確認できるPlaygroundツールです。面倒な準備に煩わされることなく、CashScriptを学ぶことに集中できます。

Playgroundの機能

機能 説明
コードエディタ スクリプトを編集します。
コンパイラ スクリプトを機械語にします
コントラクトの作成 コンパイルしてできたコントラクトの雛形に対して、
具体的なパラメータをセットしコントラクトを作成します。
ウェブウォレット クリックひとつでテスト用のウォレットを追加したり、
模擬的な残高をつくることが出来ます。
(テストネットの残高を取得してくる必要もないです。)
トランザクションビルダー テストネットに向けて、BCHチェーンコントラクトの
設定と送信ができます。

コードエディタ・コンパイラ

コントラクトの作成


ウェブウォレット

トランザクションビルダー

デバッグ方法

デバッグ方法については、こちらのyoutubeチュートリアルでPlaygroundの作成者本人である
Mathieu Geukens氏が動画で解説しています。英語ですが、自動翻訳字幕を日本語に設定すればなんとか理解できるかと思います!
CashScript Playground Tutorial (mocknet + debugging)(英語):

https://www.youtube.com/watch?v=jnU3z96q8Ys

エディタ環境:Visual Studio Code

本格的に開発を始めたい人はVSCodeを使用するのがオススメです。
Visual Studio Code 向けには、Nathaniel Cherian氏によって専用のCashScript 拡張機能(cashscript)が開発されました。
このプラグインは.cashファイルで動作し、構文の強調表示、自動補完、スニペット、リンティング、さらには統合コンパイルもサポートします。

ハイレベルのCashScript サポートがあるため、Visual Studio Code とこの CashScript 拡張機能を組み合わせて CashScript コントラクトを開発することが推奨されています。

CashScript開発者コミュニティー

BCH CompilersのTelegramグループ: https://t.me/bch_compilers

上記で言及した開発者を筆頭に、アップデート情報や質問などの交流が行われています。
英語のコミュニティーなので少しハードルが高いと感じるかもしれませんが、提唱者本人たちからの回答やサポートが得られる貴重な場所なので、開発するなら押さえておきたいですね。

CashScriptで開発されたプロジェクト例

BCH BULL

取引所や第3者を介さず、チェーン上のスマートコントラクトのみで運営されているトレーディングプラットフォームです。BCHの買い、売り、ヘッジをすることができます。現在620万ドル(日本円で約10億円)ほどがスマートコントラクト上で取引のために保持されています。
Web site:
https://bchbull.com/

CASH NINJA NFT

Mathieu氏によって作成されたNFTプロジェクトです。
NFTプロジェクトを作成してみたい方は参考にできるかもしれません。
Web site:
https://ninjas.cash/
Github:
https://github.com/cashninjas

で、何を開発したらいい?

上記のMathieu氏が言われていたことを紹介します。

BCHのスマートコントラクト機能は比較的新しく、まだイーサリアムのコミュニティーほどプロダクトが充実していません。何を開発したいかアイデアに迷う場合でも大丈夫です。イーサリアム系コニュニティーで成功したアイデアをビットコインキャッシュ上のスマートコントラクトに適用させてみればいいのです。同じプロダクトアイデアでも、手数料が安く高速に処理できるより良いプロダクトを効率的に作ることができでしょう。

おわりに

最後まで読んでいただき、ありがとうございます。
いかがだったでしょうか?
ブロックチェーンの基礎知識がある方に向けとして書きましたが、誰だってどこかで一歩目から始めることになります。分からない用語や仕組みなんで数え切れないほど出てくると思いますが、少しでも興味がある方が第一歩を踏み出すきっかけになれば幸いです!

O-KUN Tech Blog

Discussion