ElementsProject / ElementsProject/elements

Pick a blinding key/blinding factor standard compatible with hww++

オープン
#448 コメント 11 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
C++
スター
1.2k
フォーク
416
平均マージ
1日 23時間
マージ済み PR(30日)
15

説明

Currently we kind of YOLO how these keys are derived, in that a backed up `wallet.dat` will properly restore funds, but these schemes are not cross-compatible with devices such as hardware wallets, and wallets that may not allow raw privkey export.

So I think for blinding derivation stuff we basically have:

1) signing keys on some path, hardened or unhardened paths from some hardened parent
2) master blinding key, which is actually Hash(some_pubkey_in_odd_hardened_path). This allows export of master blinding privkey for auditing purposes even for hardware wallets(xpub and xprv together to track funds in a non-custodial manner). This does mean an unlocked hww will cough up blinding pubkeys on a malicious host without intervention.
3) asset/value blinding factors: Some odd derivation path with hardened part, either take a single subkey and HMAC it with `txid:nOut`, or chunk up the txid and use it as a few normal derivation indices.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず、列挙されている3つの導出アプローチ—Signing Keys、Master Blinding Key、Asset/Value Blinding Factors—を、hww++ との互換性および hardware-wallet のエクスポート制約と照らし合わせて比較します。プロジェクトが互換性のある blinding key と blinding-factor の標準を選定し、文書化すれば完了です。issue ではソースファイルやテストは指定されていません。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
cpp
領域
blockchain, cryptography
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
20/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。