Author

Topic: Multicurrencies (Read 2470 times)

member
Activity: 76
Merit: 10
November 19, 2015, 12:00:56 AM
#5
member
Activity: 76
Merit: 10
November 18, 2015, 01:31:11 AM
#4
Testnet Is Live

Multicurrencies will have their first application in BreakoutCoin.

BreakoutCoin has three currencies.

BRO: The principal, non-staking currency.
BRX: The staking currency that stakes BRO.
BAM: The atomic currency that (1) is spendable in only whole units, (2) has a fixed money supply, (3) requires a fee delegate, BRO, for sending.

Please PM me with testnet addresses. You will need Brostake to stake.

Please practice good computer hygiene and use a sandbox environment.


Hosting has been changed to github because some users reported complaints by chrome and chromium.


Downloads

Mac
https://github.com/multicurrency/Breakout-Releases/blob/master/Release-1.0.1.0/BreakoutCoin-OSX.zip

Windows
https://github.com/multicurrency/Breakout-Releases/blob/master/Release-1.0.1.0/BreakoutCoin-Win32.zip

Linux
https://github.com/multicurrency/Breakout-Releases/blob/master/Release-1.0.1.0/BreakoutCoin-Linux.zip


Source Bundle PoE

https://www.blocktrail.com/BTC/tx/aa7a254da0601cf0d5a4c7aabe5412580a8fb44b9496892850557b32307b304e
member
Activity: 76
Merit: 10
October 30, 2015, 02:56:23 AM
#3

Multicurrency Proof-of-Stake


In the following log output, the staking currency, MC1, mints a different currency, MC2.

This particular stake happened to be the fees from a previous send.

Notice that the mint is placed in the coinbase CTransaction (vtx[0]), and the stake is in the usual slot at vtx[1].


Code:
CheckStake() : new proof-of-stake block found  
  hash: c70e7f43f235dc96b39afbc9556c4def7f26d5995c5acf08e2710985c8f092c8
proofhash: 2a33b0a948f199b4dd5db120f53739868cba81c96b1647fc827ffb84ed7f5c9c 
target: 30bdc00000000000000000000000000000000000000000000000000000000000
CBlock(hash=c70e7f43f235dc96b39afbc9556c4def7f26d5995c5acf08e2710985c8f092c8, ver=6, hashPrevBlock=000000240fd37745b5f97e05d41379a6b2a67441ce189fd2abe70d7b82d42d40, hashMerkleRoot=3374c9b4c61aacfd220292c5dc0ca2e21843073299b18c01225da82d5b3ff352, nTime=1446186896, nBits=2000ffff, nNonce=0, vtx=2, vchBlockSig=3045022100a1465c7c86cc03f1385faa4c9524d678b4f07ca2c5d750540970defb8909f41a02201ac516215c9cf7f5c58fb7e9b7e3ae8745ac4dacd1bef470cf49b9afc0397436)
  Coinbase(hash=0b7c7b7444, nTime=1446186896, ver=1, color=MC2, vin.size=1, vout.size=1, nLockTime=0)
    CTxIn(COutPoint(0000000000, 4294967295), coinbase 021903)
    CTxOut(nValue=8.00, ticker=MC2 scriptPubKey=033df18e63abca1104903c0d0650a7eeeb989d1f56a34b92f9f38a2837fbf51350 OP_CHECKSIG)
  Coinstake(hash=77ec03b763, nTime=1446186896, ver=1, color=MC1, vin.size=1, vout.size=3, nLockTime=0)
    CTxIn(COutPoint(7aedf64b4b, 1), scriptSig=3045022100b9203fabdd9089)
    CTxOut(empty)
    CTxOut(nValue=0.00, ticker=MC1 scriptPubKey=033df18e63abca1104903c0d0650a7eeeb989d1f56a34b92f9f38a2837fbf51350 OP_CHECKSIG)
    CTxOut(nValue=0.01, ticker=MC1 scriptPubKey=033df18e63abca1104903c0d0650a7eeeb989d1f56a34b92f9f38a2837fbf51350 OP_CHECKSIG)
  vMerkleTree: 0b7c7b7444 77ec03b763 3374c9b4c6
out 0.01
CheckStakeKernelHash() : using modifier 00000000000000000000000000000000000000000000000000000000000003e2 at height=792 timestamp=2015-10-29 19:35:43 UTC for block from timestamp=2015-10-29 07:21:36 UTC
CheckStakeKernelHash() : check modifier=00000000000000000000000000000000000000000000000000000000000003e2 nTimeBlockFrom=1446103296 nTimeTxPrev=1446103286 nPrevout=1 nTimeTx=1446186896 hashProof=2a33b0a948f199b4dd5db120f53739868cba81c96b1647fc827ffb84ed7f5c9c
ComputeNextStakeModifier: prev modifier=00000000000000000000000000000000000000000000000000000000000003e2 time=2015-10-29 19:35:43 UTC
GetStakeModifierChecksum: block c70e7f43f235dc96b39afbc9556c4def7f26d5995c5acf08e2710985c8f092c8
GetProofOfStakeReward(): stake=MC1; create=8.00 MC2
FindStealthTransactions() tx: 0b7c7b74448f5178cedbccdacf1572910c8511d6d1be7ffe4c609b2ab26d88ab
AddToWallet 0b7c7b7444  new
FindStealthTransactions() tx: 77ec03b7634607f10c2395a5d3c6ef0fbdebb03a0e13fb130e7407e50b27aa15
AddToWallet 77ec03b763  new
WalletUpdateSpent found spent coin 0.01 MC1 7aedf64b4bac9a5f72976709fb658c6a90fd88e0ab343b48fcc27b8f4e53a14b
SetBestChain: new best=c70e7f43f235dc96b39afbc9556c4def7f26d5995c5acf08e2710985c8f092c8  height=793  trust=76769388488  blocktrust=256  date=10/30/15 06:34:56
ProcessBlock: ACCEPTED
member
Activity: 76
Merit: 10
October 29, 2015, 01:59:38 PM
#2

Multicurrency Sending on a Testnet

The first transaction is a send of an atomic currency, AT1, using a fee delegate currency, MC2. The fee is reported in this transaction. The second transaction shows just the fee, from the client that mined it, which happened to be the same as the sender.

Code:
% ./mcd gettransaction 50eba9051d0043ae6e25e71f4c7d099fb09688447a13c87c8bd3f681a769b982
{
    "txid" : "50eba9051d0043ae6e25e71f4c7d099fb09688447a13c87c8bd3f681a769b982",
    "version" : 1,
    "time" : 1446096588,
    "locktime" : 0,
    "vin" : [
        {
            "txid" : "d86da4d9b67c5476d471d2fcd3daece059268257fd1c09a5c42de53cdd485f8c",
            "vout" : 0,
            "scriptSig" : {
                "asm" : "3045022100b168774cd9cdcac19e526330b700e69d385f3078603fbb8cc61efab867c6505702201a4ba9e5e03bfcf9179815fd11929b54b78b0319afe3820ccd084d5233e5f33101 0324eee2c3c5271e766f16940b95a63a02fecc02d217bb4d9f58767fac2c6294d2",
                "hex" : "483045022100b168774cd9cdcac19e526330b700e69d385f3078603fbb8cc61efab867c6505702201a4ba9e5e03bfcf9179815fd11929b54b78b0319afe3820ccd084d5233e5f33101210324eee2c3c5271e766f16940b95a63a02fecc02d217bb4d9f58767fac2c6294d2"
            },
            "sequence" : 4294967295,
            "value" : 100.00000000,
            "addresses" : [
                "Bzi8zqRmyeaH3MRDmsgnPvXaA3gp77Ljksy"
            ]
        },
        {
            "txid" : "ab0a5a2f42c7199b6df4be4da370e267da32c9920fb17f8d7ae51cc53f2c52e0",
            "vout" : 0,
            "scriptSig" : {
                "asm" : "304402207917e0c17ff6fd757ee73766636207f66bb1acdc0fa9920c59512835671dda6702205eacac2d12396e43bc8f87943d9eeb12b085156f02c283efd3944927bd50f5d901 02615d7acaf558930794e2c972b051b2c1de06ee2b06d1322ec59b27012fcc0458",
                "hex" : "47304402207917e0c17ff6fd757ee73766636207f66bb1acdc0fa9920c59512835671dda6702205eacac2d12396e43bc8f87943d9eeb12b085156f02c283efd3944927bd50f5d9012102615d7acaf558930794e2c972b051b2c1de06ee2b06d1322ec59b27012fcc0458"
            },
            "sequence" : 4294967295,
            "value" : 0.01000000,
            "addresses" : [
                "BrbYvDZpve9pegyz74cNFMy6aXQ6v34G8YA"
            ]
        }
    ],
    "vout" : [
        {
            "value" : 99.00000000,
            "n" : 0,
            "scriptPubKey" : {
                "asm" : "OP_DUP OP_HASH160 12c4a662e6d5029ac9b698fb104b528b619b4b78 OP_EQUALVERIFY OP_CHECKSIG",
                "reqSigs" : 1,
                "type" : "pubkeyhash",
                "addresses" : [
                    "BzQ5gPw8V8k9qujYDoowwaV9phxqV3cZgcn"
                ]
            }
        },
        {
            "value" : 1.00000000,
            "n" : 1,
            "scriptPubKey" : {
                "asm" : "OP_DUP OP_HASH160 0affec40bc89dbc5ab03758c179cc232f913499b OP_EQUALVERIFY OP_CHECKSIG",
                "reqSigs" : 1,
                "type" : "pubkeyhash",
                "addresses" : [
                    "BzPNbzkgCaQwmyAvnPypeKcinoa5U1BDEs2"
                ]
            }
        }
    ],
    "amounts" : {
        "MC1" : 0.00000000,
        "MC2" : 0.00000000,
        "AT1" : -1.00000000
    },
    "fee" : {
        "MC2" : -0.01000000
    },
    "confirmations" : 5,
    "blockhash" : "0000000628ab124b4ef88091c57ee47c22a4acdcfb91c2265d912f5e027956f6",
    "blockindex" : 1,
    "blocktime" : 1446096615,
    "txid" : "50eba9051d0043ae6e25e71f4c7d099fb09688447a13c87c8bd3f681a769b982",
    "time" : 1446096588,
    "timereceived" : 1446096588,
    "details" : [
        {
            "account" : "",
            "address" : "BzPNbzkgCaQwmyAvnPypeKcinoa5U1BDEs2",
            "category" : "send",
            "amount" : -1.00000000,
            "currency" : "AT1",
            "fee" : 0.00000000
        }
    ]
}
% ./mcd gettransaction e51d5fc584f8c8578d9fec8736588cf720cb4a834db47997436e3f66ae13689e
{
    "txid" : "e51d5fc584f8c8578d9fec8736588cf720cb4a834db47997436e3f66ae13689e",
    "version" : 1,
    "time" : 1446096600,
    "locktime" : 0,
    "vin" : [
    ],
    "vout" : [
        {
            "value" : 0.01000000,
            "n" : 0,
            "scriptPubKey" : {
                "asm" : "OP_DUP OP_HASH160 97832c1174373538af81117700fb92d0db82a4ad OP_EQUALVERIFY OP_CHECKSIG",
                "reqSigs" : 1,
                "type" : "pubkeyhash",
                "addresses" : [
                    "BrZRW8oF5KdU8FbxurL3Uc4b3ExH9UotawN"
                ]
            }
        }
    ],
    "amounts" : {
        "MC1" : 0.00000000,
        "MC2" : 0.01000000,
        "AT1" : 0.00000000
    },
    "confirmations" : 30,
    "generated" : true,
    "blockhash" : "0000000628ab124b4ef88091c57ee47c22a4acdcfb91c2265d912f5e027956f6",
    "blockindex" : 0,
    "blocktime" : 1446096615,
    "txid" : "e51d5fc584f8c8578d9fec8736588cf720cb4a834db47997436e3f66ae13689e",
    "time" : 1446096615,
    "timereceived" : 1446096616,
    "details" : [
        {
            "account" : "",
            "address" : "BrZRW8oF5KdU8FbxurL3Uc4b3ExH9UotawN",
            "category" : "generate",
            "amount" : 0.01000000,
            "currency" : "MC2"
        }
    ]
}
member
Activity: 76
Merit: 10
September 03, 2015, 01:50:21 PM
#1
Multicurrency White Paper Working Copy


Unmoderated Thread: https://bitcointalksearch.org/topic/ann-multicurrencies-test-net-live-unmoderated-1254683


Overview

Here I describe an extension of the Bitcoin/Peercoin Proof-of-Stake protocol termed "Multicurrencies". Multicurrencies are multiple first-class currencies carried on a single block chain. The concept might be considered the antithesis of "side chains", where information for a single currency is carried on multiple chains that interact.

A first class cryptocurrency is one that is fully supported by the standard input/output transaction mechanism of the bitcoin protocol and therefore is fully transferrable. A first class cryptocurrency is also one wherein the emission characteristics for it are "hard-coded" and therefore known upon genesis of the block chain.  Coins of different first class currencies can be sent simply by using addresses specific to a given currency. Encoded addresses carry the currency information in base58-check encoding. The client interprets addresses and creates transactions accordingly. Balances for each currency are tracked separately. Full multicurrency support will be available by both remote procedure call (RPC) and graphical user interface (GUI).

The currencies of a multicurrency coin can have arbitrary many-to-one staking relationships, such that currency A could mint currency B, B could mint C, and C could mint itself. Cyclic relationships are also possible, where C could mint A in the preceding example. In the first version of the multicurrency platform, the ability for a single currency to mint more than one currency (one-to-many) will not be available. However, one-to-many staking is a planned improvement to the protocol.

Additionally, the multicurrency platform will have full support for a pure Proof-of-Work system, in that all currencies can be generated by Proof-of-Work. Moreover, it is possible to have some passive currencies that are generated for a limited time only (like a premine).


Clone-Friendliness

The multicurrency platform will be very clone-friendly in that all multicurrency information will be consolidated in a single, clearly documented header file. Other developers will be able to freely clone the technology under the same open source license as bitcoin, change some parameters in the header file, and have a fully working multicurrency blockchain with minimal coding required.


Exchange-Friendliness

The multicurrency platform is also exchange-friendly for every currency on the chain. The only limitation is that unless they retool their existing scripts to specify currencies, exchanges will need one instance per currency running on it's own ports. Exchange setup will consist of a single extra line in the configuration file: "defaultcurrency=TICKER" where "TICKER" is the ticker symbol for the currency they wish to control with the client.

I am taking the greatest pains to ensure "sideways compatibility", so that exchanges and other third-party service providers do not need to retool their workflows. The multicurrency platform will be plug-and-play for all practical purposes, with the exception of the "defaultcurrency" setting in the conf file.


Use Cases

Arbitrary many-to-one staking relationships give multicurrencies several use cases that will be detailed here in the coming weeks. One of these use cases serves as the impetus for creating multicurrencies. These use cases vary slightly from those of colored coins or NXT/Counterparty type assets. Briefly, these multicurrency use cases include but are not limited to:

  • ICOs that can offer a staking currency for sale while reserving the full initial amount of the working currency for business purposes.
  • Coins that have a non-anonymous currency that mints a currency that can only be spent with anonymous transactions.
  • Incentive/collectible coins that can stake at very high rates. These coins can be limited in number, atomic (as described below), and only activate after a given time.
  • Coins that can be offered by ICO with zero inflation and therefore do not need to be staked to keep up with the money supply.


Other Features

The multicurrency platform will have the following novel features, which is not an inclusive list yet.

  • Full transaction immutability, including TXID immutability. Because "a signature can not sign itself", the potential for trivial non-invalidating changes to the signatures themselves are unavoidable.
  • Delegated staking, such that a third party may stake coins that mint back to the spender's private key. However, delegated stakers will not be able to spend the coins they mint for a spender.
  • Atomic currencies that can only be exchanged in whole units and where transaction fees are payable in a different currency.

Some of these features may not be available on first release, which is on a time line. But these features are planned for inclusion soon thereafter.


Purpose of the White Paper

The purpose of this white paper is to claim the intellectual territory of multicurrencies and to preempt ICOs based on the idea of multicurrencies alone. I have been working on the implementation of multicurrencies for several months and they will be released under the MIT open source license. Completion is expected in about 7-8 weeks. The first implementation will be for a coin that itself has a purpose beyond simply being another alt coin. Please note: no funds will be solicited on this thread.

This white paper is incomplete and will be amended and modified as needed.
Jump to: