『リーガル×エンジニアブロックチェーンの技術特性を踏まえた法的論点整理』
Theme1『ブロックチェーン上で仮想通貨を所有しているとはどういうことか』
三枝 充 | 早稲田リーガルコモンズ法律事務所 / パートナー弁護士 株式会社フロム・ソフトウェアでのゲームプランナー、厚生労働省勤務を経て弁護士に。プログラミングの知識を活かしエンジニアリングと法律の交錯領域に取り組んでいる。 |
三枝:こんにちは。普段は弁護士をしています。ベンチャー企業の立ち上げ支援を専門的にやっていますが、一昨年ぐらいから、ブロックチェーン技術を使った事業を立ち上げたいという相談を受けることが非常に多くなりました。その中で深く感じているのが、さきほど片岡先生もおっしゃいましたが、法律とはリアルな世界に表れたものに対して、どういう規制をかけるのか、どういう規律を作るのかを考えていく点です。
例えば、そのひとつ下の技術の世界ということを考えた場合、最近よく話題になるICOについて、仮想通貨について譲渡制限をかけるといったときに、弁護士が、「この通貨は譲渡できるのか?」と聞き「できません」と答えたとしても、実際譲渡できないというその基本設計にはいろんな方法があるわけです。表面上は同じように見え、同じことを表現していても、ひとつ下に潜ってみると、技術レベルの実装のしかたは様々なんですね。
法律的な規制をかけるにあたっても、そのことが影響するのではないかという問題意識から専門家の方々とディスカッションを進める中で、法律家の目から見ても面白いと思える論点がいくつか出てきました。
まずは仮想通貨を使ったビジネスを考える際に避けて通れない「仮想通貨を所有しているとはどういうことなのか」という点。それを踏まえて、「仮想通貨ってなあに」という点。今日は基本中の基であるその2点を中心に話していきたいと思います。
ブロックチェーンの仕組み
西村 祥一 | コンプス情報技術研究社代表取締役 自然言語処理・機械学習などの学術系案件の開発・コンサルティングを行うと共に、ブロックチェーン技術を用いた開発に取り組んでいる。Global Blockchain Summit2016ではブロックチェーン技術による位置情報プラットフォームを提案し、Best Innovation Awardを受賞。共著に「はじめてのブロックチェーンアプリケーション~Ethereumによるスマートコントラクト開発入門」(2017年、翔泳社)がある。 |
西村:まず確認のため、エンジニアの方、手を挙げていただけますか。・・・今日はエンジニアの方が3分の1ぐらいですね。それではまず、ブロックチェーン上で仮想通貨を所有しているとはどういうことか、技術的観点からご説明します。
アドレスとはどういう仕組みになっているか
西村:ブロックチェーンでは、価値や権利を保持する主体に振られる識別子を「アカウント」や「アドレス」と呼びます。ひとりで複数のアドレスを持っていることもあります。
アドレスはどのように生成されているか
西村:あらかじめ、2160個の箱(=アドレス)が既に存在していると思ってください。その口座残高はすべて0。どれくらいのアドレスが存在しているかというと、2の160乗=1,461,501,637,330,902,918,203,684,832,716,283,019,655,932,542,976です。
下線を引いた部分が地球の人口なので、そこから左が一人当たり使える数ということです、どれくらい多いかわかると思います。そのうちのどの箱を使うか宣言することが、アドレスを生成することとなります。
実は、その1個1個の箱には鍵が2つずつ付いていて、一方が秘密鍵、もう一方が公開鍵です。秘密鍵は、箱の中にデジタルの財貨を入れた時に、それを動かすことができ、公開鍵は、箱の中の財貨を見ることができます。
秘密鍵から計算で公開鍵を導き出すことができますし、公開鍵からアドレスを導き出すことができますが、どちらも逆はできません。それによって保障されていることが重要なので、秘密鍵は厳重保管が必要なのです。公開鍵は人に教えても大丈夫ですが、アドレスがわかれば、そのアドレスでの取引情報は見られてしまうので、Bitcoinなどでは取引ごとにアドレスを使い捨てることもあります。
アドレスは無数にあるので、他人と衝突する可能性は低いが、0ではありません。しかし2160を10を基数にして変換すると2160を10に言い換えると、アドレスの個数は1048。地球上に存在する原子の数が1050、宇宙に存在する原子の数が1080なので、どれほどの確率かはわかると思います。多くの秘密鍵を覚えておくためにニモニック(Mnemonic)という12個の英単語を使うこともあります。
財貨(価値)の保持
西村:ブロックチェーンを使った仮想通貨の残高管理は、Bitcoinでは残高UTXO方式、EthereumではAccount Balance Modelという方式で表されます。Ethereumでは各アドレスがいくら持っているのかを個表にして管理しているだけの物。送金時には送る側を減らして送られる側を増やすだけ。Bitcoinは、ひとつのアドレスに対して、小銭のようなお金の塊のブロックで保持されていて、送金時にはその塊を送るという処理。中のデータ構造は、Bitcoinでは、お金の塊を誰が所有しているかというラベル(=アドレス)が振られている。このデータ構造の違いによって、法的なところが変わってくるのでしょうか?
秘密鍵の管理
西村:モバイルウォレットのアプリケーションを端末に入れて財貨を保持している場合、その端末の中に秘密鍵が入っていると思ってください。送金する場合、送金指示のトランザクションを作ります。端末内の秘密鍵で署名を行い、ネットワークに送金する形です。署名は、秘密鍵を持っている人にしかできません。
では、秘密鍵は端末のどこにあるのか。iPhoneの場合、keychainという領域に暗号化されて入っています。トランザクションをiPhoneの中で作って、FaceIDなどの端末認証を通り、かつアプリが起動中の場合のみ、keychainのデータを操作して使用することができるようになっています。
取引所の管理
西村:一般的には、入金専用のアドレスから、取引所側のアドレスにまとめられて保管されています。どちらのアドレスの秘密鍵も、取引所が保持しているということが重要です。
実際に取引がある場合にも秘密鍵を持ち出すことはなく、取引注文があると、この中でデータベースに注文の更新をかけ、約定が起こった場合でも残高データベースの数字を書き換えるだけです。ブロックチェーン上でトランザクションが発生することは現状ありません。秘密鍵も触られていません。秘密鍵が必要になるのは、出金の依頼があった時で、署名して開錠し、取引所のアドレスから個人用アドレスに振り込まれます。この時取引所の秘密鍵が触られるので、それが知られてしまうと、取引所のアドレスに入っている財貨を動かされてしまう可能性があるのです。
秘密鍵と仮想通貨の「所有」
三枝:仮想通貨を使用したビジネスを構築するにあたって、一般的に我々が仮想通貨を「所有」している(権利を有している)と考えている事実状態は、法的に何を意味しているのかを議論しておく必要があります。
実体上は仮想通貨はブロックチェーンのアドレスに紐付いた電磁的記録としか言えないのです。秘密鍵を知る者=当該秘密鍵によるアドレスに紐付いた電磁的記録に対して、法的に是認される正当な権利を有する者と考えてよいのかという問題が出てきます。
法的性質はともかく、なんだかの権利を持っているのは、秘密鍵を持っている人だというのが、概ね法律家の見解として一致しているところではないかと思います。
秘密鍵とアドレスの関係
三枝:ただひとりの人が秘密鍵をもっているというほうがシンプルです。しかし現実には、管理状態はどんどん複雑化しています。次のような場合、その秘密鍵を持っている人は、その仮想通貨に対してどのような権利を有するのかを考えてみたいと思います。
Theme2『通貨とは何か』
西村:新しい通貨を生み出すということが行われています。Ethereumを使って資金調達をする際に利用されるトークンERC20に定義されているのは、「通貨とは、総発行量、各自の保有量がいつでも確認でき、保有者間で保有量を限度として交換(送受信)ができるもの。総供給量、各自の保有量、交換(送金)を実装してください」です。これがERC20のスタンダード。ERC20で定義されているものは、実はこれらの機能を提供してくださいという標準であって、それぞれの機能の中身として、その機能がどう処理されているかについては定義されていません。
通貨の保持
西村:トークンをいくら持っているかが中でどういうデータ構造になっているかというと、アドレスをindexとした残高の配列として表現されます。
譲渡制限がかかったトークンを作ることもできるし、時限ロックをかけることもできます。特定のリスト間でしか送金を許可しないようにするためのホワイトリストという機能もあります。
三枝:ICOをやりたいと相談を受けることは多いです。ICOを発行したら新しいトークンによって、自分が管理しているアドレスに何かがやってくるという発想で話す人がいますが、そうではありません。情報を管理するスマート・コントラクトがその実体です。「ICOをどこそこの国で行う」というのは、いったい誰がどこで何を行うということなのか、実はすごく難しい問題です。特に最近、ICOの登場人物が多くなってきているが、実は誰がどこで何をやったら、その国の法律の規制がかかるのかが、すごく悩ましい問題なのです。