Pages:
Author

Topic: Investigating the need for MasterCoin / Colored Bitcoins (Read 10086 times)

legendary
Activity: 1358
Merit: 1003
Ron Gross
As linked to from the OP, MasterCoin is a concept involving many different chains built on top of each other. People can opt into the MasterCoin model by "destroying" Bitcoins and effectively coverting them to MasterCoin. Have you read the whitepaper?

I've looked it through, it looks like it's designed by a non-programmer and is basically unimplementable.

It's like "Let's build a new Bitcoin with blackjack and hookers". That would be cool, sure, but who will bring hookers?

I thought that maybe you have scrapped sane parts out of it...

It's been a while since I reviewed it, I do remember some part of it being too vague, but I remember the feeling that some parts/ideas from it are in fact implementable.
It's been a while though.
legendary
Activity: 1022
Merit: 1015
As linked to from the OP, MasterCoin is a concept involving many different chains built on top of each other. People can opt into the MasterCoin model by "destroying" Bitcoins and effectively coverting them to MasterCoin. Have you read the whitepaper?

I've looked it through, it looks like it's designed by a non-programmer and is basically unimplementable.

It's like "Let's build a new Bitcoin with blackjack and hookers". That would be cool, sure, but who will bring hookers?

I thought that maybe you have scrapped sane parts out of it...
legendary
Activity: 1358
Merit: 1003
Ron Gross
Scalability is a problem only for some uses. (Basically, if you really want many participants with many transactions.)

For many other uses it's ok. E.g. for assets which aren't so numerous and do not change hands so often.

Currently we are finalizing coloring algorithm, scalability is more like thinking about future.

ripper234, can you elaborate about MasterCoin, is it just about starting a separate blockchain for coloring and other stuff?

That's true, it's just that most of the uses I've heard people talk about involve a lot of transactions.

As linked to from the OP, MasterCoin is a concept involving many different chains built on top of each other. People can opt into the MasterCoin model by "destroying" Bitcoins and effectively coverting them to MasterCoin. Have you read the whitepaper?
legendary
Activity: 1022
Merit: 1015
Scalability is a problem only for some uses. (Basically, if you really want many participants with many transactions.)

For many other uses it's ok. E.g. for assets which aren't so numerous and do not change hands so often.

Currently we are finalizing coloring algorithm, scalability is more like thinking about future.

ripper234, can you elaborate about MasterCoin, is it just about starting a separate blockchain for coloring and other stuff?
legendary
Activity: 1358
Merit: 1003
Ron Gross
The project is ongoing, although I'm not very involved with it right now.

There is a dedicated google group for these discussions, started about a week ago.

I personally think that the original MasterCoin topic might be the best way to proceed with implementation, but as I said I'm not very involved with it right now, just musing. There is a POC client that supports colored coins on the Bitcoin network, implemented by killerstorm (link?). Right now the implementation problem seems to be scalability/tx fees, and there is some debate whether it's solvable on top of Bitcoin/Litecoin, or whether some modifications to the core protocol are needed.
legendary
Activity: 1022
Merit: 1015
Um, I think we came to conclusion that there is a need quite a while ago.
legendary
Activity: 2940
Merit: 1090
So how goes the investigation?

Is there apparently no need yet?

-MarkM-
legendary
Activity: 2940
Merit: 1090
This would be much less of a problem if base currency has potentially infinite monetary base. (E.g. 50 coins mined forever.)

50 coins per block forever is GRouPcoin; so the coin you need is already out there...

-MarkM-
legendary
Activity: 1022
Merit: 1015
The actual exchange isn't the same thing as an "exchange".  Exchanges also fulfil another important role and that is to ensure bids are binding.   Not saying it is impossible to do in a p2p manner but trivializing it is not really productive.

I don't understand why this is a problem.

Spam and DoS attacks can be a problem, but they can mitigated through various tricks.

Otherwise some trades will fail, but order book isn't deterministic from client's point of view anyway: if you seen certain bid in orderbook and send an order to fill it, there is no guarantee that somebody won't fill it before you do. Also bids can be canceled, can't they?

So from a practical perspective distributed exchange just requires more time to match orders and that's all.

If you remember, in 2011 mtgox had order matching so retarded that it took several hours to match a huge-ass sell order. (And people were able to submit more orders while it mtgox was processing it.)  So this hypothetic distributed exchange won't even be the craziest Smiley

The ability to place false bids & asks would doom any p2p exchange unless you figure out a p2p way to enforce quotes.

There are certainly some ways to make quotes more 'binding', but I think it's a premature optimization to do that from the start.
legendary
Activity: 1022
Merit: 1015
Well yeah even between blockchains is possible with multisig of some kind apparently.

The hard part is anywhere that touches fiat.

Indeed. In terms of functionality it is roughly same as OpenTransactions (less feature-full, of course), so it does not solve 'fiat' problems.

I believe that Ripple might solve 'fiat problem', but Ripple requires entirely different infrastructure. I'll implement it later, next month, maybe Smiley

So okay, if a bunch of coins each having 21,000,000 coins each just like bitcoin all want to try using this coloured thing, how do they go about issuing their 21,000,000 coins each as colours on your system?

According to the original spec we can define a split in a genesis transaction which issues new type of currency/asset. E.g. we declare that 0.001 Bitcoins descending from genesis txn are 1 RedCoin.

But this is just for display purposes, of course, backend software counts everything in satoshis anyway.

So we would observe loss of precision, i.e. currencies which are introduced via split would have a relatively larger quantum.

This would be much less of a problem if base currency has potentially infinite monetary base. (E.g. 50 coins mined forever.)
legendary
Activity: 2940
Merit: 1090
Well yeah even between blockchains is possible with multisig of some kind apparently.

The hard part is anywhere that touches fiat.

So okay, if a bunch of coins each having 21,000,000 coins each just like bitcoin all want to try using this coloured thing, how do they go about issuing their 21,000,000 coins each as colours on your system?

-MarkM-
legendary
Activity: 1022
Merit: 1015
In theory, exchange between coins of different colors can be distributed, i.e. run as P2P client.

Good luck with that. No one has managed to come up with a p2p exchange yet.

Guys on #bitcoin-dev explained me that exchanging between coins of different color in one blockchain is fairly easy: it involves two guys signing one transaction, no need for any advanced contract support, not even multisig. It's a very basic stuff.

So I'm rather confident that implementing a full p2p exchange isn't that hard, maybe one man month worth of work.

Other p2p exchanges are much more complex, of course. This is why no one has managed to implement one yet, I guess.
legendary
Activity: 1022
Merit: 1015
I've started doing a little proof-of-concept to check this idea.

My fork: https://github.com/killerstorm/bitcoin/
colored bitcoin code lives on branch cbtc.

Here's a diff between mainline and colored branch (i.e. changes I've made:
https://github.com/killerstorm/bitcoin/compare/cbtc

Description of code: https://github.com/killerstorm/bitcoin/wiki/Code-structure

Here's info on trying it out: https://github.com/killerstorm/bitcoin/wiki/Running
(I assume that you can compile code.)
legendary
Activity: 2940
Merit: 1090
In theory, exchange between coins of different colors can be distributed, i.e. run as P2P client.

Good luck with that. No one has managed to come up with a p2p exchange yet.

It might be worthwhile to do so though as regardless of whether coloured coins ever happen there are already plenty of flavours of coin that could do with a p2p exchange to exchange between them all.

-MarkM-
legendary
Activity: 1022
Merit: 1015
In theory, exchange between coins of different colors can be distributed, i.e. run as P2P client.
legendary
Activity: 2940
Merit: 1090
What will you be using as an exchange for, say, these "twitcoins" for example?

If you use Open Transactions for your twitcoins or whatever coins, you'd also have markets too automatically...

-MarkM-
legendary
Activity: 1022
Merit: 1015
Why not the default, "Satoshi" client? It might be a tad harder to work with it, but on the other hand people who already have it won't need to re-download the blockchain.

Also it depends on what programming language person who wants to implement it knows, e.g. C++ programmer would be more comfortable with C++ source code, obviously.

I help is needed I can perhaps fork some time this weekend. I'm most familiar with C++ but I can program in pretty much any language. I think it's possible to to implement this in one-two days or so. (But I'm not 100% sure we mean same thing by 'color bitcoin implementation'.)

Also I thought that transaction fees would be a problem for microtransactions with colored bitcoins. In that case simplest strategy is to start a block chain merged-mined with Bitcoin which would have no txn fees. But that's like a backup plan.
legendary
Activity: 2940
Merit: 1090
First step should be to localise all the details of the code that make the program look like it is one particular type of coin.

That is, all the places where the name of the coin is displayed and so on.

That way any "colour" of coin or any "alt" coin can be built easily as all the strings and logos and so on that are different from one coin to another will all be in one place easy to switch/change.

Similarly, the key constants that make it one coin or another: the port and rpcport, the IRC channel, the DNS seed and so on.

Basically make the code generic. First step to making it easy for people to create their clients easily for their chosen colour of coin.

-MarkM-
newbie
Activity: 42
Merit: 0
ripper234 is looking for the base client to work on at :
What client is easiest to fork? https://bitcointalksearch.org/topic/what-client-is-easiest-to-fork-102595

What we would like is to start by building a new full client (with GUI) that support a new colored bitcoin,

help appreciated,

Thanks,
yoni
legendary
Activity: 1022
Merit: 1015
Intrested to help ?

Well, I'm interested in colored bitcoins, but not so much in that twitcoins. To be honest, I don't see how that can work: there won't be any demand. Also, unlimited supply...

But if you're working on bitcoin integration perhaps same code can be used for other colored bitcoins, like in general case, then I'm interested in that. But I don't have much spare time, to be honest...

I haven't found any github links so I don't see what is done (and in which direction) so far.
Pages:
Jump to: