LayerX Newsletter for Tech (2019/06/03–06/09)

Issue #10

今週の注目トピック

AppleおよびMicrosoftといった大手ITプレイヤーから、開発者むけのAPI・検証ツールの発表が行われた他、アプリケーション領域におけるスケーラビリティ向上にむけた取組が発表されています

Section1: PickUp

Apple、Swiftの暗号操作むけAPI「CryptoKit」を発表

Appleでは毎年6月頃に開発者向けイベントとして「WorldWide Developers Conference (WWDC) 」を開催しており、この中で新製品に関する発表などが行われることが多い。今年はプライバシーやデータ保護に関するトピックが多く、Apple独自のシングルサインオン機能「Sign In with Apple」が発表されるなどした。

この中で、iOS13におけるAppleのプログラミング言語Swiftの暗号操作むけAPIとして「CryptoKit」ローンチが発表された。既存のものとしてCommonCrypto(Swiftをサポートせず)があるが、CryptoKitはSwiftをサポートすることによって、データ暗号化や鍵生成に必要なコード量を減少させることができ、CommonCryptoをリプレイスするとされる。

機能面では、ハッシュ・暗号化といった関数や鍵管理といった暗号機能向けツールキットを提供するAPIであり、ダイジェストの生成・比較、鍵ペア生成、公開鍵暗号をつかってデジタル署名の生成・検証や鍵交換などが可能となっている。その他、鍵はメモリ内に格納することに加え、秘密鍵をEnclaveに格納・管理することも可能で、開発者によるユーザーデータ保護が容易になる。

センシティブでパーソナルなデータが次々に生み出されている結果として、アイデンティティ盗難や資金盗難といった攻撃リスクも拡大しており、ハッカー被害にあう大手企業も増加している中、「CryptoKit」はAppleが収集したデータについてユーザデータプライバシー保護をコミットするものと考えられる。今回の機能としてECDSA(楕円曲線暗号)は含まれていないなど、iPhoneをハードウェアウォレットとして機能するようになるわけではない。そのため、Appleの暗号通貨に関する結論を見出すには早いものの、少なくともAppleが暗号通貨開発者むけツールを提供したことには意義があり、今後のAppleの動向に注目したい。

Microsoft、形式検証ツール「VeriSol」を発表

ブロックチェーン上で動作するスマートコントラクトは、ブロックチェーン上で自動執行などのアプリケーションを提供できるが、本番環境へデプロイした後はアップデートしにくいといった点がネックとされる。これまでにTheDAO事件あるいはParityウォレットのバグなど、スマートコントラクトの脆弱性はハッキング被害の原因となってきた。このように、多額の資金流出・凍結を余儀なくされた事案が発生しているため、スマートコントラクトの脆弱性には十分留意した設計開発および動作検証が重要。

そうした中、このほどMicrosoftがAzure Blockchain用のスマートコントラクト検証ツールとして「VeriSol」 (Verifier for Solidity)をオープンソースで公開した。VeriSolは、Solidityで記述されたスマートコントラクトに対応し、動作検証・バグ抽出を自動化することが特徴。具体的には、Solidityコードを検証用の中間言語Boogieに変換した上で、スマートコントラクトが設計通り動作するか、コード上にバグがないかを数学的に検証する「形式的検証(Formal Verification)」を行うもの。

この「形式的検証」は、ハードウェアやソフトウェアの開発において、安全性にクリティカルなコンポーネントに対して厳格な検証を行う際に使われているものであり、数学的ロジックを用いて、仕様に対する実装を厳格にチェックする点が特徴。ただし、プロダクトむけに形式的検証を利用するには形式的記述やツールに高度なスキルが必要であり、こうした学習コストがネックとなって、形式的検証の利用は、組み込みソフトやOS・ブラウザの開発といったクリティカルなコンポーネント開発に限られてきた。

今回発表されたVeriSolは、現在はプロトタイプ段階であり、Azure Blockchainむけの利用に限定されるものの、開発者の能力に極端に依存することなく、自動的にモデル検査を実施できる点が特徴。VeriSolを用いて、Azure Blockchain Workbench上のスマートコントラクトを検証したところ、いくつかの未知のバグを発見できたとのこと。スマートコントラクトの正確性は、ブロックチェーンベースシステムにおける信頼性の根幹であることから、Azure Blockchain開発者以外のブロックチェーンエコシステムにも広がっていくことを通じて、スマートコントラクト開発における品質向上に一石を投じるインパクトになることが期待される。

0xStarkware、スケーラビリティエンジンStarkDEXのPoCを開発

様々な分野で分散型アプリケーション(Dapps)の開発が進展しているが、仮想通貨取引を巡るほとんどのトランザクションは従来型の交換業者を介して行われており、分散型交換プロトコル(Decentralized Exchange:DEX)の占める比率はわずかなものに留まる。その一つの要因がDEXの処理能力限界であり、もしDEXの処理能力が従来型交換業並みに高まれば、ゲームなどのDappsにおけるアセット取引を従来型交換業者を介さずオフチェーンで行うことが可能になると期待されている。

そのため各方面でDEXが処理できるトランザクションを拡大する取組が進められている中、このほど0xとStarkwareの共同プロジェクトとして、スケーラビリティエンジンである「StarkDEX」のPoC開発がアルファ版としてがRopstenテストネット上にリリースされた。StarkDEXは、計算処理はオフチェーンで行った上で、検証のみオンチェーンとすることによって、従来型DEXと比べてスループットを20倍向上・ガス効率を最大95%改善などの処理能力向上を実現するもの。

プレイヤーとして証明者(Prover)と検証者(Verifiler)がおり、トランザクションはまずオフチェーン上の証明者へ送信される。証明者はオフチェーンでトランザクションが正しいことの証明を計算し、新しい状態のマークルルートとともに証明を検証者へ送付する。これを受けて、オンチェーンでは、検証者が証明の有効性を検証する計算を実行するのみ。

このように、計算とストレージをオフチェーンで管理し、計算が正しく行われたことの証明を生成し、その証明のみをチェーン上で検証する点が特徴的。そのため、計算の有効性を保証しながら、大部分の計算作業をチェーン外で実行することによって大幅なスケーリングを実現できる。

このStarkDEXの要素技術が、StarkWare(イスラエル)のSTARK(Scalable Transparent ARgument of Knowledge)。パブリックなブロックチェーンにおいて、ネットワークに参加するノードが行う上で、検証を素早く行うことがスケーリングにおいて一つの課題。STARKでは、証明の検証を指数関数的に短縮できるとされており、StarkWareは、STARKを通じてパブリックブロックチェーンのスケーリングにアプローチしている。StarkDEXのほかに、ペイメントむけにStarkPayの開発も行っている。

Ethereum自体がEthereum2.0などでスケーリングを図っているのとあわせて、アプリケーション領域でも、DEX用途におけるStarkDEX、ペイメント用途におけるStarkPayのように用途特化プロトコルでスケーリングをはかるといった動きが進展しており、各種アプリケーションにおけるスケーリングの進展に期待したい。

Section2: ListUp

(リンクはこちら

1. Bitcoin(UTXOセットの圧縮をはかるUtreexoの提案など)

2. Ethereum(HashHub勉強会で発表されたEthereum2.0フェーズ2解説など)

3. Bitcoin/Ethereum以外(Substrateの日本語ドキュメントサイトなど)

4. 統計・リスト(Tetherのオンチェーン送金トランザクションの分析など)

5. 論考(「サイファーパンク宣言を読む」など)

6. 注目イベント(「Scaling Ethereum」「Node Fukuoka」「Decrypto Tokyo」など)

バックナンバー

#1 (2019/04/01–04/07)
#2 (2019/04/08–04/14)
#3 (2019/04/15–04/21)
#4 (2019/04/22–04/28)
#5(2019/04/28–05/05)
#6(2019/05/06–05/12)
#7(2019/05/13–05/19)
#8(2019/05/20–05/26)
#9(2019/05/27–06/02)

Disclaimers

This newsletter is not financial advice. So do your own research and due diligence.