Pages:
Author

Topic: ChromaWallet (colored coins): issue and trade private currencies/stocks/bonds/.. - page 22. (Read 96893 times)

legendary
Activity: 1372
Merit: 1002
I thought the miner was going to receive the fee colored. Anyway, someone else involved in the transaction can pay the fee with uncolored coins as you suggest.

The example of ripple transactions I mentioned in other thread were circular only when the trade involved bitcoins. There was also a non circular example of the typical example of Ripple transaction (A -> B -> C). Of course, uncolored coins for colored coins is the base use case and I think you're doing the right thing implementing it first.
legendary
Activity: 1022
Merit: 1015
If txn fee is paid with colored coins those colored coins are lost. It might make sense if value per satoshi is ~1 satoshi. I agree it isn't a very useful feature, that's why I haven't implemented it. Smiley

There is, however, a better way to pay the fee with colored coins, it is based on same mechanism as p2p exchange. Say, you have only GOLDcoins and what to send them to somebody. To pay a fee you need to find somebody who wants to buy GOLDcoins, then you send them a small amount of GOLDcoins and he sends a fee. All in same transaction.

Essentially it is a slightly more elaborate p2p exchange mechanism.

And while we are here, we can probably implement ripple-style circular exchanges through same p2p exchange mechanism, it just needs to be even more elaborate. Smiley

I'll start with simplest one, of course, but maybe I can make some room for more advanced features.

legendary
Activity: 1372
Merit: 1002
Thank you for working on this.

...
After a patch fees can be paid with uncolored coins only. Perhaps it makes sense to allow paying fees with colored ones too, but there is no option for it in GUI yet.
...

Mhmm. I don't think it makes much sense. Miners could get the colored fee and uncolor it without noticing.
Those fees may be more attractive for miners that consider colored coins, but I don't see much value in this feature. If it's to be done, it can wait for everything else.
legendary
Activity: 1022
Merit: 1015
Next goals:

  • ZC transaction support (yeah, it doesn't quite work now)
  • user interface adaptations for colored coins (e.g. displaying correct units)
  • standardization of color definition format, automatic download from bitcoinX server
  • p2p exchange
  • a tool for making color definitions

My general plan is to implement features first, deal with quirks either. I'll try to finish most of this stuff this week.
legendary
Activity: 1022
Merit: 1015
Updates:

  • fees paid with uncolored coins
  • auto-trade

Before this fees were paid with colored coins, which is a major problem for coins which are significantly more valuable than BTC/which are represented with few satoshis.
After a patch fees can be paid with uncolored coins only. Perhaps it makes sense to allow paying fees with colored ones too, but there is no option for it in GUI yet.

Second update is auto-trade script. Basically you can use it to sell colored coins automatically: whenever script detects uncolored coins being sent to your address, it will send back colored coins according to exchange rate you set up. It works like Satoshi Dice, colored coins are sent to address which sent uncolored coins.

(This script is just a proof-of-concept, not an end-user material.)

Both features definitely require more testing. Particularly "uncolored fee" turned out to be rather hairy.

It would be cool if somebody would do code review since testing this stuff is kinda hard. I'm actually willing to pay a bounty for somebody to proof-read my code.

Prerequisites are:
  • good understanding of Python
  • willingness to work with code you aren't familiar with
  • code review skills, i.e. finding bugs simply by reading code attentively

Familiarity of Armory code base is not required as I'm ready to explain whatever is needed to understand code.

Base bounty is 1 BTC. It can be considerably higher if you do a great job, say, rewrite it in such a way that it sucks less.

PM me for details.
newbie
Activity: 6
Merit: 0
Hello Dear friends, Trying to give everyone a little better understanding on the current stand of colored bitcoin and some playground to come up with your own concepts

go here:
https://docs.google.com/document/d/1pOaWe1fWdcUUKdyXz3rMWQneGLfTg89QaIBkS91nngE/edit

P.S. if you want an edit premissiom for this document please PM me
legendary
Activity: 1260
Merit: 1031
Rational Exuberance
I just found this thread, and I am so ridiculously excited. For years I have been telling everyone that this sort of additional structure built on top of bitcoins is going to be what makes bitcoin really take off.

KillerStorm: Please PLEASE take a look at the whitepaper I wrote on this topic a few months ago: https://sites.google.com/site/2ndbtcwpaper/2ndBitcoinWhitepaper.pdf

I'm not saying you should implement what I describe there, but in that paper I describe solutions to several of the problems you are facing, such as how to handle distributed buying and selling of colored coins without modifying the bitcoin protocol.

Thanks for doing this; you can bet I'll be watching closely now that I know someone is actually writing code for this. I would be coding it myself if I could find the time.
legendary
Activity: 1022
Merit: 1015
Electrum would still work, it uses the full blockchain, just connecting to it remotely correct? (that's why people run electrum servers?)

Yes, but I guess server needs to be extended too, because right now it offers very limited access to blockchain data.
legendary
Activity: 1470
Merit: 1002
Hello!
Having to download the full blockchain to verify your coloured coins will hinder its adoption.  Many people are now using thin-clients rather than full blown desktop PC's now.  Having an Electrum version or even a hack of blockchain.info/wallet would be good.

Will be more than happy to donate for someone to adapt Electrum client to colored bitcoin, it is a great addition .
Electrum would still work, it uses the full blockchain, just connecting to it remotely correct? (that's why people run electrum servers?)
newbie
Activity: 42
Merit: 0
Having to download the full blockchain to verify your coloured coins will hinder its adoption.  Many people are now using thin-clients rather than full blown desktop PC's now.  Having an Electrum version or even a hack of blockchain.info/wallet would be good.

Will be more than happy to donate for someone to adapt Electrum client to colored bitcoin, it is a great addition .
legendary
Activity: 1470
Merit: 1002
Hello!
One quick note, (Not sure if this has been thought of yet, or if I am missing the point on a larger scale)

For colored bitcoins...

Lets say I own the address 1DD6eE8d19j5gUJTzEPMvFsvDLsRaedhME , and make a bot so that every coin you send to it is bounced back to you. The coins are now referenced as once being a part of this address

Couldn't I just use the block chain to check if coins I owned have been passed through that address, making them "colored"? Of course you could simplify this with some work on the client to check...

Am I missing something :/
You are missing something.

It isn't being referenced by an address that makes something colored.  It's being referenced by a specific transaction.

In Bitcoin, you trace can trace a transaction all the way back to it's generation as block reward.  Colored bitcoins use this same principle, but rather than tracing the transaction to it's original block, they trace it back to its coloring transaction.

The fact that one of your addresses owns colored bitcoins has no effect on the color of coins you send unless you send the actual colored coins somewhere.

Your hypothetical bot would taint the coins (taint like on blockchain.info), but this is not the same as coloring.  Taint is tracking links between addresses and coloring is tracking the specific coins.

Thank you two for the explanation, I understand now
hero member
Activity: 742
Merit: 500
One quick note, (Not sure if this has been thought of yet, or if I am missing the point on a larger scale)

For colored bitcoins...

Lets say I own the address 1DD6eE8d19j5gUJTzEPMvFsvDLsRaedhME , and make a bot so that every coin you send to it is bounced back to you. The coins are now referenced as once being a part of this address

Couldn't I just use the block chain to check if coins I owned have been passed through that address, making them "colored"? Of course you could simplify this with some work on the client to check...

Am I missing something :/
You are missing something.

It isn't being referenced by an address that makes something colored.  It's being referenced by a specific transaction.

In Bitcoin, you trace can trace a transaction all the way back to it's generation as block reward.  Colored bitcoins use this same principle, but rather than tracing the transaction to it's original block, they trace it back to its coloring transaction.

The fact that one of your addresses owns colored bitcoins has no effect on the color of coins you send unless you send the actual colored coins somewhere.

Your hypothetical bot would taint the coins (taint like on blockchain.info), but this is not the same as coloring.  Taint is tracking links between addresses and coloring is tracking the specific coins.
legendary
Activity: 1022
Merit: 1015
I'm not sure what's the question here: yes, we use blockchain to check whether coins come from a certain "coloring" address or a genesis transaction, this is how it works.

But note that we likely need this "background check" for all coins which come to us, so this might be a performance problem.

Armory client does full blockchain scan at start to identify all colored coins, after that scan it is fast (O(1) w.r.t. blockchain size).

Other approaches are possible.
legendary
Activity: 1470
Merit: 1002
Hello!
One quick note, (Not sure if this has been thought of yet, or if I am missing the point on a larger scale)

For colored bitcoins...

Lets say I own the address 1DD6eE8d19j5gUJTzEPMvFsvDLsRaedhME , and make a bot so that every coin you send to it is bounced back to you. The coins are now referenced as once being a part of this address

Couldn't I just use the block chain to check if coins I owned have been passed through that address, making them "colored"? Of course you could simplify this with some work on the client to check...

Am I missing something :/
legendary
Activity: 1022
Merit: 1015
Would it be possible to have a Electrum version of this or does it need the full blockchain?

It is possible.

Actually some people are currently working on color-aware bitcoinJS server. It can give us something like color-aware block explorer (which would show colors for transaction outputs) and a thin client.

It is possible to make thin client without server-side coloring support, but it's impractical now.
donator
Activity: 994
Merit: 1000
Having to download the full blockchain to verify your coloured coins will hinder its adoption.  Many people are now using thin-clients rather than full blown desktop PC's now.  Having an Electrum version or even a hack of blockchain.info/wallet would be good.
At this stage the issue is not adoption but proof of concept. Once the approach is rock solid, the next issue can be convenience.
legendary
Activity: 1372
Merit: 1003
Having to download the full blockchain to verify your coloured coins will hinder its adoption.  Many people are now using thin-clients rather than full blown desktop PC's now.  Having an Electrum version or even a hack of blockchain.info/wallet would be good.
legendary
Activity: 1470
Merit: 1002
Hello!
Would it be possible to have a Electrum version of this or does it need the full blockchain?
I don't see why you would need the full blockchain. And besides, I'm pretty sure electrum uses the whole blockchain, but its just hosted on other servers you connect to.
legendary
Activity: 1372
Merit: 1003
Would it be possible to have a Electrum version of this or does it need the full blockchain?
legendary
Activity: 1022
Merit: 1015
I'm working on a basic specification. It is currently incomplete, but if you want a preview: https://github.com/killerstorm/colored-coin-tools/blob/master/colors.md

My plans:

  • implement missing features in Armory colored coin client
  • make a better color definition format
  • basic specification
  • exchange

All interested parties are welcome to join discussion. There is a mailing list now: http://groups.google.com/group/bitcoinx
Pages:
Jump to: