今週のPickUp注目記事
今週の注目トピック
Taisho Nishiiより
今週のtech編には、まず、オンライン化が進展する一方で本人確認の重要度が増している昨今において、経済産業省がとりまとめた「オンラインサービスにおける身元確認に関する研究会」の報告書についてピック。次に、先日LayerXも公式ソリューションパートナーとして認定をいただいたR3社がリリースした、Cordaのプライバシ保護へ向けた、Javaで実装可能なIntel SGX用のツールキット「Conclave」について解説。そして、最後に、UniswapとLendf.MeというDeFIにおけるトークン流出事件の技術的概要を解説しております。下記のList編と合わせてご覧ください。
先週購読者数が600人に達したとお伝えしていた本ニュースですが、既に1000人を越える方にご購読いただいております。本当にありがとうございます。引き続き、最新かつ良質な情報を、皆様の目的に応じてお役立ていただけるよう、できるだけわかりやすい形でお届けできればと思っております。
Section1: PickUp
●経済産業省がオンラインサービスにおける身元確認手法の整理に関する検討報告書を取りまとめ
経済産業省が、信頼性の高いオンラインサービスの普及・拡大促進のため、オンラインでの身元確認のあり方について、令和元年1月から「オンラインサービスにおける身元確認に関する研究会」において議論を行い、その結果を報告書として取りまとめた。インターネット黎明期においては、当初「見えない」相手が前提だったが、オンライン上でも実在する本人を前提としたサービスが増加し、その人の実在性の確認の必要性が増している。今や、実在性の確認には、パスワード等の使い回しが想定される「当人認証」だけでは不十分であり、デジタル技術による第3者がその実在を確認している結果を認証する「身分確認」の効率化が期待されている。
当該研究会の目的は、「身元確認と当人認証の概念の違いを明らかにすること」、「オンラインサービス事業者に身元確認の必要性に関する事業リスクの判断指標を提供すること」、「中間強度の身元確認手法のあり方に関する整理をすること」の3つ。なお、研究会においては、身元確認のみを、また、「自主規制」及び固有の「規制なし」の領域を対象とした。
議論の結論として、1つ目の目的に関し、当人認証を、「ユーザーが実際にサービスを利用することを確認すること」、身元確認を、「実際にその行為を行うユーザが実在する特定の存在であることを確認すること」とし、それらを分けて理解することが重要とした。さらに、 なりすまし、複数アカウント等による事業者の損害リスク、オンラインサービスを利用するユーザーの保護の観点からは特に「身元確認」がなされていることが、サービス提供者、利用者双方のリスクを低減することにつながる、と整理。
2つ目の目的に関しては、既存の事業者、創業初期の事業者、未来の創業者に、今または将来起こり得る身元確認に関するリスクを事前に判断できるような判断指標があることは有用とした。その判断の際の考慮要素として、①扱う財とその内容や関与者、②事業フェーズや規模、を主としたうえで、③保険/補償の有無、④二次被害の可能性、もあげられた。一方、このリスク評価については、事業者の自主的な判断に委ねられるものとされている。
3つ目の目的については、現状の課題として、身元確認は自己申告もしくは公的身分認証の確認のいずれかであり、身元確認の厳格化とあわせて手間・コストのハードルが大きく上がることをあげ、当該課題への対応として、「適度に簡易で信頼性のある」手法(=中間強度の手法)の導入の検討がなされている。 中間強度の手法としたのは、その手法が普及した場合、創業間もない成長を優先する事業者や、成熟期にあるコストをかけてでも信頼性を優先する事業者など、全ての事業者にとって有用な身元確認手法を提示できるためだという。この中間強度の身元確認手法については、法令に基づく身元確認を行なっている金融機関や通信キャリアが提供している身元確認APIの活用が可能性としてあげられ、その際以下の点について留意する必要があるとされた。
API提供者の法による義務付けに基づく必要性。
APIの活用方法のオンライン事業者自身の選択可能性。
現状のAPI提供事業者のカバー率は限定的であることから、アグリゲータの活用の必要性、標準化などの検討余地。
高額なイニシャルコストが生じないよう、トランザクションベースでの(適切な水準)での課金の必要性。
原則として、事業者への最終的な責任帰属の必要性。
また、今後の方向性として、身元確認の重要性に関する周知や事業リスクの判断指標の展開、身元確認APIの活用環境の整備(アーキテクチャ整理も含め)が示されている。
今回は自主規制及び固有の「規制なし」の領域での検討ではあったが、身元確認を含む本人確認はオンラインサービス事業者においては重点を置くべき業務となっている。DIDなどの議論もされる中、本人確認についてはユーザー・事業者双方にとって利便性とコストなどの負担の両面において最適な形を理想としつつ、技術の発展と法律やルールなど義務付けのあり方について、引き続き注視していきたい。
● R3社がCordaのプライバシ保護へ向けJavaで実装可能なIntel SGX用のツールキット「Conclave」をリリース
エンタープライズ向けの分散台帳であるCordaにおいてプライバシーを保護するためのハードウェアレイヤーのソリューションとしてTEE(Trusted Execution environment)の一種であるIntel SGXを用いたアプローチとしてConclaveのリリースが発表された。
CordaはUTXO型で状態を取引当事者間で共有することで外部に機密性の高いデータを公開しないようにするアプローチであるが、取引をするごとにUTXOはチェーンのように繋がっていくため、遡及的に過去取引の状態にアクセスする検証時に取引者にとって意図せず第三者にデータが漏洩してしまう課題ある。この課題の解決策の一つとして今回のConclaveの開発が進められているのが背景となる。
Intel SGXはIntelプロセッサにおけるセキュリティ機能の一つであり、Enclaveと呼ばれる特定のメモリ領域に記録されるコードとデータをOSやBIOSを含めたシステムソフトウェアから隔離保護する。
このようにIntel SGXをベースにしたアプリケーション開発は低レイヤーな操作を行う必要があるため、C++やRustなどのシステムプログラミング言語での開発が一般的だ。そして、これをより多くの言語でも開発可能なようにコンテナのLibOSによるアプローチやEVMやWASMをベースとした実行環境応用が進められている。
今回発表されたConclaveもその流れの一つとして、JVMをEnclaveで実行可能にするプラットフォームでありConclave上では、JavaやKotlinなどの言語を用いてEnclave内のアプリケーションを実装することができる。
今回、ConclaveはBeta1のリリースとしファーストリリースとしてのSDKのダウンロードが可能である一方で、ユーザビリティ・パフォーマンスの向上をメインに引き続きConclaveのアップグレードを進めていく方針だ。
●Uniswap/Lendf.Meトークン流出事件の技術的概要
UTCの4月18日においてUniswapに対してre-entrancy攻撃が仕掛けられ、翌日19日にはLendf.Meにも同様の攻撃が確認された。UniswapではETHとERC777のimBTCのプールからトークンが流出し、Lendf.MeではimBTCの担保額を操作し、10種類以上のトークンを引き出した。
今回の事件はERC777という規格のトークンとUniswap/Lendf.Meのコントラクトとの間の脆弱性を突いた。ERC777はERC20と後方互換性のある規格であり、ERC20の機能に加え、オペレーターによって送金処理を代替することが可能である。さらに、トークン保持者は自分のトークンをコントロールをしやすくするために送金、受金時に任意のhook処理を実行し、operetorの権限を制限することができる。今回の事件はこのhook処理に仕込まれたre-entrance処理が原因でトークンの流出が発生した。
Uniswapにおけるこの脆弱性は昨年のauditで既に報告されており、Uniswap v1ではERC777をサポートしてないことを明記している。
また、昨年のauditでは悪意のあるsenderのコントラクトの例も公開された。具体的には①トークンをデポジットでしてETHを引き出す際に、ERC777のトークンの移転でhook処理が呼び出され、②hook処理の中でETHを引き出す取引をもう一度実行するというものである。問題となる点は②のETHの引き出しが呼び出された際に、①の取引のうちトークンの移転は完了はしているが、ETHの移転は完了していないという点である。Uniswapにおいてpool内のトークン量×ETH量=一定であるが、上記のre-entranceにより②の取引は①のトークン移転は反映されているがETH移転は反映されていないという状態で行われ、Uniswapの価格決定のメカニズムは崩壊する。これはUniswapのtokenToTokenInput関数の処理の順番に問題があると言える。詳細はauditのレポートを参照。
Lendf.Meのハックも技術的には同様な攻撃によるものだ。Lendf.Meは文字通りレンディングプラットフォームである。はじめにトークンの担保を行うsupply関数でERC777のimBTCを担保として預けるとする。トークンの移転処理はLendf.Meのコントラクト内で担保額が更新される前に行われる。したがって、hook処理の中でimBTCのwithdraw関数が実行すると、途中でトークンを引き出しているのにも関わらず、最終的にははじめの担保額がコントラクトには記録されるため、実際にデポジットした以上の金額をデポジットしたことにできてしまう。このようにして攻撃者は架空の担保から、いくつものトークンを引き出しハッキングに成功した。詳細はこちら。
出典:https://medium.com/@peckshield/uniswap-lendf-me-hacks-root-cause-and-loss-analysis-50f3263dcc09
re-entrancy攻撃はTHE DAO攻撃を始め致命的な流出に繋がりかねないので、ERC777に対応したコントラクトを作成する際は、hook処理の前に必要なステートの更新を終わらせておくなど工夫が求められる。
Section2: ListUp
1. Bitcoin
●BTCPay Server、Payjoin(P2EPと呼ばれていたもの)を新たにサポート
●Bitcoinネットワーク上にVaultをインテグレーションするプロトタイプがリリース
●Bitcoinのコントラクト開発効率化をはかるSimplicity、開発者むけプレビューを発表
2. Ethereum
●Prysmatic Labs、Ethereum 2.0テストネットTopazをリリース
3. Bitcoin/Ethereum以外
●中国、4/25にも国家ブロックチェーンプラットフォーム「Blockchain-based Service Network (BSN)」をローンチ
●中国のデジタルバンクWeBank、コンソーシアムプラットフォームFISCO BCOSとDAMLのインテグレーションを発表
●Ant Financial、中小企業むけブロックチェーンソリューションOpenChainをローンチ
●Binance、新たにBNBエコシステム内で複雑なスマートコントラクトサポートするブロックチェーンのホワイトペーパー「Binance Smart Chain (BSC)」発表
●WeBankやTencentなどがメンバーを構成するコンソーシアムチェーンFISCO BCOS
●DocuSignを用いたID検証と電子署名、Clauseを用いたカスタムビジネスロジックによるデータ検証 および外部システム呼び出しとSalesforceバックオフィスとのデータシンクを行う「デジタルローン申込プロセス」デモビデオを発表
4. 統計・リスト
●Bitcoinテクノロジーリサーチのアーカイブ。Simplicity・Confidencial Transaction・Schnorr署名など
●Ethereum開発者むけStayAtHomeツールキット
5. 論考
●Baseline Protocolの開発者、Apple/GoogleによるCOVID-19トラッキングの欠陥として、悪意あるプレイヤー介在可能性を指摘
6. 注目イベント
●Eurocrypt 2020(5/11–5/15、オンライン開催)
Disclaimers
This newsletter is not financial advice. So do your own research and due diligence.