Skip to content

Latest commit

 

History

History
237 lines (130 loc) · 8.41 KB

5. Use_Cases.md

File metadata and controls

237 lines (130 loc) · 8.41 KB

Key:

  • X = Existing. This feature already exists in the system.
  • M = Mandatory This feature must be built into the system.
  • D = Desirable. This feature should be built into the system.
  • O = Optional requirement.
  • E = Possible future enhancement.
  • N = Not possible.

#5. Technology Overview and Use Cases

##5.I. Overview

The Master Protocol is a meta-layer using bitcoin protocol for a variety of purposes. The prime uses are the creation and transfer of of meta-layer currencies that leverage Bitcoin's transaction security, shared ledger and public-private key address model.

###5.I.A. Address Types

####5.I.A.1. Default / Unrestricted

Any Bitcoin address which has not been marked as limited using Master Protocol. Can send Simple Sends (https://github.com/mastercoin-MSC/spec#transfer-coins-simple-send).

####5.I.A.2. Limited

Any Bitcoin address which has not been marked as limited using Master Protocol. Limited addresses cannot send Simple Sends, and can send a Restricted Send (https://github.com/mastercoin-MSC/spec#restricted-send)

###5.I.B. Specification for Issuance

Currently the Master Protocol Specification has two types of token creation methods:

####5.I.B.1. Fixed number of Tokens

https://github.com/mastercoin-MSC/spec#new-property-creation-with-fixed-number-of-tokens

####5.I.B.2. Crowd Sale: Variable number of Tokens

https://github.com/mastercoin-MSC/spec#new-property-creation-with-fixed-number-of-tokens

parameters unique to this type are:

Currency identifier desired = 1 for Mastercoin (cannot be bitcoin) Number Properties per unit invested = 100 indivisible shares Deadline = January 1st, 2215 00:00:00 GMT Early bird bonus %/week = 10 Shares for issuer = 1000 indivisible shares

###5.I.C. Token Transfers and Trade Use Cases

Regarding transfer and trade this can be accomplished by a few methods and depends on the particular use case in terms of transfer of property or rights. For the purpose of this document "Party" is defined as a Bitcoin Address, and these rules apply to meta-layer tokens, not bitcoins.

The are classified using the following structure:

####5.I.C.1. Two Party Transfers

#####5.I.C.1.i. One to One Transfers

The simplest use cases are the transfer of a meta-layer currnencies between two Bitcoin addresses.

######5.I.C.1.i.a. Simple Send

Sending some amount of a meta-layer coin from one party to another.

https://github.com/mastercoin-MSC/spec#transfer-coins-simple-send

######5.I.C.1.i.b. Restricted Send

Sending a meta-layer coin from a Bitcoin address marked as rate-limited or savings.

https://github.com/mastercoin-MSC/spec#restricted-send

####5.I.C.2. Transfers Involving More Than Two Parties

#####5.I.C.2.ii One to Many Transfers

Similar to a one-way transfer however, however involving multiple parties as output. Note that this could either be done at the Bitcoin protocol level or at the Master Protocol level depending on the particular use case.

######5.I.C.2.iii Many to One Transfers

Calling back a virtual currency. Note that this can only be accomplished at the Master Protocol level and should only be available to virtual currency issue which specifically enable this parameter so that there is explicit consent.

######5.I.C.2.iii.a Special Case: Redemption Payment

When calling back a virtual currency, if a final redemption payment is required. Again only Master Protocol level and needs to be explicit at time of virtual currency issuance, so that there is explicit consent.

####5.I.C.3. Peer to Peer Trades

#####5.I.C.3.i. Meta-Layer Trades

In this case this typically should involve two parties who do not want to trust each other for trading one virtual currency for another. The enforcement of the trade is written into the protocol, therefor when Bob offers X-Coin and Alice offers Y-Coin, and their orders match, the transfer is recognized by all other participants.

######5.I.C.3.i.a. Special Case: Crowd Sale Issuances

Issuances are special types of meta-layer trades, which are involved in the creation of new virtual currencies.

######Existing Requirements

Requirement Protocol Code Bytes or restriction
Transaction version 0
Transaction type 51
Ecosystem 1 for tradable within Mastercoin ecosystem as opposed to Test Mastercoin
Property Type 1 for new indivisible tokens, 2 New Divisible currency
Previous Property ID 0 for a new smart property or existing property ID if replacing or appending
Property Category “Companies\0” 10 bytes
Property Subcategory “Bitcoin Mining\0” 15 bytes
Property Name “Quantum Miner\0” 14 bytes
Property URL “tinyurl.com/kwejgoig\0” 21 bytes
Property Data “\0” 1 byte
Currency identifier desired 1 for Mastercoin cannot be bitcoin
Number Properties per unit invested 100 indivisible tokens
Deadline January 1st, 2215 000000 UTC must be in the future
Early bird bonus %/week 10
Percentage for issuer 12

######Future Requirements

Function Purpose Status
Goal setting the coin will only be issued if X amount in the funding currency is received by Close data, else funds are returned to sender account(s) E
Changing the amount of issued coins do rolling issuance and destruction, meaning that when tokens are sent to the issuer for redemption they are retired/destroyed and the issuer can add more tokens to the issuance (requested by Bitfinex) D

#####5.I.C.3.ii. Bitcoin to Meta-Layer Trades

In this use case the two parties agree on a price, and the meta-layer protocol is able to create a timed contract. But since one of the virtual currencies involved is bitcoin, the meta-layer protocol is not able to enforce the transfer of virtual currencies until the party possessing bitcoins transfers them to the other party within the scope of the agreement

###5.I.D. Auction Types

List out auction types here

##5.II. Smart Contract Use Cases

###5.II.A. Intangibles

###5.II.A.1. Software Services

  • cpu time
  • maidsafe

###5.II.A.2. Virtual Property

This applies to games, art, and media.

###5.II.A.3. Debt

Needs review of regulations

###5.II.A.4. Shares

Needs review of regulations

###5.II.A.5. Currencies

Virtualized national currencies

May need to collect customer data.

May need to build in fee collection capability into the protocol.

As a way to collect taxes - the African country scenario.

###5.II.B. Smart Properties

Reguires physical integration and control of physical apparatus.

###5.II.C. Identity Systems

Blockauth

###5.II.D. Data Streams

Currently Data Streams are set at some quantity of Mastercoins per unit of something which is defined at the point of Data Stream registration which is a special transaction type.

See: https://github.com/mastercoin-MSC/spec#publishing-data

See: https://github.com/mastercoin-MSC/spec#data-streams-and-betting

###5.II.E. Conditionals

####5.II.E.1. Transaction Capabilities Coupling

Capabilities coupling of transaction types by extending the capality of a particular token.

#####5.II.E.1.a. Betting Capabilities

The betting functionality in the Master Protocol specification couples bet types with a registered data stream transactions.

For more information on data streams see: https://github.com/mastercoin-MSC/spec#registering-a-data-stream

Table of Bet Types

0 Will equal on 32 Will equal on or before 1 Will not equal on 33 Will not equal on or before 2 Will exceed on 34 Will exceed on or before 3 Will not exceed on 35 Will not exceed on or before 4 Will be below on 36 Will be below on or before 5 Will not be below on 37 Will not be below on or before 6 Bullish Contract for Difference 7 Bearish Contract for Difference

Source: https://github.com/mastercoin-MSC/spec#offering-a-bet

######5.II.E.1.a.1. Use Case: Social Pool Betting

Funds put into a pool where the outcome determines pay out. For example, Bob and Alice whether Ed will win this year's Triple Crown.

######5.II.E.1.a.2. Use Case: Contracts for Difference

######5.II.E.1.a.3. Use Case: Gambling

Will likely need a random number generator. Or a feed that provides that.

Data feeds providers would need to control for legal age and jurisdictional restrictions.

###5.II.F. Synthetic Assets

Synthetic Assets are defined as owning a combination of securities and/or assets in such a way that they produce the same financial effect as the ownership of an entirely different asset would.

###5.II.G. Funds Ecosystems

refer to permacredit scenario