スマートコントラクトの倫理は、自動で動くプログラムが資産の管理、組織の意思決定、当事者間の取り決めをますます担うようになるなかで、避けて通れないテーマになっている。「コードは法である(Code is Law)」――つまり、ソフトウェアが人間の主観的な判断を客観的な自動執行に置き換えられるという考え方――には、ブロックチェーン業界がまだ十分に向き合えていない深い倫理的問題がある。
「コードは法」は本当か
「Code is Law」というフレーズはもともと、スマートコントラクトの動き方を説明する言葉だった。一度ブロックチェーン上に載せれば、スマートコントラクトは書かれたとおりに自動で実行される。人間が途中で口を挟む余地はない。しかし、この言葉はいつのまにか「コードがやることは、それ自体が正しい」という主張として使われるようになった。
この「仕組み」と「道義」の混同は、根本的な誤りだ。コードを書くのは人間であり、書いた人の思い込み、偏り、ミスがそのまま組み込まれる。ある価格を下回ったら担保を自動で処分するスマートコントラクトは、「正しい判断」を下しているわけではない。状況次第で公正な結果にも不公正な結果にもなりうるルールを、機械的に実行しているだけだ。
スマートコントラクトの倫理を考えるとは、「コードが何をするか」と「コードが何をすべきか」を区別することにほかならない。2016年のDAO事件がこの違いを鮮明にした。攻撃者はコードの欠陥(再入可能性のバグ)を突いて資金を抜き取った。「コードが許したのだから正当だ」という厳密な解釈もありえた。しかし、意図と公正さを考えれば、それは盗みだった。イーサリアムのコミュニティがハードフォーク(チェーンの巻き戻し)を選んだのは、「コードだけでは正義を決められない」と認めたからだ。
融資の処分からガバナンス(運営上の意思決定)まで、ますます重要な判断にスマートコントラクトが使われるいま、その権力にふさわしい倫理の枠組みを整える必要がある。
自動化された正義の限界
スマートコントラクトが体現するのは、「ルールに基づき、自動で、文脈を考慮しない」タイプの公正さだ。誰に対しても同じロジックが適用される。支持者は「差別やえこひいきが排除される」と主張する。しかし批判者は、「不平等な状況にいる人々を同じルールで扱うことは、公正ではなく新たな不平等を生む」と指摘する。
DeFiの貸し借りを例にとろう。担保比率が一定の水準を下回ると、自動で清算(担保の処分)が実行される。このルールは、多くの資産を分散運用している大口の利用者にも、全財産を賭けている小口の借り手にも同じように適用される。仕組みは同じだが、結果はまるで違う。大口にとっては運用上の失点に過ぎないが、小口にとっては生活が破綻しかねない。
従来の法律や金融の仕組みは、まさにこうした非対称に対処するために裁量を組み込んできた。裁判官は事情を考慮する。銀行には返済猶予の制度がある。保険の査定員は文脈を見て判断する。スマートコントラクトには設計上、こうした判断ができない。裁量をなくすことは中立的な選択ではなく、「一貫性を思いやりより優先する」という一つの倫理的立場なのだ。
もちろん、スマートコントラクトが本質的に不公正だというわけではない。たとえば、誰に対してもアルゴリズムで決まった価格で取引を実行するAMM(自動マーケットメイカー)は、むしろ平等なアクセスを提供している。トークンの付与スケジュールどおりに資金を放出するプログラムは、えこひいきの入る余地がない。大切なのは、「スマートコントラクトは万能に公正」とも「常に不公正」とも決めつけず、用途ごとに考えることだ。
「翻訳」の歪み
人間同士の合意をスマートコントラクトのコードに「翻訳」する過程で、どうしても歪みが生じる。法的な契約書は、曖昧さや解釈の余地、状況の変化に対応できる言葉を使う。スマートコントラクトは、毎回まったく同じように動く正確で機械的なロジックを必要とする。
この翻訳では、ニュアンスが失われる。法的な合意書には「合理的な努力」とか「重大な悪影響」といった表現があるが、これらは文脈に応じた人間の判断を要する言葉だ。スマートコントラクトに置き換えるには、具体的で測定可能な数値を決めなければならない。質的な判断が量的な条件に置き換えられる結果、合意の「文面」は再現できても「精神」に反する事態が起こりうる。
つまり、スマートコントラクトは人間の意図を「不可逆的に圧縮」したものだ。あらゆるスマートコントラクトは、もとの合意を簡略化したモデルであり、その簡略化のしかたには倫理的な重みがある。どんな例外を処理し、どんなケースを無視するのか。初期設定で誰の利益が守られるのか。現実が開発者の想定から外れたとき何が起きるのか。
現在の監査は主にセキュリティに焦点を当てている。「コードが宣言どおりに動くか」の検証だ。しかし「コードが宣言していること自体が公正か」という倫理面の監査は、実務としてほとんど存在しない。業界にはまだ、スマートコントラクトの倫理を真剣にレビューするための枠組みも専門家も不足している。
設計に潜む力の偏り
「分散型」という言葉は、スマートコントラクトが当事者間に対等な関係を生むかのような印象を与える。しかし現実には、コントラクトの設計における力の偏りは大きく、しかも構造的だ。
プロトコルの開発者が、すべてのユーザーが受け入れなければならないルールを決める。従来の契約交渉では相手側が修正を提案できるが、スマートコントラクトのユーザーは変更できないコードに埋め込まれた一方的な条件を受け入れるしかない。ルールを定める権限は開発チームに集中し、その条件を受け入れる義務は数百万のユーザーに分散される。
この偏りは情報格差でさらに増幅される。開発チームは自分たちが書いたコードを熟知している。技術に詳しいユーザーですら、利用するすべてのコントラクトを自分で監査することはまずない。実際のところ、ほとんどのDeFiユーザーはコードが公正だと「信頼」しているのであって、「検証」しているわけではない。従来の金融における信頼関係と似た構図でありながら、従来の金融にある消費者保護がない状態だ。
自動化が害をもたらすとき
スマートコントラクトは、自らが生み出す結果に気づかない。市場全体に損失を広げる連鎖的な清算は悪意ではない。プログラムが価格変動に応じてルールどおりに動いただけだ。しかし、悪意がないことは害や責任がないことを意味しない。
2020年3月の暴落がこの問題を浮き彫りにした。MakerDAOの清算ボットは、イーサリアムのネットワークが混雑して他の入札者が参加できなかったため、ほぼゼロの価格でオークションを実行した。コードは設計どおりに動いたが、結果は明らかに不公正だった。安全な担保比率を保っていると思っていたユーザーが、システムの自動実行が極端な状況に対応できなかったために、すべてを失った。
スマートコントラクトの倫理的な枠組みは、自動化が害をもたらしたときの責任の所在に答えなければならない。コードを書いた開発者の責任か。パラメータを承認した投票参加者の責任か。そのシステムを使うことを選んだユーザーの責任か。それとも、裁量なしに動くシステムを使った以上は仕方ないのか。
いまの状態では、誰も責任を認めないのがデフォルトだ。しかし、スマートコントラクトが実際の経済関係を左右するのであれば、害が生じたときの責任の所在を明確にすることは避けて通れない。
より公正なスマートコントラクトのために
スマートコントラクトの倫理を実のあるものにするには、理論と実践の両方が必要だ。いくつかの方向性に可能性がある。
公正さの審査基準をつくること。セキュリティ監査が安全性の最低ラインを定めるように、スマートコントラクトの公正さについても基準を設ける。この審査では、利害の偏りを評価し、初期設定が特定の当事者に有利かどうかを確認し、自動執行が不公正な結果を生むシナリオを洗い出す。
緊急停止と人間の介入の仕組み。通常は自動で動かしつつ、重要な判断ポイントでは人間が介入できるようにする。極端な市場環境で清算を一時停止したり、明らかに不公正な結果にガバナンス(運営上の意思決定)で介入できるプロトコルは、自動化と説明責任のバランスを取っている。
段階的な対応モデル。「全か無か」の二択ではなく、結果を段階的にエスカレーションさせる設計だ。部分的な清算、猶予期間、警告の仕組みがあれば、取り返しのつかない結果が出る前に人間が対応する余地が生まれる。
多様な声を反映した設計プロセス。開発者やトークン保有者だけでなく、利用者、倫理の専門家、法律家、影響を受けるコミュニティのメンバーがスマートコントラクトの設計に参加すること。いまの開発プロセスが取りこぼしている視点を、コードに埋め込むことができる。
重要ポイント
- スマートコントラクトの倫理は、人間の裁量なしに資産や意思決定を左右する自動化プログラムの道義的な問題に向き合うものである
- 「コードは法」という考え方は、仕組みと道義を混同し、人間が書いたプログラムの出力をそのまま「正しい」と扱っている
- 文脈を無視した画一的な実行は、不平等な状況にある人を同じルールで扱うことで不公正な結果を生みうる
- コントラクト設計の力は開発者に集中し、その条件を受け入れる負担はユーザーに分散されている
- 自動化が害をもたらしたときの責任の所在は未解決であり、「誰も責任を取らない」現状は倫理的に持続できない
- 公正さの審査基準、緊急停止の仕組み、段階的な対応、多様な声を反映した設計がより責任あるスマートコントラクト開発への道を開く
スマートコントラクトの倫理は、「技術が成熟してから考えればいい」と後回しにできる問題ではない。いまコードに埋め込まれる価値観は、一度ブロックチェーン上に載った後は長期にわたって経済関係を左右する。業界の責任は、時間の制約や市場の圧力のなかで無自覚に入り込んだ前提ではなく、熟慮した倫理的判断がコードに反映されるようにすることだ。そうでなければ、自動化されているが正義ではなく、効率的だが公正ではない金融の仕組みができあがることになる。