killerstorm (OP)
Legendary
Offline
Activity: 1022
Merit: 1033
|
|
September 07, 2012, 12:46:12 PM Last edit: December 21, 2013, 02:49:27 PM by killerstorm |
|
New things: - The focus now is on NGCCC (ngcccbase, in particular),more info here. Developers are welcome to join the development!
- WebcoinX is a web client, demo running on testnet is available here
we're looking for developers to complete WebcoinX- the theory of colored coins
- ArmoryX is outdated, but some useful info is available below
I'm working on colored bitcoins proof-of-concept. What are colored bitcoins?Here's a brief description by Meni Rosenfeld (quote from upcoming paper on this subject): By the original design bitcoins are fungible, acting as a neutral medium of exchange. However, by carefully tracking the origin of a given bitcoin, it is possible to “color” a set of coins to distinguish it from the rest. These coins can then have special properties supported by either an issuing agent or a Schelling point, and have value independent of the face value of the underlying bitcoins. Such colored bitcoins can be used for alternative currencies, commodity certificates, smart property, and other financial instruments such as stocks and bonds. Why do we need them?Again, Meni Rosenfeld: Because colored bitcoins make use of the existing Bitcoin infrastructure and can be stored and transferred without the need for a third party, and even be exchanged for one another in an atomic transaction, they can open the way for the decentralized exchange of things that are not possible by traditional methods. So, decentralized exchanges (as an alternative to things like GLBSE and MtGox), private currencies, stuff like that. Very interesting, in my opinion. We do not really need them, but it's cool. Whose idea is this? Where can I read more?I don't know who invented this originally, but I've found about them via this thread: https://bitcointalk.org/index.php?topic=101197.0 (Alt cryptocurrencies forum), particularly this description: http://yoniassia.com/bitcoin-2-x-or-currency-2-x-initial-specs/Apparently it's somewhat related to smart property and Mike Hearn's distributed bond market ( https://bitcointalk.org/index.php?topic=92421.0), although it's not the same thing. Jeff Garzik is working on smartcoin ( https://github.com/jgarzik/smartcoin) which is kinda 'distributed bond market', but it is colored coin compatible. There were also many threads on decentralized exchanges, e.g. https://bitcointalk.org/index.php?topic=54033.0 , https://bitcointalk.org/index.php?topic=52494.0 , https://bitcointalk.org/index.php?topic=66868.0 . Here's a description of one which I aim to implement: http://bitcoin.stackexchange.com/questions/2039/is-a-distributed-version-of-glbse-possible-how-would-you-design-it/2042#2042ArmoryX is outdated!We had a working implementation, but Armory requires too much resources to run, so we completely abandoned it. Instead we're working on the next gen colored coin client: https://github.com/bitcoinx/colored-coin-tools/wiki/The-next-gen-colored-coin-clientAnd a web client: http://bitcoinx.github.io/webcoinx/Where's code?Note: this code is only of historic significance https://github.com/killerstorm/BitcoinArmory branch color Specification (which is work-in-progress) and some research tools are available here: https://github.com/killerstorm/colored-coin-tools(Old Bitcoin-Qt proof-of-concept which is largely irrelevant now: https://github.com/killerstorm/bitcoin/tree/cbtc branch cbtc.) DiscussionIncomplete specification: https://github.com/killerstorm/colored-coin-tools/blob/master/colors.mdTech discussion thread: https://bitcointalk.org/index.php?topic=106449.0Order-based coin coloring: https://bitcointalk.org/index.php?topic=114571.0Mailing list: http://groups.google.com/group/bitcoinx
|
|
|
|
chrisrico
|
|
September 07, 2012, 08:19:11 PM |
|
I'm glad you're working on this. I hadn't heard of the idea until just now, but after reading the bitcoin2.x spec, I really like the idea. I just wanted to respond to your quote from the other thread... (Well, technically there is a couple of problems: Bitcoin blockchain is hostile towards microtransactions and probably cannot scale to support them on a large scale. But it isn't a fundamental problem, I think.)
As you say, I don't think is a fundamental problem. Bitcoin is only hostile toward microtransactions because it makes little sense to do any transaction for an amount around what it costs to pay the transaction fee. However, it isn't necessary to include every transaction in a block at the same time, or to do microtransactions one at time. It has been suggested that in the future, parties who have some level of trust may create a chain of dependent bitcoin transactions before finally submitting the entire chain to a miner with an appropriate fee (but at a discount from the fee-per-transaction model). There was another, related idea that would allow one party to securely pay another in small increments up to a predetermined amount. Unfortunately, I cannot remember where I saw that.
|
|
|
|
Fizzgig
|
|
September 09, 2012, 09:20:08 PM |
|
Interpretation from Sesame Street: a business could color .01000000 bitcoins then sell them each for 1 millionth of a share of their profits, all being tracked on the blockchain? Then .00000001 colored bitcoin could trade just like 1 share of stock. For example it could be worth 10 bitcoins?
|
Best Bitcoin supported browser game: Minethings: Dig, Trade, and Fight your way to influence!
|
|
|
eb3full
VIP
Full Member
Offline
Activity: 198
Merit: 101
|
|
September 09, 2012, 10:17:08 PM |
|
Can the colored bitcoin concept be accomplished without having to traverse the blockchain to ensure the coins came from an issuing transaction? This is probably necessary anyway because of blockchain pruning. Perhaps allowing output scripts to compare/analyze serialized input scripts to ensure that an input is derived from an issuing script or transaction.
|
"With four parameters I can fit an elephant, and with five I can make him wiggle his trunk." John von Neumann buy me beer: 1HG9cBBYME4HUVhfAqQvW9Vqwh3PLioHcU
|
|
|
lebing
Legendary
Offline
Activity: 1288
Merit: 1000
Enabling the maximal migration
|
|
September 10, 2012, 02:04:16 AM |
|
I understand the coloring part, but I don't get how this paves the way for distributed exchanges. What am I missing?
|
Bro, do you even blockchain? -E Voorhees
|
|
|
ElectricMucus
Legendary
Offline
Activity: 1666
Merit: 1057
Marketing manager - GO MP
|
|
September 10, 2012, 04:14:57 AM |
|
Well, what this actually does is expanding the space of currency from one dimensional to n-dimensional. But to use that consistently trade would have to be done upon an agreement of angle the corresponding vector... not something that non-nerds would be comfortable of doing I like the idea anyway, especially because you have just done it instead of bragging about it first.
|
|
|
|
killerstorm (OP)
Legendary
Offline
Activity: 1022
Merit: 1033
|
|
September 10, 2012, 05:35:58 AM |
|
Can the colored bitcoin concept be accomplished without having to traverse the blockchain to ensure the coins came from an issuing transaction? This is probably necessary anyway because of blockchain pruning. I don't think this is necessary: people who are interested in having their coins colored will keep part of transaction history which would trace them to genesis transaction. Then they can show this history to prove that their coins are colored. Sale of colored coins would include sharing history with counterparty. Perhaps allowing output scripts to compare/analyze serialized input scripts to ensure that an input is derived from an issuing script or transaction. That would be cool, but I doubt there is a chance to see this implemented in Bitcoin in observable future. Maybe in some alt-chain, but it would create an additional problem of trading with specifically bitcoins. Also I'm afraid it would be rather complex...
|
|
|
|
killerstorm (OP)
Legendary
Offline
Activity: 1022
Merit: 1033
|
|
September 10, 2012, 05:41:51 AM |
|
I understand the coloring part, but I don't get how this paves the way for distributed exchanges. What am I missing?
People having coins of different colors can exchange them securely via a simple bitcoin transaction which would be atomic. E.g. one person gives 1 red coin and gets 5 blue coins, other person gives 5 blue coins and gets 1 red coins, they construct a transaction, sign it, and once it is in blockchain trade is done. (If one person signs but other doesn't transaction would be invalid. If there is a double-spend, it would also invalidate whole txn. So trade transactions are in fact more secure than accepting bitcoins.) So what's left is order matching logic, i.e. allowing person which is willing to trade red coins for blue coins to find a person who wants the opposite. This is fairly simple to implement and straightforward.
|
|
|
|
eb3full
VIP
Full Member
Offline
Activity: 198
Merit: 101
|
|
September 10, 2012, 09:50:57 AM |
|
I don't think this is necessary: people who are interested in having their coins colored will keep part of transaction history which would trace them to genesis transaction. Then they can show this history to prove that their coins are colored. Sale of colored coins would include sharing history with counterparty.
There are some disadvantages to maintaining a record of colored coins. New participants in a theoretical exchange will need to bootstrap from the issuer or other interested peers to verify colored coins, and then maintain an archive of derivative transactions. (You can imagine the problems at high transaction volumes.) If they only had to bootstrap from a single transaction hash, peers could begin verifying and trading "securities" immediately, and nobody would need to maintain a list of colored outputs -- the blockchain itself would serve that purpose. That would be cool, but I doubt there is a chance to see this implemented in Bitcoin in observable future.
Maybe in some alt-chain, but it would create an additional problem of trading with specifically bitcoins.
Also I'm afraid it would be rather complex...
This is true... I can't think of any easy way to implement this (yet). But if someone finds out, that'd be interesting.
|
"With four parameters I can fit an elephant, and with five I can make him wiggle his trunk." John von Neumann buy me beer: 1HG9cBBYME4HUVhfAqQvW9Vqwh3PLioHcU
|
|
|
killerstorm (OP)
Legendary
Offline
Activity: 1022
Merit: 1033
|
|
September 10, 2012, 10:17:31 AM |
|
There are some disadvantages to maintaining a record of colored coins. New participants in a theoretical exchange will need to bootstrap from the issuer or other interested peers to verify colored coins, and then maintain an archive of derivative transactions. (You can imagine the problems at high transaction volumes.) If they only had to bootstrap from a single transaction hash, peers could begin verifying and trading "securities" immediately, and nobody would need to maintain a list of colored outputs -- the blockchain itself would serve that purpose. Sure, it's a trade-off: we either have a complex, but fast solution; or we have simple, but resource-hungry. We should take both development costs and performance costs into account. It's also possible that colored bitcoin history will be hosted either on some for-profit service (i.e. for a small fee you get access to a whole archive) or in a DHT (since transactions are already secure it is sufficient to have key-value store to fetch history). This is true... I can't think of any easy way to implement this (yet). But if someone finds out, that'd be interesting. Well, the most straightforward way to do that is to add color tags to all colored inputs/outputs and to ask miners to verify those tags. (I.e. in addition to normal verification rules they will also check for conservation of colored coins, i.e. that coins do not appear out ouf nowhere.) Of course, it's unlikely that we'll ever see that in Bitcoin, but it's fairly easy to implement it in an alt-chain.
|
|
|
|
cbeast
Donator
Legendary
Offline
Activity: 1736
Merit: 1014
Let's talk governance, lipstick, and pigs.
|
|
September 10, 2012, 11:52:59 AM |
|
I like this idea, but not the fact that it would require the global Bitcoin network to verify the colored flags. Would it not be better to just verify the coins on a firewall network and broadcast to the network from there? On the client side, colored wallets can keep the coins separated. If someone wants to spend their locally deflated coins outside their local network, they would need to go through an exchange or lose the value of the colored tag.
|
Any significantly advanced cryptocurrency is indistinguishable from Ponzi Tulips.
|
|
|
killerstorm (OP)
Legendary
Offline
Activity: 1022
Merit: 1033
|
|
September 10, 2012, 12:32:18 PM |
|
I like this idea, but not the fact that it would require the global Bitcoin network to verify the colored flags. Would it not be better to just verify the coins on a firewall network and broadcast to the network from there? On the client side, colored wallets can keep the coins separated. If someone wants to spend their locally deflated coins outside their local network, they would need to go through an exchange or lose the value of the colored tag.
Well, the solution right now is to trace history using full block chain on clients. It's easy to implement and it works fine right now. Once performance will be a problem we can look for solutions. Apparently there are several options available and which one is the best would depend on environment. So it's a bit too early to discuss which solution is the best. At least we know that options are available. DHT can be a drop-in solution: it doesn't require switching to a different chain or using special transaction format or adding extra script complexity. People simply can switch to using DHT instead of using local full chain.
|
|
|
|
Mushroomized
Legendary
Offline
Activity: 1470
Merit: 1002
Hello!
|
|
September 10, 2012, 04:19:50 PM |
|
Well, what this actually does is expanding the space of currency from one dimensional to n-dimensional. But to use that consistently trade would have to be done upon an agreement of angle the corresponding vector... not something that non-nerds would be comfortable of doing I like the idea anyway, especially because you have just done it instead of bragging about it first. Exactly! Actually, my friend Ryland-Almanza and I where working on an altcoin based from solidcoin that would have colored coins, but we called them patterned coins, like plaid and checkered etc (ryland is colorblind). I definitely think that this is a good idea and great work so far!
|
hi
|
|
|
Evolvex
|
|
September 10, 2012, 09:28:05 PM |
|
I like the idea, I wonder tho.... would it be possible to.... As an idea.... Can a coloured/tagged coin be attributed to something else, ie a digital trading card? (think magic the gathering, pokomon, top trumps), brought in a pack of say 10 (for day 1BTC - giving you 10 x 0.1 coloured bitcoins or digital cards in this example).. Thus said game can be played and traded securely, and even sold at a higher premium to a "normal" bitcoin? A digital MOT style game is something I've thought about before, the way bitcoin works makes me wonder if the two could work together - coloured bitcoins just makes me wonder more
|
|
|
|
Evolvex
|
|
September 10, 2012, 09:36:22 PM |
|
Not MOT, I meant MTG ... cant find the edit button
|
|
|
|
killerstorm (OP)
Legendary
Offline
Activity: 1022
Merit: 1033
|
|
September 11, 2012, 11:26:44 AM |
|
Can a coloured/tagged coin be attributed to something else, ie a digital trading card?
Sure. It's even possible to control ownership of physical property this way: https://en.bitcoin.it/wiki/Smart_PropertyThus said game can be played and traded securely, and even sold at a higher premium to a "normal" bitcoin? Yep. It can be used for any trade-able game items and for in-game money. (Why not make in-game money bitcoin? Game owners might want to control money supply within the game and get some profit too ).
|
|
|
|
Evolvex
|
|
September 11, 2012, 01:04:30 PM |
|
Cheers killerstorm - man I love bitcoins, the more I hear the more I like them (where as my mrs on the other hand, the more she hears me on about them, the more she hates them lol)
|
|
|
|
|
Red Emerald
|
|
September 29, 2012, 01:43:52 AM |
|
This is an interesting idea. However I don't see how it makes a distributed exchange possible. The hard part is keeping track of buy/sell orders and colored coins don't do anything for that.
|
|
|
|
jgarzik
Legendary
Offline
Activity: 1596
Merit: 1099
|
|
September 29, 2012, 02:33:26 AM |
|
This is an interesting idea. However I don't see how it makes a distributed exchange possible. The hard part is keeping track of buy/sell orders and colored coins don't do anything for that.
You're right that colored coins alone do not enable the tracking of buy/sell orders. The distributed bonds example describes how an added layer would enable this. Distributed bonds are just a special type of colored coin; the concept is the same.
|
Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own. Visit bloq.com / metronome.io Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
|
|
|
|