見出し画像

スマートコントラクト権限の衝突【前編】

はじめに

こんにちは!本郷Web3バレーです。

Stanford Blockchain Reviewシリーズになります。

このシリーズではStanford Blockchain clubの業界レポートであるStanford Blockchain Reviewを日本語に翻訳したものを要約と我々の観点とともに発信していくものとなっています。

翻訳の許可をくださったStanford Blockchain ReviewのJayYuには感謝申し上げます。

前編では本文とその要約を、後編では我々の議論内容と観点を発信します。前編を追いながら後編を見ていただけるとわかりやすいのかなと思います。

今回扱うテーマは「スマートコントラクト権限の衝突」です。

要約

不変のスマートコントラクトのコードが、グローバルであるが故に、異なる法律で管理され、さらにいつ変更されるかわからないために、法律規制に反してしまうノードが現れるのではないかという問題を扱っています。この記事では、具体的な想定として、スイス子供基金を支援するNFTプロジェクトのアメリカ人のノードについて考えています。急にアメリカの法律が変わり、スイス子ども基金がテロ組織として指定された場合、ノードは刑事訴訟を起こされてしまいます。スマートコントラクトのコードはノードのいる国の法律に逆らえないということを再認識します。このような法的責任を回避するためには、コンプライアンス機能(制裁対象のウォレットアドレスのリストを作る・問題のある取引にフラグ付けするなど)を高めたり、合法的な取引よりも違法な取引を検証する方が簡単になる状況を作り出さないようにしたりすることが考えられます。

概要

ブロックチェーンとスマートコントラクトは、世界のビジネスのあり方を再定義する可能性を秘めています。その潜在能力を発揮するためには、まずブロックチェーンは信頼性が求められます。しかし、現在の実装では、スマートコントラクトには以前に認識されていなかった欠陥があり、その欠陥が属しているブロックチェーンの崩壊や分断を引き起こす可能性があります。

以前のインターネットと同様に、ブロックチェーン技術は中央集権的な制御から解放された新しいインタラクションの形を約束しています。パブリックブロックチェーンは、その性質上、政府や民間の制御の外で運営されることを意味しています。

しかし、これは神話に過ぎないのです。ブロックチェーンは国家の直接的な制御を超えて動作するかもしれませんが、ブロックチェーンを維持するサーバー(ノード)とそれを運営する人々はそうではありません。ノードと人々は物理的な場所を持ち、それに伴い、彼らは所在する国の法律の対象となります。

これによる影響を既に見ています。例えば、多くのブロックチェーンスタートアップは、米国の法律によれば登録されていない証券を提供しているとして、米国証券取引委員会に違反してしまいました[1]。仮想通貨自体も、発明以来、税法を通じて国家政府によって間接的に規制されてきました[2]。そして最近のThree Arrows Capital、FTX、Coinbase、Binanceを巡るスキャンダルを受けて、国家による、より直接的な規制は時間の問題です。

スマートコントラクトはより悪質な脅威を示しています。仮想通貨の領域は今後も規制されていくでしょう。つまり、将来の取引に新たな規制が適用されることになります。しかし、スマートコントラクトは「逆行的な」規制リスクをもたらします。言い換えれば、仮想通貨は規制に応じて将来の振る舞いを変えることが選択できますが、ブロックチェーンはスマートコントラクトによって将来の行動に不可逆的に拘束されてしまう可能性があります。たとえ、それらの行動が後に規制されたり、禁止されたりしたとしてもです。

スマートコントラクトにおける権限の衝突

適切に実装されたスマートコントラクトの特徴の一つは、一方的に変更されることができないことです。実際には、当事者の同意を得ても変更することはできません(設計上の要件でない限り)。しかし、スマートコントラクトによって行われる行動が現在合法であっても、明日には違法になる可能性があります。スマートコントラクト権限の衝突(SCAC(Smart Contract Authority Conflicts))は、スマートコントラクトが、ブロックチェーンノードを実行しているサーバーが物理的に存在する場所の法律によって違法とされる行動を実行する場合に起こります。

これがどのように起こり得るかは、具体的な例をあげて想定してみましょう。スイス子供基金が、10%のロイヤリティをスイス子供基金に譲渡するスマートコントラクトを含む人気のあるNFTシリーズを発行します。2年後、米国政府がスイス子供基金をテロ組織と指定し[3]、米国にあるブロックチェーンのノードおよびそれらのサービスプロバイダーに対して、指定を通知し、スイス子供基金に利益をもたらすさらなる取引に関与した場合の起訴をすると言い渡します。

その後、これらのNFTのうちの一つが取引され、スマートコントラクトが実行され、売り上げの10%がスイス子供基金に譲渡されるとします。このトランザクションは、米国を含むすべてのブロックチェーンのノードによって検証されます。その結果、米国のノードの運営者は、指定されたテロ組織への物質的支援[4]の提供により刑事訴訟されてしまうのです[5]。

SCACの罠

ブロックチェーンの参加者はどのようにしてこのような法的責任を回避することができるでしょうか?まず、ノードは違法な取引を特定する機能[6]を持つコンプライアンス機能(例えば、制裁対象のウォレットアドレスのリスト。)を構築し始めるでしょう。違法な取引を特定できなければ、それを避けることはできません。

明らかに、新しい取引のブロックを組み立てるマイナー(ノード)は、違法なスマートコントラクトの取引を実行することなく、潜在的で法的な結果に直面します。しかし、コンプライアンス機能を備えたマイナーは、責任を回避するための比較的簡単で、スマートコントラクトのコードを変更しない方法を知っています。マイナーは新しいブロックに含める保留中のトランザクションを選ぶため、マイナーが違反すると判断した国家法を遵守しないトランザクションを処理しないことを選ぶことができます。これは直接的にはブロックチェーンに影響を与えません。なぜなら、トランザクションはプール内に残り、別のマイナーによって処理される可能性があるからです。

しかし、マイナーがこの取引を最終的に処理すると、それは潜在的に、致命的な不安定性を残すことになります。上記の例で言えば、スイスに拠点を置くノード(スイスではスイス子供基金はテロ組織とは見なされていない)が最終的に取引をブロックに含めるとしましょう。しかし、アメリカに拠点を置くノード、具体的には、ノードオペレーターが米国に拠点を置いている場合、ブロックの確認によりトランザクションを完成させたことで、刑事訴訟を受ける可能性があります[7]。ブロックチェーンが使用する特定のコンセンサスプロトコルと米国に存在するノードの数によりますが、これにより、ブロックチェーンが事実上崩壊するかもしれないし、全く影響を受けないかもしれない。何もかもが起こり得ます。場合によっては、これらの取引はブロックチェーンのインセンティブシステムが、マイナーが自国の法律に違反すると考えるトランザクションを実行することを禁止していない場合でも、プールから選択されるのを防ぐため、実行不可能になるかもしれません。

たとえば、Ethereumの場合、合計のステークされたEtherの2/3が一連のブロックに合意する必要があります。「finality(確定性)」を達成するためには、合計のバリデーターのうち1/3以上がオフラインになったり、特定のブロックの検証を拒否したりすると、そのブロックは確定することができません。Ethereumはこの問題に対処するために、最終的には「uncooperative(非協力的な)」[8]ノードが合計のステークされたEtherの1/3以下になるまで、オフラインまたは検証を拒否しているノードのEthereumステークを減らす罰則を適用します。これにより、残ったノードがブロックを検証し、チェーンを確定することが可能になります。

先ほどの例(スイス子供基金の例)で言えば、もし「voting(投票)」力、つまりステークされたEtherのうち2/3以上が米国外のバリデーターによって持たれていれば、スイス子供基金の取引は米国ベースのバリデーターの助けを借りずに検証することができます。しかし、もしステークされたEtherの1/3以上が米国ベースのバリデーターによって持たれていれば、取引は米国ベースのノードに金銭的な罰則を科すことなく検証することはできません[9]。

これは、ブロックチェーンの参加者が直面する法的なコンプライアンス問題を悪化させるだけかもしれれないでしょう。別の言い方をすれば、先ほどの例(スイス子供基金の例)では、イーサリアムのブロックチェーンは、アメリカに拠点を置く参加者を違法な取引に参加させるために強制しようとしています。これはブロックチェーンへの参加に対する抑制要因を生み出すだけでなく、より大きな法的な問題を生み出す可能性があります。違法な活動に関与しない限り金銭的な損害を与えることと脅すことは、複数の州法および連邦法に違反します[10]。

SCACの罠を回避する

スマートコントラクトがそれを引き起こす可能性があるものの、SCACはそれらが作成された時点から長い時間が経過した後でも発生する可能性があるため、最も確立されたブロックチェーンさえも脅かします。さらに悪いことに、SCACが現れたら、問題を対処するのは遅すぎるかもしれません。幸いなことに、ブロックチェーンが実装できるSCACに対するソフトフォークプロトコルの変更があります。

一つの解決策は、ノードに問題のある取引をフラグ付けするオプションを提供し、そのような取引を含むブロックの検証が求められたときに「present(出席)」票を投じることを可能にすることです。「present(出席)」票を投じると罰則は発生せず、ブロックチェーンはその検証サイクルについてノードがブロックチェーンから離脱したと扱うことにするのです。その結果、合意に達するために必要な同意ノードの総数が減少します。検証サイクルが完了すると、「present(出席)」票を投じたノードはブロックチェーンに「rejoin(再参加)」し、オフラインのノードがオンラインに戻ったときと同じように、ブロックチェーンの現状を、そのまま受け入れることにするのです。

信頼性を維持し、合法的な取引よりも違法な取引を検証する方が簡単になる状況を作り出さないようにするために、ブロックチェーンはノードの51%によって特定の取引がフラグ付けされた場合、その取引は拒否されたと見なされ、取引プールから削除されるというルールを作成することも考えられます。

解決しないままのSCACは、それが現れるブロックチェーンの安定性にとって脅威を示します。ブロックチェーン開発者は、スマートコントラクトが広く使用されるにつれて、ブロックチェーン全体が問題のある取引を処理するための十分な合意を生成できるとしても、個々のブロックチェーンノードに対してコンプライアンスの問題を生み出すことを認識する必要があります。ブロックチェーンは大きな可能性を秘めています。しかし、その可能性を実現するためには、ブロックチェーンは参加者に対して、ブロックチェーンでの良好な立場を維持することと、地元の法律を遵守することとの間で選択を強いることはできないのです。

著者について

クリス・トルークスは、カリフォルニア州を拠点に、テクノロジースタートアップにアドバイスや代理人として国際的な業務を行っている弁護士です。彼は大変教養があり、カリフォルニア大学、ノートルダム大学、ケンブリッジ大学の学位を持っています。

翻訳元の文献

[1] See e.g. SEC v. Kik Interactive Inc., 492 F. Supp. 3d 169 (S.D.N.Y. 2020) https://casetext.com/case/us-sec-exch-commn-v-kik-interactive-inc

[2] See e.g. Rev. Rul. 2019-24, 2019-44 I.R.B. 1004, I.R.S. Notice 2014-21, 2014-16 I.R.B. 938. https://www.irs.gov/pub/irs-drop/n-23-34.pdf

[3] 8 U.S.C. §1189. https://www.law.cornell.edu/uscode/text/8/1189

[4] “[M]aterial support . . . means any property, tangible or intangible, or service, including . . . financial services” 18 U.S.C. § 2339A(b)(1). https://www.law.cornell.edu/uscode/text/18/2339A

[5] 18 U.S.C. § 2339B. https://www.law.cornell.edu/uscode/text/18/2339B

[6] Such a compliance function might take a variety of forms depending on local regulatory requirements. It might, for example, screen proposed transactions against a list of sanctioned wallet addresses that have been designated by the government with legal jurisdiction over the node.

[7] 18 U.S.C. § 2339B. https://www.law.cornell.edu/uscode/text/18/2339B

[8] Known as the “Inactivity Leak” protocol.

[9] Wakerow, P., Rustagi, S. and Cook, J. (2022) Proof-of-stake rewards and penalties, ethereum.org. Available at https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/rewards-and-penalties (Accessed: March 15, 2023).

[10] See, e.g. 18 U.S.C. § 875(d), 18 U.S.C. § 371. https://www.law.cornell.edu/uscode/text/18/875 https://www.law.cornell.edu/uscode/text/18/371

*この文章はchatgptで翻訳したものを修正したものになります

この記事が気に入ったらサポートをしてみませんか?