public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Kefkius <kefkius@maza•club>
To: bitcoin-dev@lists•linuxfoundation.org
Subject: [bitcoin-dev] BIP Draft: Multi-Currency Hierarchy For Use In Multisignature Deterministic Wallets
Date: Tue, 26 Apr 2016 19:00:48 -0400	[thread overview]
Message-ID: <571FF320.8010603@maza.club> (raw)

I'm re-submitting this after a little under a year because, though it
generated little discussion, I feel it is still necessary.

The following can also be found at:
https://github.com/Kefkius/bip-kefkius-multicoin-multisig/blob/master/README.md

<pre>
  BIP: bip-kefkius-multicoin-multisig
  Title: Multi-Currency Hierarchy For Use In Multisignature
Deterministic Wallets
  Author: Tyler Willis <kefkius@maza•club>
  Status: Draft
  Type: Standards Track
</pre>

## Abstract ##

This BIP defines a hierarchy based on BIP-0044 for deterministic wallets
intended to facilitate multi-currency, multisignature wallet management.

This BIP is an application of BIP-0043.

## Motivation ##

The hierarchy defined in BIP-0044 places a coin's type level above the
level designating account number. This limits the possible
implementations of multi-currency, multisignature wallets. The hierarchy
defined here facilitates the creation of wallets intended to be both
multi-currency and multisignature.

## Specification ##

### Path Levels ###

<pre>
m / purpose' / wallet' / coin_type / change / address_index
</pre>

#### Purpose ####

Purpose is a constant tentatively set to
`bip-kefkius-multicoin-multisig` as there is no BIP number assigned to
this proposal. Hardened derivation is used here.

#### Wallet ####

This level is incremented for every wallet that one makes. Much like the
account node in BIP-0044, this is intended to organize independent
identities within the key space.
Basically, each index in this level represents a group of cosigners.
Hardened derivation is used here.

#### Coin Type ####

This is the BIP-0044 index of the coin being managed. Public derivation
is used here.
Public derivation is used so that cosigners need only know one of each
other's public keys, rather than needing to distribute public keys for
each coin.

#### Change ####

0 is used for public addresses and 1 is used for change addresses.
Identical to BIP-0044 behavior. Public derivation is used here.

#### Address Index ####

The address index. This increases sequentially as it does in BIP-0044.
Public derivation is used here.


## Examples ##

| wallet | coin      | change? | address | path                         |
|:-------|:----------|:--------|:--------|:-----------------------------|
| first  | Bitcoin   | no      | first   | m /
bip-kefkius-multicoin-multisig' / 0' / 0  / 0 / 0   |
| first  | Bitcoin   | no      | second  | m /
bip-kefkius-multicoin-multisig' / 0' / 0  / 0 / 1   |
| first  | Testnet   | no      | first   | m /
bip-kefkius-multicoin-multisig' / 0' / 1  / 0 / 0   |
| second | Bitcoin   | no      | first   | m /
bip-kefkius-multicoin-multisig' / 1' / 0  / 0 / 0   |
| second | Bitcoin   | yes     | first   | m /
bip-kefkius-multicoin-multisig' / 1' / 0  / 1 / 0   |
| third  | Testnet   | yes     | sixth   | m /
bip-kefkius-multicoin-multisig' / 2' / 1  / 1 / 5   |


                 reply	other threads:[~2016-04-26 23:00 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=571FF320.8010603@maza.club \
    --to=kefkius@maza$(echo .)club \
    --cc=bitcoin-dev@lists$(echo .)linuxfoundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox