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.
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 |
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