2022年6月29日 2 min read

Micro-Bitcoin

こんにちは。AndGoのハードウェア担当の片山です。

今回はマイコンなどの低スペックのプロセッサ上でも動作するハードウェア用ライブラリであるuBitcoin (Micro-Bitcoin)のリポジトリの中身を見てみたいと思います。

UBITCOINとは

uBitcoin(https://github.com/micro-bitcoin/uBitcoin)は32bitマイコン用の軽量なビットコインライブラリです。鍵生成,リカバリーフレーズの生成,拡張公開鍵の生成,トランザクションへの書名といったウォレットを作るために必要なものが一通り揃っています。前回紹介したBowserWallet(https://github.com/arcbtc/bowser-bitcoin-hardware-wallet)やKooper(https://github.com/arcbtc/koopa)や昨年12月1日の記事でも同様のライブラリが使用されています。作者はSpecter Walletの開発にも携わっているStepan Snigirevというドイツの方で,個人で開発をされているようです。

uBitcoinはハードウェアに依存しないC++で書かれているので,様々なマイコンで使用することができ,Trezorなど多くのハードウェアウォレットに採用されているSTM32はもちろん,RISC-VやESP32などでも使うことができます。また,Arduino IDEからライブラリを簡単にインポートできますので(https://www.arduino.cc/reference/en/libraries/ubitcoin/),M5Stackのようなホビー用途でも使われているプラットフォームを利用して,独自のハードウェアウォレットを作ることもできてしまいます。ただし,Arduino IDEに対応しているとはいっても,Arduino Unoには対応していません。というのも,Arduino Unoは搭載しているマイコンが8bitですし,フラッシュメモリも32kBしかないためです。

また,楕円曲線暗号やハッシュ関数等の演算についてはオリジナルではなく,trezorのものをつかっています。きちんとメンテナンスされているコードですので信頼もおけるはずです。

Great! You’ve successfully signed up.
Welcome back! You've successfully signed in.
You've successfully subscribed to ビットコイン研究所.
Your link has expired.
Success! Check your email for magic link to sign-in.
Success! Your billing info has been updated.
Your billing was not updated.