カイアチェーン上のセキュアなウォレット管理:開発者のためのクックブック
はじめに
この料理本が向いている人
カイア セキュア ウォレット クックブックへようこそ。 このガイドは、開発者、エンジニア、Kaiaブロックチェーン上で構築するチームのために書かれています。 初めての分散型アプリケーション(dApp)の作成、自動化されたサービスのデプロイ、あるいは国庫の管理など、このクックブックには、セキュリティ第一の考え方で暗号鍵とウォレットを扱うための不可欠なレシピが掲載されている。
このクックブックの使い方
この料理本は、段階的な学習の道筋に沿っている:
- **パート1](create-and-manage-wallets-securely.md#part-1-foundational-concepts--security-principles)**は、あなたが理解する必要があるセキュリティの基礎を確立します。
- **パート2](./create-and-manage-wallets-securely.md#part-2-practical-recipes-for-wallet-management)**は、基本的なシナリオから高度なシナリオまで、実践的なレシピを提供します。
各レシピは、前のセクションのコンセプトに基づいている。 Web3セキュリティは初めてですか? 第1章](./create-and-manage-wallets-securely.md#chapter-1-the-principles-of-private-key-security)から始めよう。 経験豊富な開発者ですか? ユースケースに合ったレシピにジャンプ
基本理念安全第一
Web3では、"not your keys, not your crypto "というフレーズが基本的な真理である。 開発者にとっては、これはソフトウェア開発ライフサイクルのあらゆる部分に及ぶ。 たった一つの漏洩した鍵が、ユーザーにもプロジェクトにも致命的な損失をもたらす可能性がある。 このガイドの基本理念は、セキュリティ・ファーストである。 すべてのレシピと推奨事項は、デフォルトで堅牢で安全なシステムを構築し、攻撃面を最小限に抑え、その日から資産を保護できるように設計されています。
前提条件
このクックブックを最大限に活用するには、ブロックチェーンの概念(公開鍵/秘密鍵、トランザクション、ガス料金など)を基本的に理解し、コマンドライン・インターフェイスの操作に慣れている必要がある。
パート1:基礎概念とセキュリティ原則
このパートでは、安全な財布管理の背後にある「なぜ」に焦点を当てる。 コードを書く前に必要な核となる知識を確立する。
第1章 秘密鍵セキュリティの原則
1.1. キー・ペアを理解する:アカウントの核心
カイアでは、他のEVM対応チェーンと同様、アカウントはユーザー名とパスワードではない。 これは、公開鍵と秘密鍵の暗号鍵ペアである。 公開鍵は、あなたの銀行口座番号のようなもので、共有しても安全です。 秘密鍵は、取引やメッセージへの署名など、アカウントからのすべてのアクショ ンを承認する秘密鍵です。 守るべき最も重要な情報なのだ。 あなたの秘密鍵を所有する者は、あなたのアカウントとその資産を完全かつ不可逆的に管理することができます。
1.2. 安全な鍵の生成:カイアのベストプラクティス
安全な鍵とは、ランダムに生成された鍵のことである。 あなたのアカウントのセキュリティは、誰かがあなたの秘密鍵を推測することが数学的に不可能であることに依存しています。 鍵の生成には、ethers-ext
に組み込まれているものや、このガイドで説明するツールのような、十分に検証された標準的な暗号ライブラリを常に使用してください。 これは、秘密鍵のランダム性を著しく低下させ、推測されやすくするためである。
1.3. 安全な鍵保管:ローカル・キーストアからプロダクション・ボールトへ
秘密鍵をどのように保管するかは、秘密鍵の生成方法と同じくらい重要だ。 秘密鍵を平文ファイルに保存することは、銀行のパスワードを付箋に書いてモニターに貼っておくのと同じことだ。
警告:秘密鍵は決して平文で保存してはならない .env
ファイル。 開発には便利だが、.envファイルが誤ってバージョン管理にコミットされ、キーが公開され、即座に資金が盗まれることがよくある。
安全なローカル・ストレージの標準は、暗号化されたキーストア・ファイル(JSONキーストアと呼ばれることもある)である。 このファイルにはあなたの秘密鍵が含まれていますが、あなたが選んだ強力なパスワードで暗号化されています。 キーを使用するには、キーストア・ファイルと、それを復号化するためのパスワードをメモリ上に用意する必要がある。 本番システムでは、AWS KMSやGoogle Cloud KMSのような専用のシークレットマネージャーを使うのがベストプラクティスだ。
1.4. メモリ内のキーの扱い:ランタイム中のキー露出の最 小化
安全なソースからロードされた場合でも、トランザクションに署名するためには、アプリケーションのメモリ内に秘密鍵が存在しなければならない。 この露出を最小限に抑えることが重要だ。 優れたアプリケーション設計は、キーが可能な限り短い時間メモリに保持され、使用後直ちにクリアされることを保証する。 この料理本のライブラリーとレシピは、この原則に従って作られている。
第2章: カイア・ウォレット・エコシステムをナビゲートする
2.1. カイア・ウォレット
カイア・ウォレットは、カイア・エコシステム のためのネイティブ・ブラウザ拡張ウォレットです。 MetaMaskと多くの機能を共有しているが、独自の取引タイプ、手数料委譲取引、ネットワーク特有のアカウントシステムをサポートすることで、Kaiaに最適化されており、ネットワーク上でシームレスなユーザー体験を提供する。 開発者にとっては、その特定の動作とAPIを理解することが、スムーズなdApp統合を構築する鍵となる。
2.2. コールドストレージハードウェア・ウォレットの概要
コールド・ストレージとは、インターネットに接続されていないデバイスに秘密鍵を保管することである。 ハードウェア・ウォレット**は、この目的のために作られた物理的なデバイスである。 接続されたコンピューターに秘密鍵を公開することなく、内部でトランザクションに署名する。 そのため、高価値の資産を保護するためのゴールド・スタンダードとなっている。 このガイドでは、公式にサポートされているDCENTとSafePalのハードウェアウォレットに焦点を当てます。
2.3. マルチシグネチャ・ウォレットカイアセーフの紹介
マルチシグネチャ(または「マルチシグ」)ウォレットは、取引を実行する前に複数の秘密鍵が取引を承認することを必要とするスマートコントラクトである。 例えば、2-of-3マルチシグでは、3人の指定所有者のうち2人の承認が必要となる。 これは、単一障害点を防ぐため、チームの資金、財務、重要なスマート・コントラクトの管理を行うための標準である。 Kaia SafeはKaiaネットワークにおける主要なマルチシグソリューションです。
パート2:財布管理の実践レシピ
パート1](./create-and-manage-wallets-securely.md#part-1-foundational-concepts--security-principles)で基本的なセキュリティの原則を理解したので、次はそれを実践してみましょう。 このセクションでは、個々の開発セットアップから始まり、プロダクション・グレードのソリューションまで、実際のシナリオに沿ったステップ・バイ・ステップのガイドを提供します。
あなたは何を構築します:。
- FoundryとHardhatの安全な開発環境
- チーム・コラボレーションのためのマルチシグネチャ・トレジャリー・セットアップ
- 様々な種類のウォレットとdAppの統合
第3章 個人開発者とdAppsのセットアップ
この章では、開発プロセスにおけるウォレットのセットアップと管理のための実践的なガイドを提供し、コードの最初の行からセキュリティを強調します。
3.1. レシピ初めてのカイア開発財布
カイアを初めてご利用になる場合、またはカイアウォレットを初めて設定する場合は、ウォレットを始めるセクションを参照することをお勧めします。 ウォレットのインストール、アカウントの作成と安全なバックアップ、アカウントの追加、ウォレットへの資金供給など、重要なステップを網羅しています。