diff --git a/README.md b/README.md index b207544..faeb593 100644 --- a/README.md +++ b/README.md @@ -18,5 +18,5 @@ Number | Title | Owner | Type [4](bsip-0004.md) | Distribute Market Fees on Core Asset to Referral Program | Danial Larimer | Protocol | Draft [5](bsip-0005.md) | Expiring Votes for Witnesses | Danial Larimer | Protocol | Draft [6](bsip-0006.md) | Market Maker Incentivization | Danial Larimer | Protocol | Draft -[7](bsip-0007.md) | Privacy (STEALTH) Mode | Danial Larimer | Informational | Draft -[8](bsip-0008.md) | Fee Backed Assets (FBA) | Danial Larimer | Informational | Draft +[7](bsip-0007.md) | Privacy (STEALTH) Mode | Danial Larimer | Protocol | Draft +[8](bsip-0008.md) | Fee Backed Assets (FBA) | Danial Larimer | Protocol | Draft diff --git a/bsip-0007.md b/bsip-0007.md index 8c67d19..7903268 100644 --- a/bsip-0007.md +++ b/bsip-0007.md @@ -3,7 +3,7 @@ Authors: Daniel Larimer Fabian Schuh Status: Draft - Type: Informational + Type: Protocol Created: 2015-12-16 Discussion: @@ -17,18 +17,21 @@ privacy. This feature helps set BitShares apart from most other crypto currencies and offers tremendous value to the users who are most interested in privacy, liberty, and freedom. -In practise they combine the techniques of *blinding* for the transfer amount -and *stealth addresses* (similar to TITAN in BitShares 1) to hide involved -parties. +In practise they combine the techniques of *blinding signatures* to hide the +amount of a transfer and *stealth addresses* (similar to TITAN in BitShares 1) +to hide involved parties. # Specifications This proposal involves creating a new front-end feature on the account page in -the wallet to enter the *privacy mode*. Here, users will be able to create -*private accounts* which are nothing but labeled private keys. They will also be -able to manage *private contacts* which are nothing more than labeled public -keys. Neither private accounts nor private contacts are tracked on the -blockchain since those keys are not used directly. +the web wallet to allow users to enter the *privacy mode*. Here, users will be +able to create *private accounts* which are labeled private keys. They will +also be able to manage *private contacts* which are labeled public keys. Neither +private accounts nor private contacts are tracked on the blockchain since those +keys are not used directly. Instead, each transaction will derive a +transaction-specific address from the private contact's public key. A off-chain +memo helps the receiver identify the deposit and derive the corresponding +transaction-specific private key from the private account. Users will be able to monitor their private balances and take the following actions: @@ -39,25 +42,29 @@ actions: * Register a new account using a private balance. * Receive a private transfer from a 3rd party given a transfer receipt. +These features are already available on the blockchain level using *address +authorities* and *key authorities* and indicating that a transaction to that +account has to be made in private. + # Implementation Aspects ## Backup Considerations Because private transfers are not recoverable from blockchain data alone, -backups of your wallet after receiving a new private transfer are required. +backups of your wallet after receiving a new private transfer are *required*. ## Javascript Implementation -This proposal will require the use of this library to perform the necessary -crypto operations in javascript (see [1]). +This proposal will require the use of a JavaScript library to perform the +necessary crypto operations in the web wallet (see [1]). # Funding BitSharestalk.org forum user `onceuponatime` has proposed to fund the development and implementation of this feature in full as a private investor and -at zero cost to BitShares holders. +at zero cost to BitShares shareholders. -Contract between `onceuponatime` and Cryptonomex: +## Contract between `onceuponatime` and Cryptonomex: The purpose of this contract is to develop a Privacy Mode feature, Privacy Mode fee accumulation account, Maintenance Account, Initialization Package, and GUI @@ -74,14 +81,14 @@ Contract between `onceuponatime` and Cryptonomex: * Receive a private transfer from a 3rd party given a transfer receipt. 3. Each of these services shall charge a fee initially set at 3x the standard transfer fee, but which may be adjusted from time to time by the owner(s) of - the Privacy Mode fees account + the Privacy Mode's management account 4. Fees shall be automatically distributed by the blockchain to the following accounts: * 20% to the BitShares network. * 20% to a Maintenance Account. * 60% to holder(s) of the Privacy Mode Fees accumulation account 5. The Maintenance Account shall be controlled by five specified manager - accounts in a 3 of 5 multisig configuration. These managers will control + accounts in a 3 of 5 multisig configuration. These managers will control the allocation of this fund to future maintenance and upgrade tasks. 6. The Initialization Package shall modify the blockchain to make the Privacy Mode feature available to users. @@ -99,11 +106,11 @@ Contract between `onceuponatime` and Cryptonomex: # Management Account -The STEALTH asset will be issued by the "management account" for this feature. -`Onceuponatime` will be the initial owner of the issued asset (not the issuer). -This management account will have multi-sig authority assigned to the 5 largest -STEALTH holders weighted proportional to stake and will have the power to set -the fee. +The STEALTH asset will be issued by the "management account" for this feature +(as created by the initialization package). `Onceuponatime` will be the initial +owner of the issued asset (not the issuer). This management account will have +3-of-5 multi-signature authority assigned to the 5 *largest* STEALTH holders +weighted proportional to stake and will have the power to set the fee. # Roadmap