イーサリアムの非決定論的ウォレットと決定論的ウォレットの仕組み (2021/06/30)

イーサリアムの非決定論的ウォレットと決定論的ウォレットの仕組み (2021/06/30)

https://blogs.oracle.com/acharyavivek/how-ethereum-non-deterministic-and-deterministic-wallets-work

投稿者:Vivek Acharya | Consulting Technical Manager



今回のブログは、いつものOracle製品に関する内容とは少し違います。この記事では、Ethereumウォレットの概要とその種類について説明します。まず、ウォレット技術とは何か、ブロックチェーンアプリケーションにおけるその役割と仕組みについて説明します。そして、決定論的ウォレットと非決定論的ウォレットという2つの主要なタイプについて説明します。


ブロックチェーンや分散型金融の普及により、ビットコインや暗号通過などのデジタル通貨を提供する多くのアプリケーションには、デジタルウォレットと呼ばれる機能が搭載されています。ウォレットは、ユーザーが自分の秘密鍵を保管・管理するためのものです。ウォレットは、鍵の生成にも使用されます。ウォレットは、ユーザーが自分のウォレットにアクセスして管理するプラットフォームによって、ウェブ、デスクトップ、モバイル、ハードウェアの4種類に分類されます。


また、鍵の生成方法によってもウォレットを分類することができ、決定論的ウォレットと非決定論的ウォレットがあります。非決定論的なウォレットは、決定論的なウォレットに比べてかなり古いスタイルと考えられます。最新の決定論的ウォレットは、バックアップ、セキュリティ、データストレージ、会計、監査、アクセスコントロールなど、多くの面で非決定論的ウォレットよりも優れています。


ウォレット技術の理解


私たちが何かをウォレットと呼ぶとき、それはお金を保管するものだと想定しています。実際には、Ethereumのウォレットには、エーテルやトークンは保管されていません。ウォレットは、取引の署名に必要な秘密鍵を保管しています。イーサリアムのウォレットは、暗号通貨のウォレットと同様に、非決定論的ウォレットと決定論的ウォレットに分類することができます。


非決定論的ウォレットと決定論的ウォレットを理解


この2つのウォレットの違いは何ですか?秘密鍵のバックアップ方法に違いがあります。非決定論的ウォレットは、互いに独立したランダムな秘密鍵を生成します(次の図の左端のように)。どのようにして鍵が生成されるかについては、特定のパターンはなく、したがって、新しい鍵ができるたびに鍵のバックアップを作成する必要があります。一方、決定論的な財布では、秘密鍵はシードと呼ばれる同じ鍵を元にしているため、図の右側に示すように関連性があります。シードを一度バックアップするだけで、すべての鍵を再生成することができます。




決定論的ウォレットには3つのタイプがあります。


  •     決定論的ウォレット
  •     階層型決定論的(HD)ウォレット
  •     アーモリー決定論的ウォレット


イーサリアムのプレセールで使用されている最初のウォレットは、非決定論的ウォレットです。決定論的ウォレットと比べると、かなり古いスタイルだと考えられます。最新の決定論的ウォレットは、バックアップ、セキュリティ、データ保存、会計、監査、アクセスコントロールなど、多くの面で非決定論的ウォレットよりも優れています。以下のリストは、これらの利点のいくつかを紹介しています。


  •     決定論的なウォレットのワンタイムバックアップは、非決定論的なウォレットをバックアップしなければならない面倒な方法に比べて、とても簡単です。毎回バックアップを作成しないと、エーテルやスマートコントラクトに言及しているデータを失うリスクがあります。決定論的なウォレットの場合は、マスターシードをコピーするだけで十分です。ウォレットのインポート・エクスポート時の作業が少なくて済みます。非決定論的なウォレットの場合は、移行プロセス中にキーのリスト全体をコピーする必要があります。
  •     決定論的ウォレットのコンセプトでは、シードから鍵を導き出すことで、秘密鍵をオフラインで保管することが可能になります。秘密鍵へのウェブサーバからのアクセスを無効にすることで、プライバシーとセキュリティが向上します。シードの確保は、非決定論的ウォレットが必要とするすべての鍵の安全性確保と比較して、より少ない労力で済みます。


HDウォレットは、決定論的ウォレットの中で最もよく知られている種類です。HDウォレットは、決定論的ウォレットの中でも最もよく知られている種類であり、開発が進んでいるため、決定論的ウォレットを作成したい場合には、好ましい選択肢となります。以下のようなケースでは、HDウォレットは他の決定論的ウォレットよりも優れています。


  •     対応する秘密鍵にアクセスせずに公開鍵を作成するケース 
  •     組織内の階層構造に合わせて鍵を作成するケース


最初の使用例は、HDウォレットのセキュリティ上の利点を示しています。通常、決定論的ウォレットは単一の鍵ペアチェーンを保持しており、選択的な鍵ペアの共有をサポートしていませんが、HDウォレットは単一のルートから生成された複数の鍵ペアチェーンでそのような選択的な共有を可能にしています。場合によっては、秘密鍵を公開せずに公開鍵を作成できることで、通常はセキュリティリスクが高い環境でもHDウォレットを利用できるようになる。ここに挙げた2つ目のユースケースは、デザインの階層構造を利用して、実際のケースでの使用に落とし込んだものです。


HD walletにはセキュリティ上の利点がある 先に述べたように、ここでは安全性を考慮したもう一つの側面である秘密鍵管理を取り上げます。これは、オフライン(コールドストレージなどネットワークから離れた場所)での鍵生成を指すだけではありません。鍵のシャーディングや署名の分割なども考えられます。キーシャーディングとは、シャミアの秘密分散とも呼ばれ、基本的には、鍵をいくつかのピース(シャード)に分割することです。これにより、それぞれのシャードは役に立たなくなり、十分な数のシャードが集まらなければ元の鍵を復元することができません。これと似ていますが、全く異なる概念として、マルチ・シグネチャー・ウォレットがあります。このテーマに興味のある方は、ぜひこの記事を読んでみてください。


暗号通貨ウォレットがますます発展していく中で、プロトコルや標準を業界全体で共有する必要があります。イーサリアムコミュニティは、長年にわたって標準を確立してきました。その中には、Ethereum Improvement Proposals(EIP)と呼ばれるものもあります。例えば、Ethereum Requests for Comment(ERC)として知られるスマートコントラクトの標準フォーマットのように、アプリケーションレベルの標準に関するものもあります。ウォレットの作成にも標準規格が適用されます。広く採用されている規格は、以下のようにいくつかあります。


  •     HDウォレット(BIP-32)
  •     多目的HDウォレット(BIP-43)
  •     複数通貨および複数アカウントのウォレット(BIP-44)
  •     ニーモニックコードワード(BIP-39)


BIPとは、Bitcoin Improvement Proposalの略です。現在、ビットコインとイーサリアムのネットワークには非常に多くの違いがありますが、それでも多くの共通点があり、標準やプロトコルを共有しています。


ニーモニックコードワードは128ビットから256ビットのエントロピーです。このエントロピーは、PBKDF2(Password-Based Key Derivation Function 2)関数に差し込まれ、512ビットのシードに引き伸ばされます。このシードは、決定論的なウォレットの構築に使用されます。次回の記事では、HDウォレットやBIP-規格について詳しく解説します。


まとめ

この記事では、ウォレット技術とブロックチェーンにおけるその役割について学びます。また、異なるタイプのイーサリアムウォレット(決定論的ウォレットと非決定論的ウォレット)についても説明します。次回の記事では、最も人気のあるEthereumウォレットのカテゴリーの1つであるハードウェアウォレット(BIP規格に基づく)について説明します。


リソース


Ethereumを使ったブロックチェーン開発について、より詳しく知るためのリソースをご紹介します。



 この記事は、Matt Zand氏と共同で執筆しています。この記事は、DC Web MakersHash FlowCoding BootcampsHigh School Technology Servicesの創設者であるMatt Zandと共同で執筆しました。また、オライリーメディアのHands-on Smart Contract Development with Hyperledger Fabricの主要著者でもあります。


コメント

このブログの人気の投稿

Oracle RACによるメンテナンスのためのドレインとアプリケーション・コンティニュイティの仕組み (2023/11/01)

Oracle Cloud Infrastructure Secure Desktopsを発表: デスクトップ仮想化のためのOracleのクラウドネイティブ・サービス (2023/06/28)

新しいOracle Container Engine for Kubernetesの機能強化により、大規模なKubernetesがさらに簡単になりました (2023/03/20)