2022/1/19の記事では「暗号化と難読化」というタイトルで難読化とは何かという基本的な解説をしました。これに関連して、「Ethereumコントラクトを難読化」という話題があります。識別不可能難読化(Indistinguishable Obfuscation; IO)という特殊な難読化によって、Ethereumコントラクトにビットコインネットワークのアドレスを含めることができると言われています。今回は、このテーマで解説したいと思います。
このような話は、おおよそ2014年ごろにあったようです。BITCOIN MAGAZINEの2014年2月8日の記事のリンクがあります。
https://bitcoinmagazine.com/.../cryptographic-code...
記事中に、「Consider the simplest case: an obfuscated Ethereum contract can contain a private key to an address inside the Bitcoin network, and use that private key to sign Bitcoin transactions when the contract’s conditions are met.」とあります。以前の記事で説明した通り、難読化されたプログラムも元と同様に実行ができ、単にソースの内容がわからないようになっているというだけです。したがって、秘密鍵のような本来秘匿すべきデータもEthereumコントラクトに含めることができるというわけです。
記事では、「Thus, as long as the Ethereum blockchain exists, one can effectively use Ethereum as a sort of controller for money that exists inside of Bitcoin. 」とあります。つまり、ある条件が満たされたとき、Ethereumコントラクト内にある秘密鍵を使って(ただし難読化されたまま)、Bitcoinブロックチェーンに何らかの操作を与えることができると言っています。記事中では「a decentralized organization to have control of a bank account.」とあります。この機能によりどのような事が我々にもたらされるのか。例えば、分散型や自律型で意思決定される中央銀行的存在ができるのかといった疑問がわいてきます。しかし、今回は本コラムとは別の考察としましょう。いずれにしても、何か可能性がありそうに感じます。