Core Concepts
ILLUM は UTXO ブロックチェーンで実行可能な中間言語であり、高水準言語からのコンパイルターゲットとなる。ILLUM コントラクトは安全に UTXO トランザクションにコンパイルできる。
Abstract
本論文は、UTXO モデルにおいて表現力豊かなスマートコントラクトを安全にコンパイルする手法を提案している。
まず、ILLUM と呼ばれる中間言語を定義した。ILLUM は手続き型プログラミングスタイルを提供し、turing完全である一方で、各トランザクションスクリプトは非turing完全に保たれる。これにより、ガスメカニズムを必要とせずに、複雑なコントラクトを UTXO ブロックチェーン上で実行できる。
次に、ILLUM コントラクトを UTXO トランザクションにコンパイルする手法を示した。コンパイル結果では、各トランザクション出力がコントラクトの状態や所有権を表し、トランザクションチェーンの実行がコントラクトの振る舞いに対応する。
最後に、コンパイラの安全性を証明した。具体的には、コンパイル後の UTXO トランザクションの実行は、ILLUM コントラクトの実行と一対一に対応することを示した。これにより、ILLUM レベルで検出できる脆弱性は、コンパイル後のUTXOレベルでも検出可能であることが保証される。
Stats
UTXO モデルでは、トランザクションの順序変更攻撃を防ぐことができる
Bitcoin のスクリプト言語は表現力が限られるが、Cardanoのスクリプト言語はturing完全である
ILLUM は UTXO ブロックチェーンで実行可能な中間言語であり、turing完全だが各トランザクションスクリプトは非turing完全
Quotes
"The UTXO model naturally mitigates these attacks. Indeed, when a user sends a transaction T to the blockchain network, they know exactly in which state it will be executed, since this state is completely determined by T's inputs."
"Our research question is whether one can find a balance between the two approaches which also overcomes their usability issues."