コンピュータ・プログラムと契約書

IT法コラム

 一見すると似て非なるものに思えますが、コンピュータ・プログラムと契約書には、かなりの共通点があります。いずれも「ロジックの塊」であり、それにより、片やコンピュータの動作を規律し、片や人の行動を規律します。実際、「CODE」の著者であるレッシグ教授は、サイバー空間においては「コードは法である」として、規制手段としての両者の同質性に言及しています。

プログラムと契約書の共通点

 プログラムと契約書は、その1行あるいは1語が極めて重要な働きをすることがあり、わずかの違いが正反対の効果を生むこともある、という点でも似ています。逆に全体が不可分に連関しており(してしまい)、ある部分の修正が別の思わぬところに悪影響を及ぼしてしまうデグレード問題のあることまで共通しています。
 そうした問題を克服するため、プログラムでは古くから、構造化やモジュール化によって人の理解を促進させようと試みてきましたが、契約書にもこれはあります。業務委託契約書で共通部分、請負部分、準委任部分を別建てにしたり、経産省モデル契約書の追補版のように契約条項コンポーネントを組み合わせて契約書に仕立てたりすることは、実務でしばしば見るところです。契約書ではありませんが、法典編纂におけるパンデクテン方式(一般的・抽象的規定から順次個別的規定に展開していく方式)は、オブジェクト指向の「継承」を思い起こさせます。もっとも、法律の実務では、余りに体系的に過ぎるものはやや不評のようですが。
 このような類比は将来的に、プログラムの自動化と契約書生成、テストの自動化とAI契約書チェック、というところにまで及ぶかも知れません。契約書の分野での自動化はようやく着手がなされたばかりですが、進歩の早い世界でもあり、プログラムの分野で培われた技術や考え方が、契約書の分野でも生かされてくる期待があります。

プログラム=契約

 以上のような共通点はあるとしても、契約書はプログラムと異なり、自然言語で書かれます。そのため、あいまいさは避けられず、テストも出来ません。その意味では、契約書はプログラムというより、仕様書のレベルでしょうか。もっとも、文字通り、プログラムがイコール契約となることもあります。
 古くからあったのは、金融取引の世界で見られる、プログラム化されたストラテジーに基づく自動売買です。ただし、自動化されるのは(契約がプログラムで置き換えられるのは)値動き等に基づく売買ルールの部分だけで、その外側には約款等で規律される契約の本体があり、さらにその外側にはその契約を有効ならしめる法制度が控えています。
 契約の条件確認から履行までを自動執行するものは、スマートコントラクトと呼ばれます。中でも注目されているのは、ブロックチェーン技術に基づいた「非中央集権型」のものです。これは、自動執行性あるいは自己完結性を徹底し、極力、その外側にある人や組織や制度に頼らないことを指向します。ただ、プログラムのバグを悪用して不正送金がなされたDAO(イーサリアムを利用した投資スキーム)事件のように、頼みのプログラム自体にバグがある場合は、「バグのあるプログラム」としては正しく動作している以上、自動執行の枠内で解決する術はありません。
 仮に同事件が、通常の法制度に訴えられていれば、「何が起ころうともプログラムどおりに執行する意思」より「想定外の事象は排除した上で執行する合理的意思」が勝るとの判断が出たかも知れません。しかし実際は、そのような明らかに「世界の外側」にあるものには頼らず、ハードフォークによる不正送金の覆滅という超法規的(?)解決が選択されました。もっとも、これでは契約そのものであるはずのプログラムを中央集権的な介入によって反故にしたのに等しく、「世界の外側」の常識には合っているとしても、そもそもの理念に反するという批判は残りました。理想は自己完結なのでしょうが、一朝一夕にはいかないようです。