key selling攻撃の分析

手法1: TEEなし

  1. 基本的に攻撃者(購入者)は秘密鍵のデータが無複製であるかを確認できないため、詐欺リスクを否めない。
  1. 仮に、購入代金をロックしたら鍵の複製を共有し、熟議終了をon-chainで確認したらアンロックされる仕組みであっても、攻撃者(購入者)は自分の意図と異なる最終投票を元の審議員(販売者)にされてしまう可能性を否めない。
  1. (2)のロックTxに予め攻撃者(購入者)が投票したい選択肢の情報を含めておいて、その熟議のそのアドレスの投票結果がそれと一致したときだけアンロックできるものとすれば、鍵自体を受け渡さずに買収を行える。
  1. +熟議の流れについて にあるModification Requestによって選択肢のインデックス(番号)がいつでも入れ替わるので無効である。

手法2: TEEあり・仲介者あり


攻撃者(購入者)が先に30億円をエスクローアドレスにロックし、着金してから審議員がTEE keyを郵送ないしは指定位置に置き、攻撃者がTEE keyを取得した事実を仲介者は確認して30億円をアンロックする。

攻撃1: 攻撃者(購入者)と仲介者が結託して、鍵を受け取ったのにエスクローをキャンセルする。
攻撃2: 審議員(販売者)は受け渡し時に攻撃者を警察に付き出せる


手法3: TEEあり・仲介者なし


指定したアドレスあるいは持ち主のアドレスから「解錠Tx」をEthereum上で確認したら鍵の開くTEE製の強固な箱を用意する。TEE keyは指定したアドレス(この場合は購入予定者)からのみ実行できる「読み上げTx」を確認すると、音で自身のアドレスを読み上げる仕様であるものとする。攻撃者は前金の15億円を2週間エスクローコントラクトにロックする。2週間経過するとロックはキャンセルされる。前金のロックを確認した審議員(販売者)は、攻撃者(購入者)のアドレスを指定したTEE箱にTEE keyを封印して、攻撃者の指定場所に郵送する。攻撃者は中のアドレスを「内容証明Tx」で確認し、その後攻撃者は残りの15億円を「解錠Tx」とともに贈り、鍵を得る。審議員は30億円をコントラクトから引き出し、国外逃亡する(あるいは郵送後すぐ国外にいてもいい)

攻撃1: 審議員(販売者)は受け渡し時に攻撃者(購入者)を警察に付き出せる。
攻撃2: 攻撃者(購入者)は郵送されてきた箱を海に捨てて2週間後にロックした資金をキャンセルする。(=15億円×10%×14/365=575万円の資本コストで審議員(販売者)を一人減らせてしまう)