Bitcoin Forum
October 04, 2024, 09:57:49 PM *
News: Latest Bitcoin Core release: 27.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 »
  Print  
Author Topic: ChromaWallet (colored coins): issue and trade private currencies/stocks/bonds/..  (Read 97070 times)
killerstorm (OP)
Legendary
*
Offline Offline

Activity: 1022
Merit: 1033



View Profile
September 07, 2012, 12:46:12 PM
Last edit: December 21, 2013, 02:49:27 PM by killerstorm
Merited by nutildah (6)
 #1

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):

Quote
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:

Quote
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#2042

ArmoryX 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-client

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

Discussion

Incomplete specification: https://github.com/killerstorm/colored-coin-tools/blob/master/colors.md

Tech discussion thread: https://bitcointalk.org/index.php?topic=106449.0

Order-based coin coloring: https://bitcointalk.org/index.php?topic=114571.0

Mailing list: http://groups.google.com/group/bitcoinx

Chromia: a better dapp platform
chrisrico
Hero Member
*****
Offline Offline

Activity: 496
Merit: 500


View Profile
September 07, 2012, 08:19:11 PM
 #2

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
Full Member
***
Offline Offline

Activity: 154
Merit: 100


View Profile
September 09, 2012, 09:20:08 PM
 #3

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 Offline

Activity: 198
Merit: 101


View Profile
September 09, 2012, 10:17:08 PM
 #4

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 Offline

Activity: 1288
Merit: 1000

Enabling the maximal migration


View Profile
September 10, 2012, 02:04:16 AM
 #5

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 Offline

Activity: 1666
Merit: 1057


Marketing manager - GO MP


View Profile WWW
September 10, 2012, 04:14:57 AM
 #6

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 Wink
I like the idea anyway, especially because you have just done it instead of bragging about it first. Smiley
killerstorm (OP)
Legendary
*
Offline Offline

Activity: 1022
Merit: 1033



View Profile
September 10, 2012, 05:35:58 AM
 #7

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

Chromia: a better dapp platform
killerstorm (OP)
Legendary
*
Offline Offline

Activity: 1022
Merit: 1033



View Profile
September 10, 2012, 05:41:51 AM
 #8

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.

Chromia: a better dapp platform
eb3full
VIP
Full Member
*
Offline Offline

Activity: 198
Merit: 101


View Profile
September 10, 2012, 09:50:57 AM
 #9

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 Offline

Activity: 1022
Merit: 1033



View Profile
September 10, 2012, 10:17:31 AM
 #10

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.

Chromia: a better dapp platform
cbeast
Donator
Legendary
*
Offline Offline

Activity: 1736
Merit: 1014

Let's talk governance, lipstick, and pigs.


View Profile
September 10, 2012, 11:52:59 AM
 #11

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 Offline

Activity: 1022
Merit: 1033



View Profile
September 10, 2012, 12:32:18 PM
 #12

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.

Chromia: a better dapp platform
Mushroomized
Legendary
*
Offline Offline

Activity: 1470
Merit: 1002


Hello!


View Profile
September 10, 2012, 04:19:50 PM
 #13

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 Wink
I like the idea anyway, especially because you have just done it instead of bragging about it first. Smiley

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
Full Member
***
Offline Offline

Activity: 179
Merit: 100


View Profile
September 10, 2012, 09:28:05 PM
 #14

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 Smiley
Evolvex
Full Member
***
Offline Offline

Activity: 179
Merit: 100


View Profile
September 10, 2012, 09:36:22 PM
 #15

Not MOT, I meant MTG Smiley... cant find the edit button  Grin
killerstorm (OP)
Legendary
*
Offline Offline

Activity: 1022
Merit: 1033



View Profile
September 11, 2012, 11:26:44 AM
 #16

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_Property

Quote
Thus 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 Smiley ).

Chromia: a better dapp platform
Evolvex
Full Member
***
Offline Offline

Activity: 179
Merit: 100


View Profile
September 11, 2012, 01:04:30 PM
 #17

Cheers killerstorm - man I love bitcoins, the more I hear the more I like them Smiley

(where as my mrs on the other hand, the more she hears me on about them, the more she hates them lol)
jgarzik
Legendary
*
Offline Offline

Activity: 1596
Merit: 1099


View Profile
September 27, 2012, 06:51:35 PM
 #18

Great stuff.  Glad to see others working on this.

pybond will also be a colored coin implementation, with a subset of colored coins being distributed bonds.  Have a lot of networking boilerplate to write first; the basic design is simply following "rules for colored coins" and "atomic coin swapping" though.

P.S. My name for colored coins is "smartcoins."  Sexier, more marketing friendly name ;p

Other thread references:

Rules for colored coins - https://bitcointalk.org/index.php?topic=106449.msg1203918#msg1203918
Smart property - https://bitcointalk.org/index.php?topic=41550.0
Distributed bonds - https://bitcointalk.org/index.php?topic=92421.0
Atomic coin swapping - https://bitcointalk.org/index.php?topic=112007.0

On the wiki:

https://en.bitcoin.it/wiki/Smart_Property
https://en.bitcoin.it/wiki/Contracts


Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
Red Emerald
Hero Member
*****
Offline Offline

Activity: 742
Merit: 500



View Profile WWW
September 29, 2012, 01:43:52 AM
 #19

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 Offline

Activity: 1596
Merit: 1099


View Profile
September 29, 2012, 02:33:26 AM
 #20

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
Pages: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!