BlockstreamとSimplicityの発表
Blockstreamは、Bitcoinのレイヤー2プロトコルLiquidの開発者であり、BitcoinサイファーパンクのAdam Backが率いる企業です。同社は、Bitcoin向けの新しいスマートコントラクト言語Simplicityを発表しました。木曜日にCointelegraphと共有された発表によると、SimplicityスマートコントラクトはLiquidに統合される予定です。Blockstreamは、この動きがBitcoinを安全な価値の保管庫から分散型金融のためのプログラム可能な基盤へと変革する一歩であると述べています。また、同社は開発を容易にするための高レベルの実装であるSimplicityHLも紹介しました。Blockstreamの代表者はCointelegraphに対し、この言語のバージョンが「今日利用可能である」と述べ、ウェブベースの統合開発環境も利用できるとしています。
Simplicityの特徴とEthereumとの違い
Simplicityは、EthereumのSolidity言語とは異なり、主に両ブロックチェーンの異なる基盤アーキテクチャに起因しています。EthereumとBitcoinネットワークの異なるアプローチとアーキテクチャから生じており、SolidityはEthereum Virtual Machine用に開発されました。状態は、ネットワークが合意したすべてのアカウント残高と保存データのスナップショットです。Bitcoinは未使用トランザクション出力(UTXO)アーキテクチャを利用しているのに対し、Ethereumネットワークはネットワーク全体の状態を採用しています。この違いは、Simplicityスマートコントラクトの動作に現れ、Blockstreamの代表者は「グローバルな状態に依存しないことは大きな変化です」と述べています。「契約に必要なすべての状態は、トランザクションと共に移動しなければなりません。」
開発者への影響と安全性
Blockstreamの研究者は、Solidity開発者はグローバルにアクセス可能な変数から読み取る習慣を破り、代わりにすべての必要な情報を各ステップで提供する必要があると述べています。このようなシステムでは、2つのスマートコントラクトは状態を共有したり、同じ変数を参照したりすることはできず、すべてがトランザクション内で明示的に渡されなければなりません。それでも、同社の代表者はこのアプローチがポジティブな影響を与えると説明しています。
「何かがうまくいかなくても、影響を受けるのはあなたの契約の特定の部分だけです。これはグローバルな状態とは異なる考え方ですが、最終的には設計上より安全で制約のある契約につながります。」
再帰と無限ループの制限
開発者は再帰や無限ループを使用することもできず、Blockstreamはこれらがオンチェーンロジックには必要ないと主張しています。Simplicityは、ドメイン特化型スマートコントラクトプログラミング言語の増加するリストに加わります。2022年にリリースされたNoirは、ゼロ知識証明(ZK証明)を記述および検証するためのプログラミング言語で、2023年にはプライバシー重視のEthereumレイヤー2であるAztecの開発者によって採用されました。Noirは、ZK証明をそのアーキテクチャに深く統合したプライバシー保護アプリケーションのために特別に構築されたスマートコントラクトプログラミング言語となっています。もう一つの例は、ZK証明システムを作成するために密接に関連した構文とプライバシーを考慮したスマートコントラクトプログラミング言語であるLeoです。EthereumのVyperは、攻撃面を減らすために設計されたEVM互換の言語で、現在は一部の主要なEthereum分散型金融(DeFi)プロトコルで使用されています。