HPB-Wallet:HPBウォレットワード生成とバックアップ


HPB-Wallet:HPBウォレットワード生成とバックアップ


助記語生成


1 BIP32, BIP39, BIP44
  • BIP 32:Hierarchical Deterministic wallet(「HD Wallet」と略称)を定義し、単一seedからツリー構造を生成して複数のkeypairs(秘密鍵と公開鍵)を格納できるシステムである.利点は、seedのみが必要であるため、バックアップを容易にしたり、他のコンプライアンスデバイスに移行したり、階層化された権限制御などです.
  • BIP 39:seedを覚えやすく書く単語で表す.一般的に12個の単語からなり、mnemonic code(phrase)と呼ばれ、中国語では助記語または助記コードと呼ばれている.例:rose rocket invest real refuse margin festival danger anger border idle brown
  • BIP 44:BIP 32のシステムに基づいて、樹状構造における各層に特殊な意味を与える.同じseedで複数通貨、複数勘定科目などをサポートできるようにします.各レイヤの定義は、m/purpose'/coin_type'/account'/change/address_index.

  • その中のpurporse’固定は44’であり、BIP 44の使用を表す.そしてcoin_type’は、Bitcoinが0’、Ethereumが60’のような異なる通貨を表すために使用される.
    2助記語生成
    HPB Walletが現在使用しているBIP 39は、64ビットの秘密鍵を12単語に変更して記憶しやすい.
    BIP 39を開く.swiftファイルでは、次の方法を呼び出して、ランダムにアシストを生成できます.
    static public func generateMnemonics(bitsOfEntropy: Int, language: BIP39Language = BIP39Language.english) throws -> String? {
            guard bitsOfEntropy >= 128 && bitsOfEntropy <= 256 && bitsOfEntropy % 32 == 0 else {return nil}
            guard let entropy = Data.randomBytes(length: bitsOfEntropy/8) else {throw AbstractKeystoreError.noEntropyError}
            return BIP39.generateMnemonicsFromEntropy(entropy: entropy, language: language)
            
        }     
    

    助記語に基づいてseedを取得し、sha 256を介して明文秘密鍵を取得することができる.
     let seed = BIP39.seedFromMmemonics(mnemonic, language: BIP39Language.english)
     let privateKey = seed.sha256()
    

    2.1ワードバックアップ
    助記語を持つことでこのアカウントをコントロールできるので、助記語が生成されたら、ユーザーに助記語のバックアップを促す必要があります.中心化されていないアプリについては、ユーザーがバックアップした後にローカルから削除し、ユーザーがバックアップする前に暗号化してローカルに保存することができます.
    著者:HPB Wallet開発チームの原稿整理に感謝します.
    1.財布の詳細については、HPB-Walletを参照してください.
    2.HPBの技術情報をもっと知りたい場合は、GitHub WiKi:HPB WiKi of GitHubにアクセスしてください.
    3.HPBの情報をもっと知りたいなら、私たちの公式サイト:HPB Websiteに注目してください.