Swissborgのセキュリティを担うCurvのMPCという技術

 

こんにちは、ハッシュ(@e_hash104)です。

Swissborgが採用しているセキュリティ技術。いくら安心とか言われても疑問を抱いてしまうハッシュ。

あれだけ超絶使い易い操作性を維持しながら、セキュリティの堅牢性を保つことができるなどというミラクルが実現可能なのでしょうか??

ハッシュは コールドウォレット が安全性が一番高いと思っていたので、Ledger Nano S を愛用しています。

安心度はピカイチですが、操作性が問題ですよね(^^;)実に面倒臭い。

長期保管するには最適だと思いますが、それなりの頻度で取引したり、ウェルスアプリのようにSmart Yieldなどにも使うとなれば、相性はよくないと思います。

セキュリティとUXとのバランスを踏まえて、SwissborgはCurv社のMPC(Multi-Party Computation)という技術を採用したのだと思います。

前振りが長くなりましたので、早速本題に移りましょう!

 

スイスボーグが採用したCurv社のMPC技術とその他のセキュリティ比較

このMPCという技術は、秘密鍵を造らないことが最大の特徴です。なので、よく言われるSingle point failureと呼ばれる弱点がありません。

どういうことかと言うと、ハッカーなど悪意を保つ第三者が資産を盗み取ろうとしても、いわゆる秘密鍵が無いので資産を盗み取ることができないのです。

具体的にMPCの技術を掘り下げていく前に、一般的によく使われる2つのセキュリティ方法を紹介します。

 

HSM(Hardware Security Modules)

HSMの一般的な商品イメージ画像

暗号鍵の保護を目的とした専用の暗号化プロセッサであり金庫のような役目をするハードウェアです。ハードウェアと言っても単なるハードウェアではありません。

多くは、ワンチップ形成されているため、その1つのチップの中で暗号化処理が行われるます。これにより、チップ間でデータを移行する時の処理途中のデータが盗まれやすいという弱点を大幅に改善しています。

更に、HSM本体もネジなどを使わない一体型形成であることが多いです。これを無理矢理あけようとすると重要な部品がデータごと壊れるように設計されています。マジで驚きですw

どんなに安全なハードウェアに保管しても、暗号文を作成したり、電子署名を行うときは、鍵を取り出してコンピューター内で処理する必要があるので、そこに隙が生じ危険な状況がどうしても存在してしまうのです。

HSMでは、鍵を危険にさらさないようにするため、暗号・電子署名などの演算機能まで専用のハードウェア本体に内蔵しているのです!そのため、鍵を一切外に出さずに、暗号・電子署名などの処理が行われるため、安全性が高いというわけです。

具体的な流れとしては、コンピューター側がHSMに暗号・署名処理をリクエストし、それに対してHSMが鍵を受け渡すのではなくて暗号・署名処理をした結果のみをコンピューター側に返すことによって、大事な鍵の流出を防いでいます。

多くがソフトウェアで解決しようとしますが、ソフトウェアだけでのセキュリティ向上は難しいという側面からのアプローチなのでしょうね。

HSMの特徴をまとめると以下のとおりになります。

  • 鍵の安全な保管
  • 乱数の生成
  • 鍵の生成
  • ハードウェア内部で鍵を使用して暗号演算や電子署名の処理

 

Multi-Signature wallet

BitGoで採用しているマルチシグのイメージ画像

(画像はBitGoの例)

 

通常は、自分だけが持つ秘密鍵は1個です。マルチシグでは、署名の際に秘密鍵が2個以上必要になるタイプのウォレットのことです。

どういうことかと言うと、複数の場所に保管された秘密鍵を揃えることではじめて機能するようになります。最も一般的なものは、3個の秘密鍵が異なる場所に保管され、そのうちの2個が合致しないと秘密鍵として機能しないもので、【2 of 3】といったように表記されます。

もちろん、【3 of 4】やそれ以上の数の組み合わせとかもありますが、処理が複雑になれば後述するデメリットも増えていきますので、一概に数を多くすれば良いという訳ではありません。

安全性を更に向上させるとともに、仮に自分が秘密鍵を無くしたとしても残りの2個を使って署名(サイン)できるというメリットも大きいです。セルフGoxなんてしたら、もはや涙も出てきませんしね。

デメリットとしては、とにかく手間がかかるのと、余計な手数料がかかりコスト高となる点です。

 

Swissborgが信頼を置くCurv社のMPCというセキュリティ技術

ここからは、いよいよMPCについてとなります。

やや複雑と思われる説明になりますので、イメージを掴んでもらうために敢えてこの段階でMPCを小さなパズルに例えさせてください。

MPCでは鍵を生成しないのは既にお話させてもらいましたが、その代わりに数ピースから構成されているパズルのようなものを使って秘密鍵の代わりをさせます。1つ1つのピースだけでは意味を持たず、何の役にもたちません。

ですが、構成されているピースを全て集めると鍵の形となり、それが秘密鍵の役割を果たすといったイメージです。

 

Curv社のサイト上でのMPC紹介

Curvのサイトで紹介されているMPC技術のさわりから紹介していきましょう。

数学的に安全

 

数学的に安全をイメージした画像Curvの専売特許であるMPC(Multi-Party Computation)と呼ばれる技術によって、情報漏洩や物理的障害、内部で起きる共謀といったものから守るために、1つ1つのトランザクションにサインするために必要な秘密鍵(Private Key)という概念を安全で且つ分散型の方法で取り除きます。

 

効率的な運用

 

効率的な運用をイメージしたCurvは、ホットウォレットとコールドウォレットの両方が必要となる状況に取って代わることができる拡張性を備えたソフトウェアのみで構成されるクラウドベースのサービスなのです。

Curvはまた、全てのセッティング、及び稼働中のブロックチェーンオペレーションを管理もしています。こうすることで、将来的に新しいデジタル資産を導入する場合も、今までと比べて比較にならないくらいに容易になります。

 

カスタマイズの容易さ

 

カスタマイズの容易さをイメージした画像Curvによる柔軟で、企業規格を備えたポリシーエンジンによって、管理者はデジタル資産全般にわたる組織のポリシーを遵守しつつも、適応性を兼ね備えたリスクプロファイルを定義することができます。

そして、全ての従業員やデバイス、ウォレットをきめ細やかにコントロールすることも可能になります。ポリシーエンジンについては上手い訳をあてられなかったので、原文にて紹介させてください。

A policy engine is a software component that allows an organization to create, monitor and enforce rules about how network resources and the organization's data can be accessed.

 

さて、上記3つで取り上げたようなCurv MPCテクノロジーですが、理解の難しいMPC プロトコル をハッシュの可能な範囲でお伝えできればと思います。

一応、Curvからホワイトペーパーまで取り寄せて読んだのですが、それでも完全理解には及びませんでしたが、役に立つレベルまでは来れたと思いますので、一緒にこのまま進んでいきましょう!

MPC技術を用いたセキュリティの流れを知る

ウォレットや『シェア(Shares)』と呼ばれる暗号化されたものをユーザー側とCurv側でそれぞれ作ります。このプロセスは、ユーザー側のネットワーク上で行われます。

このシェアを使い、CurvのMPCプロトコルのひとつを経由してウォレット用の公開鍵を造り出します。

1.リクエスト送信

 

リクエスト送信イメージ画像ウォレットの外部から資金を送るリクエストを出す際に、Curvはリクエスト送信側(ユーザーまたはデバイス)が本物であるかどうかを証明します。

そして、送信側が予め定義したポリシーに紐付いたリクエストであるかどうかをCurv側が確認します。

この定義におけるルールは、ユーザーID、トランザクション量、送り先となるウォレット、等々といった基準をいくらでも設けることが可能なようです。

 

2.合致サインプロトコル

 

合致サインプロトコルイメージ画像1のプロセスが認証されると、MPCプロトコルはあなた側とCurv側の『シェア』と呼ばれるものを併せて使ってトランザクションにサインします。

イラストを見てもらうとイメージがしやすいです。

ただし、それぞれのシェアを一緒に取り扱うことは絶対にありません。ここがハッシュが原文を読んでいても分からなかった部分です…。

確かに分別管理していた鍵に変わるような情報(シェア)を一箇所に2つ同時に揃えてしまうと、そこを狙われたらおしまいです。

ですが、揃えずにどうやって合致したと判断させるのか…。この部分は目をつぶってやってください(^_^;)逆に、誰か詳しい人が居たら教えて下さい<(_ _)>

 

3.トランザクション処理

 

トランザクション処理をイメージした画像Curvは、異なるブロックチェーンを処理できるように全てのインフラストラクチャーを維持しているようです。

確かに、ウェルスアプリもERC20だけでなく、BTCなどにも対応していますし、取引も瞬時に行われますものね。

そして、サインが合致したら、Curvは該当するブロックチェーン上にサインしたトランザクションをアップロードし、それが執行されるのを監視するという訳です。

 

まとめ

いかがでしたでしょうか?

このMPCに関しては、スイスボーグのサイトを見ただけでは正直理解できませんでした。

なので、Curv社のサイトやホワイトペーパー、そして一般的なセキュリティ技術を元に何とかここまでご紹介させてもらいました。

少しでも、Swissborgへの理解と信頼が増せばハッシュも嬉しいです♪

ハッシュが信頼を置いているウェルスアプリを使ってみたい人は、まずはこちらの記事をごらんください。

 

Twitterでハッシュ(@e_hash104)をフォローしよう

おすすめの記事