Bitcoin Forum
May 10, 2024, 02:13:03 AM *
News: Latest Bitcoin Core release: 27.0 [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 96894 times)
killerstorm (OP)
Legendary
*
Offline Offline

Activity: 1022
Merit: 1015



View Profile
April 13, 2013, 06:55:45 AM
 #201

i'm actually working on a solution for this now. there shouldn't be any issue with the buyers, but ANY sellers would in fact have to maintain some form of hot wallet in order to automate the process.

In p2ptrade protocol, there is no inherent difference between sellers and buyers. Alice announces her offer, Bob then sees her offer and proposes an exchange. Alice might offer with uncolored Bitcoins in exchange for USDcoins, or USDcoins in exchange for uncolored Bitcoins.

If Alice is a market maker of sorts, wanting to perform many trades per day, aiming to earn bid-ask spread, she needs coins in her wallet.

BUT it isn't same as an exchange keeping coins in their hot wallet.

One of major difference is that colored coins allow you to use Hollywood principle: "don't call us, we'll call you".

Basically, your trading machine can be behind a firewall. Or even two firewalls. Smiley

You only need to poll p2ptrade order book server from time to time. So you only need to secure HTTP client software and software which processes p2ptrade messages.

This is a very small surface for attack. If you're paranoid, you can implement handler for these protocols in a very defensive style, using programming languages which are regarded as secure (Ada, Haskell, ML...), maybe even use formal verification.

If you follow all security protocols... In order to penetrate through this, attacker will have to penetrate through your firewall(s), then penetrate through security of operating system which has no open ports... Well, good luck with that.

There is a second degree of defense... Let's say you're a market maker and you have 10000 USDcoins and 100 BTC. However, maximum order you're willing to process is 100 USD/1 BTC, and you keep only 1000 USD/10 BTC in your hot wallet.

When hot wallet is exhausted, you receive a notification. Then you can get a log from trading system, get it on flash drive to your secure, air-gaped computer. Analyze log and refill hot wallet as necessary. Then move refilling transactions to trading system...

So basically you keep majority of funds in your secure, air-gaped, encrypted system which might require all kinds of authorization (password, fingerprint scan).

Even if attacker will penetrate through first line defense (which is next to impossible if it is done properly), he only gets 10% of funds.



There is, however, an alternative to this: slow order processing. Market maker might announce his offers and log off. Then log on hour later and process these orders. Potentially, manually...

This requires some changes to protocol, and some reputation system. But it is definitely doable.

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

Posts: 1715307183

View Profile Personal Message (Offline)

Ignore
1715307183
Reply with quote  #2

1715307183
Report to moderator
1715307183
Hero Member
*
Offline Offline

Posts: 1715307183

View Profile Personal Message (Offline)

Ignore
1715307183
Reply with quote  #2

1715307183
Report to moderator
There are several different types of Bitcoin clients. The most secure are full nodes like Bitcoin Core, but full nodes are more resource-heavy, and they must do a lengthy initial syncing process. As a result, lightweight clients with somewhat less security are commonly used.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715307183
Hero Member
*
Offline Offline

Posts: 1715307183

View Profile Personal Message (Offline)

Ignore
1715307183
Reply with quote  #2

1715307183
Report to moderator
nyusternie
Full Member
***
Offline Offline

Activity: 211
Merit: 100


"Living the Kewl Life"


View Profile
April 13, 2013, 11:12:28 AM
 #202

There is, however, an alternative to this: slow order processing. Market maker might announce his offers and log off. Then log on hour later and process these orders. Potentially, manually...

This requires some changes to protocol, and some reputation system. But it is definitely doable.

i'm not so concerned about the market makers; they should be more than well equipped with the proper security to operate their automated trades. the bitcoin-savvy should also be fine. its the n00bs that i'm really trying to support. bitcoin is just too goddam hard to use for >90%.

i really believe a manual system could work fine, but not for the masses. when it comes to bitcoin (and the other alt-coins), good security + user-friendliness (seems to) = mission impossible. i've recently started looking into ripple (seems to offer a lot of options unavailable with bitcoin), but i've got to spend more time with it

a decentralized reputation system would be fantastic.
came across this a while ago. a step in the right direction
https://bitcointalk.org/index.php?topic=149385

1SDoTrAWQnbJ2ZHvLs3a2XxazqNSishn1
GPG A1638B57 | OTC nyusternie
dansmith
Full Member
***
Offline Offline

Activity: 202
Merit: 100


View Profile
April 14, 2013, 10:25:27 PM
 #203

I started a thread which aims to pool knowledge surrounding the legal side of being a colored-coin emitting business.

https://bitcointalk.org/index.php?topic=176575.0

I feel that issuing colored coins may be considered on par with issuing an in-game currency and may not be subject to strict financial regulations.

https://tlsnotary.org
Transferable webpage content notarization.
dansmith
Full Member
***
Offline Offline

Activity: 202
Merit: 100


View Profile
April 15, 2013, 03:59:50 PM
 #204

Today it dawned upon me those who use smartcoins are immune to the often-heard question "what is the internet gets shut down".
If it gets shut down, the owner of the smartcoin can prove to the smartcoin issuer that he is indeed an owner by providing his privatekey to the address which last held the smartcoins when the internet got shut down. This way he can redeem his  USDcoins or Goldcoins back to USD/gold.

Ain't that sweet?

https://tlsnotary.org
Transferable webpage content notarization.
dansmith
Full Member
***
Offline Offline

Activity: 202
Merit: 100


View Profile
April 18, 2013, 09:44:30 PM
 #205

I propose that we as developers create a library on top of bitcoind which would allow existing exchanges to integrate colored coins (CC).
I submit that it is the day traders who stand to gain the most from CC at this point in time. With CC, traders can jump on any CC-friendly exchange, without worrying about moving fiat between exchanges.

This library will have all the primitive functions needed to analyze the blockchain.
Actually the only two primitive functions I can think of is "determine if a certain output is colored or not" and maintain cache of transactions for a certain color to avoid re-scanning the whole blockchain.

I think that could be a good start.

Any other thoughts? What other primitive functions would an exchange need to easily integrate CC?

https://tlsnotary.org
Transferable webpage content notarization.
killerstorm (OP)
Legendary
*
Offline Offline

Activity: 1022
Merit: 1015



View Profile
April 19, 2013, 12:18:34 AM
 #206

Can't you just use ArmoryX for that? It can be run as a server, without GUI.

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

Activity: 202
Merit: 100


View Profile
April 23, 2013, 06:56:00 PM
 #207

Trying to understand ArmoryX code, I came across:
https://github.com/bitcoinx/BitcoinArmory/commit/791e3e0d88e15b7d48590f12da8324ebaa5c2854#L0R3677
with a comment:
 //transaction is invalid if sum(inputs) > sum(outputs)

I always thought sum(inputs) > sum(outputs) makes a perfectly valid transaction. What am I missing?

https://tlsnotary.org
Transferable webpage content notarization.
killerstorm (OP)
Legendary
*
Offline Offline

Activity: 1022
Merit: 1015



View Profile
April 23, 2013, 07:04:21 PM
 #208

Trying to understand ArmoryX code, I came across:
https://github.com/bitcoinx/BitcoinArmory/commit/791e3e0d88e15b7d48590f12da8324ebaa5c2854#L0R3677
with a comment:
 //transaction is invalid if sum(inputs) > sum(outputs)

I always thought sum(inputs) > sum(outputs) makes a perfectly valid transaction. What am I missing?

Sorry, that's just a typo. Comment should be: sum(inputs) < sum(outputs).

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

Activity: 202
Merit: 100


View Profile
April 25, 2013, 09:34:18 AM
 #209

killerstorm, the following sentence goes over my head, could you please paraphrase it, so that an uninitiated person like myself could understand:
(taken from https://github.com/killerstorm/colored-coin-tools/blob/master/colors.md )

Quote
Formal definition:

Preceding sum of input i is sum of values of all outputs from 0 below i.

The way I read it:
"Preceding sum of input i" - hmm, an input just has a value, what sum are we talking here about?

https://tlsnotary.org
Transferable webpage content notarization.
dansmith
Full Member
***
Offline Offline

Activity: 202
Merit: 100


View Profile
April 25, 2013, 09:49:08 AM
 #210

OK, so maybe

Preceding sum of input i is sum of values of all outputs from 0 below i.

should read:

Preceding sum of input i is sum of values of all INPUTS from 0 below i.

I understand that you were writing the spec in a hurry. Because you know what you were talking about. But for me it is a frustrating experience having to read a sentence many times over without it making sense.

https://tlsnotary.org
Transferable webpage content notarization.
dansmith
Full Member
***
Offline Offline

Activity: 202
Merit: 100


View Profile
April 26, 2013, 10:12:42 AM
 #211

I need some help understanding BitcoinX protocol:

Let's say in the future there will be 1000s of colored coins floating around. So a p2p exchange has to know all the 1000s colors and has to scan the blockchain for each color, is that correct?

Because (according to the spec) a transaction involving multiple colored coins has to have all its inputs sorted by color. And so, the colored coins-aware software has to know all colors in advance in order to parse such a multi-color transaction.

Is this observation correct or am I missing something?


https://tlsnotary.org
Transferable webpage content notarization.
dansmith
Full Member
***
Offline Offline

Activity: 202
Merit: 100


View Profile
April 26, 2013, 03:18:22 PM
 #212

Quoting myself:

Quote
Let's say in the future there will be 1000s of colored coins floating around. So a p2p exchange has to know all the 1000s colors and has to scan the blockchain for each color, is that correct?

Upon some consideration, the answer is:
No, you don't have to know every color in existence to trace a certain color through the blockchain. Which is great!

https://tlsnotary.org
Transferable webpage content notarization.
killerstorm (OP)
Legendary
*
Offline Offline

Activity: 1022
Merit: 1015



View Profile
April 26, 2013, 04:02:33 PM
 #213

I understand that you were writing the spec in a hurry. Because you know what you were talking about. But for me it is a frustrating experience having to read a sentence many times over without it making sense.

Yeah, sorry. I thought somebody will make a pull request...

Quote
Because (according to the spec) a transaction involving multiple colored coins has to have all its inputs sorted by color.

Where have you got it from? It is a recommendation, not a requirement.

Quote
Let's say in the future there will be 1000s of colored coins floating around. So a p2p exchange has to know all the 1000s colors and has to scan the blockchain for each color, is that correct?

No, you don't have to know every color in existence to trace a certain color through the blockchain. Which is great!

Yup, this was a design consideration. People are now working on a color server, by the way.

And we have a thin client which kinda works, but has problems with performance.

While we are at it, if all genesis tx outs are somehow marked in a blockchain, it is possible to make a very fast and simple server which knows about all colors in existence. It can easily scale to millions or even billions of colors without a problem.

Sadly, marking genesis tx outs seems to be too much of a requirement... So we'll probably end up with two server designs, "fast" and "slow".

Oh, BTW, as you're reading spects... There is an upcoming change to how multiple issues will work:

Each issue (i.e. a genesis tx out) is a separate color which does not mix with other colors, but an asset can consist of several colors.

This change eliminates a number of complexities. Basically it is much more straightforward and secure. It also enables us to create faster color-aware servers and clients and enables multi-issuer assets.

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

Activity: 202
Merit: 100


View Profile
April 26, 2013, 04:59:59 PM
 #214

killerstorm, it's good you are making headway.
I want to contribute some code as soon as I have all the fundamentals figured out.

The spec I mentioned is:
https://github.com/killerstorm/colored-coin-tools/blob/master/colors.md
which says:
Quote
All inputs and outputs should be sorted by color, with matching sort order. E.g. red inputs, blue inputs, uncolored inputs. Red outputs, blue outputs, uncolored outputs.

This lead me to believe there was a "sort order", like ascending sorting by color ID or something.
Now I realize there need not be any order, only that same colors should be adjacent (next to each other).

Quote
Each issue (i.e. a genesis tx out) is a separate color which does not mix with other colors, but an asset can consist of several colors.

So, as I understand it, you are saying that each genesis tx out  will be considered a separate color. By "does not mix with other colors" you mean that different colors of the same asset will not be lumped together?


https://tlsnotary.org
Transferable webpage content notarization.
killerstorm (OP)
Legendary
*
Offline Offline

Activity: 1022
Merit: 1015



View Profile
April 26, 2013, 06:14:22 PM
 #215

Quote
All inputs and outputs should be sorted by color, with matching sort order. E.g. red inputs, blue inputs, uncolored inputs. Red outputs, blue outputs, uncolored outputs.

This lead me to believe there was a "sort order", like ascending sorting by color ID or something.
Now I realize there need not be any order, only that same colors should be adjacent (next to each other).

This rule is basically a recommendation on how to create transaction, it serves for illustrative purpose, but it's now how you're supposed to identify colors.

When client tries to identify color of a transaction output, it should follow the scheme described in "Order-based coloring" section, which means:

1. Color of each output can be found independently, they do not affect each other in any way.
2. Software MUST NOT try to validate transaction's coloring in any way.

So, as I understand it, you are saying that each genesis tx out  will be considered a separate color. By "does not mix with other colors" you mean that different colors of the same asset will not be lumped together?

Yes.

Some transactions might get larger because of this, but I think it's more important to have a reliable, working system than to optimize encoding.

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

Activity: 126
Merit: 100



View Profile WWW
May 12, 2013, 09:10:55 PM
 #216


Isn't it possible to color any coin in the blockchain? Does it have to include the Genesis block only?



Bitcoins are earned, not traded! If you plan on hoarding BTC, you're on my target list. (And yes, it is possible to swim in BTC.)

Don't give me that Bull... I'm one of those honey eating Bears that the bees hope to never meet again... Viva la BTC!!!
killerstorm (OP)
Legendary
*
Offline Offline

Activity: 1022
Merit: 1015



View Profile
May 13, 2013, 07:04:46 AM
 #217

Isn't it possible to color any coin in the blockchain? Does it have to include the Genesis block only?

Yes, it is possible to color any coin. We talk about "color genesis", not about genesis block. It is just an analogy: just as a genesis block is a start of a blockchain, "genesis transaction output" is a start of a new color.

Chromia: a better dapp platform
really
Member
**
Offline Offline

Activity: 83
Merit: 10


View Profile
August 11, 2013, 05:10:55 AM
 #218

太牛逼了,向楼主致敬。

It's amazing!The salute to the landlord.

killerstorm (OP)
Legendary
*
Offline Offline

Activity: 1022
Merit: 1015



View Profile
August 11, 2013, 10:12:20 AM
 #219

By the way, people, this ArmoryX thing is outdated: basically, Bitcoin Armory just isn't a good platform.

We are working on "next-generation colored coin client" which will work without Armory. It will be available in about a month:

https://github.com/bitcoinx/colored-coin-tools/wiki/The-next-gen-colored-coin-client

Currently there is a very basic tech demo in Python: https://github.com/bitcoinx/ccoin-agent-py

Also we are working on WebcoinX web client: http://bitcoinx.github.io/webcoinx/

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

Activity: 633
Merit: 500


View Profile
September 10, 2013, 05:59:32 PM
 #220

Is the new client ready?   Grin
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!