昨日、ビットコインや暗号通貨業界に精通していないとほとんど気づかないような一連のそれなりに面白い出来事があった。Paradigmのリサーチパートナー、(Samczsunとして知られる)サム・サン(Sam Sun)がSushiSwapのMISOプラットフォームのコードに重大な可能性があるセキュリティ上の欠陥があることを発見した。
このホワイトハッカーによる手直しの詳細の理解にはそれなりに専門的な知識を要するため、ここでは退屈な仔細を伝えることは避ける。今回の一連の出来事の詳細についてはSamczsunの記事を読んでほしい。重要な点は、3億ドル相当のETHが潜在的な脆弱性に晒され、盗まれた可能性があるということだ。今回の件に関して様々な分析を読んで、私は重要な点が二つあると見ている。
まず初めに、Samczsunの記事の最初のパラグラフは大切な点を明らかにしていると思う。
「ソフトウェア開発でよく見られる誤解の一つに、システムを構成しているコンポーネントがそれぞれ個別に安全であることが確認されているなら、システム自体もまた安全であるというものがあります。この信念が、コンポーザビリティが開発者に当然のこととして受け止められているDeFiよりも強く現れているところはありません。残念ながら、ほとんどの場合は二つの要素をコンポーズする(ソフトウェアから切り離して個別の要素として扱う)ことが安全であったとしても、たった一つでも脆弱性があれば何百あるいは何千人という無辜のユーザーに重大な経済的打撃を与えることになります。本日は、1億900万ETH(現在の換金レートで3億5000万USドル)をリスクに晒した脆弱性を私がどのように発見し、修正パッチの開発を手助けしたかをお話したいと思います。」
コンポーネントが安全だからといってシステムが安全だというわけではないというこの考え方はとても良い。これは人生の様々な場面に適用可能な考え方だが、ソフトウェアコードはこの考え方が有効なものの中でも特に複雑なものの一つかも知れない。ご存知の通り、システムが複雑であればあるほど、脆弱性が存在する可能性が高くなるからだ。
複雑性というものは厄介な代物だ。無学の者にとって、複雑性は洗練と知性の現れのように見える。しかし、経験豊富な者が知っているように、複雑性はほとんどの場合むしろ洗練の真逆であることが多い。ブレーズ・パスカルの有名な一節、“I would have written a shorter letter, but I did not have the time.”(これより短い手紙を書くところだったが、私には時間がなかった。)がここに当てはまる。ソフトウェアコードについてもある程度同じことが言える。時間があればあるほど、より綺麗に、より効率的になり得る。
ここで二つ目の重要な点について話を移したい。業界の大部分はとてつもないスピードで進展している。彼らにとっては当然のことだろうが、ほとんどの開発者はイノベーションと実験に集中している。彼らは過去10年ほどにわたって出てきた様々な科学技術を新しく、深遠な仕方で利用する方法を探し求めている。このアプローチの欠点は、歴史的にスピードがセキュリティやレジリエンスと直接にトレードオフの関係になってきたことだ。
開発者の革新ペースが速ければ速いほど、ソフトウェアに脆弱性が発生する可能性が高くなる。このトレードオフが許容範囲内の場合もある。そうでない場合もある。この違いが分かることは重要だ。
この分析に適用することが出来る枠組みの一つは、革新のペースとセキュリティを両極に置くスペクトラムである。まずはセキュリティを徹底的に追い求めている例としてビットコインから見ていこう。ビットコインの中心的な開発者の開発プロセスは根気が必要で、体系的で、意図的だ。ビットコインには8000億ドルの経済的価値がかかっている。イノベーションという観点から見て遅いペースで進めなければならないとしても、究極的なセキュリティが継続的に達成されるのであればその価値がある。このアプローチの結果はマイナーやノードの分散化から、ソフトウェアのレビュープロセスまであらゆるものに見て取ることが出来る。何よりもレジリエンスとセキュリティを優先するという姿勢だ。
これと正反対なのはイノベーションとスピードを何よりも重要視し、追い求めるという姿勢だ。新しいテクノロジーやアプリケーションを発明しようとしている様々なオルトコインやプロトコルがこれにあたる。それらは先行者利益を獲得することも出来なければ、セキュリティや分散化の面でほかの何よりも良い結果を出すということも出来ない。そうしてイノベーションという戦略を選択するのである。それは合理的な戦略だ。これらのプロジェクトには大量の経済的価値がかかっていないため、ビットコインと比較して、失敗を犯すコストは極めて小さい。
これらが業界における両極だ。セキュリティとレジリエンスをプロトコルの最も重要な要素と考えるか、それともスピードとイノベーションに重きを置くか。この質問に対する答えは面白い。つまり、それぞれの道が異なる目的にそれぞれ有益である、ということだ。(世界的な価値の保存手段になるという野望を持つデジタル通貨の、透明でプログラマティックな金融ポリシーのような)分散化を必要とするものを作っているのであれば、セキュリティは何よりも重要なものとなる。スマートコントラクトプラットフォームの上に組み上げるアプリケーションのような、イノベーションのスピードを必要とするものを作っているのであれば、初期段階ではセキュリティやレジリエンスについてあまり憂慮する必要はない。
これがまだまだ始まったばかりだということを思い出してほしい。業界はまだ12年目で、大半の企業やプロジェクトはたった3、4年目になるところだ。このテクノロジーセクターでの寿命の面から見ればそれは無に等しい。defiで数日前に起こった6億ドル規模のハッキングと同様の大失敗はこれからも起こる。しかしだからといって全てのプラットフォームが脆弱性を持つということではないし、イノベーションのスピードがセキュリティやレジリエンスよりも積極的に追い求められなければならないということでもない。
私がビットコインに個人的に興味を持っていて、これに大半の時間を費やしている理由の一つは、ビットコインが世界で最も強力なレジリエンスとセキュリティを持ったコンピューティングネットワークになったと思っているからだ。ビットコインはこれからも影響力を持ち続ける。ビットコインが50年、100年後にもあり続ける可能性はとても高い。そのようなレジリエンスは長期的に考えるなら非常に価値がある。私は私のビットコインを孫に渡そうと考えているため、私にとってレジリエンスや影響力の維持は至上命題である。
今のところは順風満帆だ。最後に、Samczsunのような人が世界にいるのは良いことだ。3億ドル規模の脆弱性を発見した時にまず初めにプロジェクトにそのことを伝え、問題解決にあたろうとする人はそう多くない。私たちには清い志を持った人が出来る限り多く必要だ。
良い一日を。また明日。
スポンサー:Unstoppable Domainsを利用すると、暗号通貨のアドレスを私が使用している、Pomp.cryptoのような、単一の読みやすい名称に変えることが出来る。ランダムに並んだ文字と数字の長大な羅列に含まれるたった一つを間違える心配をするより、自分自身のUnstoppable Domainをここで入手しよう。
-Pomp-
OffTheChainジャパン
翻訳者ペンネーム:Decryptor