Bitcoin Forum
December 15, 2017, 12:51:38 AM *
News: Latest stable version of Bitcoin Core: 0.15.1  [Torrent].
 
   Home   Help Search Donate Login Register  
Pages: « 1 [2]  All
  Print  
Author Topic: Decentralized BTC Exchange Client. impossible to implament?  (Read 3091 times)
damnek
Hero Member
*****
Offline Offline

Activity: 636



View Profile
November 22, 2011, 12:36:38 PM
 #21

I haven't read the full discussion, but I just wanted to post an idea I had a while ago.

An exchange could peg value of a different currency to the coins of a specific green address. This way, one can embed say USDcoins inside the standard blockchain. Those USDcoins can then be exchanged for real USDs by that exchange. For instance, one satoshi from this specific USDcoins green address could represent 1 USD.
1513299098
Hero Member
*
Offline Offline

Posts: 1513299098

View Profile Personal Message (Offline)

Ignore
1513299098
Reply with quote  #2

1513299098
Report to moderator
1513299098
Hero Member
*
Offline Offline

Posts: 1513299098

View Profile Personal Message (Offline)

Ignore
1513299098
Reply with quote  #2

1513299098
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218


Gerald Davis


View Profile
November 22, 2011, 01:42:08 PM
 #22

Currency tokens need to be sanctioned by the local government as historically this practice resulted from a severe shortage of money or the governments's inability to issue its own coinage. In effect the organization behind the tokens became the regional bank.

Instead of "token" I would use "voucher". A voucher is a bond which is worth a certain monetary value and which may be spent only for specific reasons or on specific goods i.e. purchasing bitcoins. For instance, a trusted 3rd party in Australia would get 100 fiat AUD and issue 100 AUD vouchercoins that can be traded only against bitcoins or redeemed back into 100 fiat AUD minus small fee. IMO, creating an alternative cryptocurrency block chain, say vouchercoin allowing all the world currencies in the chain, is the most robust approach to resolve bank dependencies once and for ever and for merchants to minimize exchange rate risks.

Yeah "voucher" is likely better word for legal reasons.  It would be a crypto-bearer bond.  Obviously it is only as good as the company that issues it however if say GreenDot (MoneyPaks), Dwolla, or even Mt. Gox issued crypto-bearer bonds which are a promise to redeem for fiat currency I think they would have some acceptance.

The nice thing is that people wouldn't need to use the issuer for redemption.  Say a voucher provider decides to only allow redemptions in $10,000 USD "blocks" to minimize processing costs.  Now you have $128 vouchers you are out of luck right?  No.  A third party (say me in this example) could offer a service selling prepaid credit cards.  You transfer me your $128 in USD vouchers and I send you the gift card.  When I get $10,000 worth of vouchers I can use the trusted 3rd party and redeem $10,000 worth of vouchers for a $10,000 wire transfer (and comply w/ all their identify check, AML regulations, and pay their fixed cost which is more manageable on $10K than $128).

Lots of ways to go about doing it I hope people don't get hung up on the implementations.  The larger more generic concept would be some sort of digital manifestation of fiat money that can be issued securely, transferred from party to party securely, and redeemed securely.  There will always be a need to trust the 3rd party entity which connects the meatspace to cryptospace however they would be the "edge" of the network and the rest of the network could be decentralized.

The nice thing is these "edge providers" could be large entities w/ insurance, have regulatory apporval, 3rd party auditing, AML compliance, etc.  You would only need to use these when making an "edge transaction" (USD voucher -> USD, Gold voucher -> gold coin, SPDR voucher -> SPDR share). Maybe it is an idea a decade ahead of its time but I am sure this is how the meatspace <-> crypto boundry issue will be solved.
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218


Gerald Davis


View Profile
November 22, 2011, 01:44:59 PM
 #23

I haven't read the full discussion, but I just wanted to post an idea I had a while ago.

An exchange could peg value of a different currency to the coins of a specific green address. This way, one can embed say USDcoins inside the standard blockchain. Those USDcoins can then be exchanged for real USDs by that exchange. For instance, one satoshi from this specific USDcoins green address could represent 1 USD.

One problem with that is there is no concept of a "Bitcoin" as a trackable entity.  If an account has 100 satoshi there is no 100 satoshis there is simply an address which has a value of 100.   You would need a "smart client" which ensures it never comingles the coins w/ real coins because if you did then the value would be lost.  You also would run into issues with transaction fees designed to prevent spam dealing w/ small amounts.
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218


Gerald Davis


View Profile
November 22, 2011, 01:58:25 PM
 #24

One chain for multiple currencies and multiple issuers would be nice. I think the easiest way to implement is to allow in that chain for any private key to issue IOUs. The issuer can use that same key to signs documents that credit him (and where he explains the fiat denomination and the conditions for redemption). The document can also be signed with "legal cryptography" such as that contained in some electronic NIFs (for example, Spain has it).

The problem here could be how to reward miners, because the IOUs issued are not fungible and the miner must trust the issuer of the currency paying the fee.

Miners could be paid in a standardized unit like Bitcoin (being the daddy crypto-currency) or some new token which is used to facilitate inter-unit transfers (say exchangeCoins or xCoins).

Thus to make a transfer which crosses blockchain/meatspace boundaries you would create the transaction on the xCoin blockchain and pay a fee (implemented in either in xCoins or Bitcoins would work).  The xCoin blockchain could be merge mined with Bitcoin to gain sufficient hashing power.  Using Bitcoins as the fee "currency" would be simpler IMHO as there would be no need to even have block rewards.  The exact details aren't that important at this point.  Still the general idea is this blockchain would facilitate trade between dissimilar networks/chains. 

Using an open protcol their is no limit to how many edge entities that could exist.

For example GreenDot could issue cryptographic vouchers for USD.  You could use the xChain to facilitate a trade of 30 BTC for a voucher worth 100 USD.  A bullion company could issue cryptographic vouchers for grams of gold.  You could use the xChain to faciliate a trade of 30 BTC for 1 gram of gold.

Once you have this voucher you would deal w/ the edge entity for redemption.  If you don't want to redeem it and are just using it to store value (for example take digital ownership of gold) you can keep the voucher and later trade it to another party never dealing with the edge entity.

Before someone asks yes trust in the edge entity is required.  Just like you need to trust Green Dot to not rip you off when they sell you a physical manifestation of USD (money pak) you would need to trust them to not rip you off when they sell you a cryptographic voucher for USD.  Eliminating the need for trust where the cryptospace connects w/ meatspace is impossible.  The goal of a distributed exchange is to take all the crypto p2p assets out of the hands of private exchanges AND provide secure P2P trade.  Exchanging vouchers for fiat/gold/stock/services will always require trust in the 3rd party.



becoin
Legendary
*
Offline Offline

Activity: 1806



View Profile
November 22, 2011, 02:32:03 PM
 #25

Obviously the USD "token" would only be as good as the exchange (maybe moneychanger is better term) that issued it.
Currency tokens need to be sanctioned by the local government as historically this practice resulted from a severe shortage of money or the governments's inability to issue its own coinage. In effect the organization behind the tokens became the regional bank.

Instead of "token" I would use "voucher". A voucher is a bond which is worth a certain monetary value and which may be spent only for specific reasons or on specific goods i.e. purchasing bitcoins. For instance, a trusted 3rd party in Australia would get 100 fiat AUD and issue 100 AUD vouchercoins that can be traded only against bitcoins or redeemed back into 100 fiat AUD minus small fee. IMO, creating an alternative cryptocurrency block chain, say vouchercoin allowing all the world currencies in the chain, is the most robust approach to resolve bank dependencies once and for ever and for merchants to minimize exchange rate risks.

Of course, those trusted 3rd parties need to be ultra solid anchors as they will become prime target for attacks from governments and bank lobbyists.

One chain for multiple currencies and multiple issuers would be nice. I think the easiest way to implement is to allow in that chain for any private key to issue IOUs. The issuer can use that same key to signs documents that credit him (and where he explains the fiat denomination and the conditions for redemption). The document can also be signed with "legal cryptography" such as that contained in some electronic NIFs (for example, Spain has it).

The problem here could be how to reward miners, because the IOUs issued are not fungible and the miner must trust the issuer of the currency paying the fee.

That chain could also have ripple. See my related proposal for a chain implementing ripple:
https://bitcointalk.org/index.php?topic=37505.0

To perpetually reward miners I include a coin with demurrage in the chain (freicoin), but maybe miners can accept the IOUs directly in this case.

The chain doesn't have to contain the denomination of each IOU, only an extra field in inputs and outputs of transaction with the "issuing address".
That can be optimized by not allowing an address to receive from more than one issuing address and not allowing addresses that have issued to receive any IOUs different than their own. This way the field is not necessary.
But I prefer to include the new field because it allows to trade IOUs of one kind for IOUs of another type within the same transaction (and this enables ripple, outside of the objectives here, but also useful). Without that field you cannot, for example, exchange mtgoxUSDcoins for IntersangoEURcoins atomically in a single transaction and you would need to use contracts like if the voucherCoins were in different chains.

Thanks for sharing your view. Can't tell anything right now, have to look into the details. Will do that after the Bitcoin Conference. BTW are you going to visit Prague this weekend?
EhVedadoOAnonimato
Hero Member
*****
Offline Offline

Activity: 616



View Profile
November 23, 2011, 11:38:03 AM
 #26

One chain for multiple currencies and multiple issuers would be nice.

This "one chain" already exists: the main bitcoin chain. You just have to "taint" satoshis, and follow them. For free you get all the infrastructure already available to deal with bitcoins, including the mining power.

EDIT: I did not intend to say that it is easy, though. A new protocol would have to be developed. This protocol would be used by issuers to specify what they're issuing, which are the satoshis that correspond to them, which satoshis have already been redeemed or "lost" (i.e., mixed with other coins and thus not traceable anymore). Even details like depreciation of value of backed coin (the issuer has to charge its fees!) or potential fractional reserves should be predicted by this protocol. And, obviously, we would need to write some software capable of connecting to different issuers, gathering their data, recognizing their different satoshis etc, in order to treat them accordingly.
I think the main advantage of using the same chain is that we gain for free everything that already exists for bitcoin, mainly the mining power, but also all software infrastructure (like the block explorer for example), the possibility of making atomic trades among different currencies, mixing any backed coin and bitcoin themselves in the same transaction scripts etc.
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218


Gerald Davis


View Profile
November 23, 2011, 01:51:52 PM
 #27

One chain for multiple currencies and multiple issuers would be nice.

This "one chain" already exists: the main bitcoin chain. You just have to "taint" satoshis, and follow them. For free you get all the infrastructure already available to deal with bitcoins, including the mining power.

EDIT: I did not intend to say that it is easy, though. A new protocol would have to be developed. This protocol would be used by issuers to specify what they're issuing, which are the satoshis that correspond to them, which satoshis have already been redeemed or "lost" (i.e., mixed with other coins and thus not traceable anymore). Even details like depreciation of value of backed coin (the issuer has to charge its fees!) or potential fractional reserves should be predicted by this protocol. And, obviously, we would need to write some software capable of connecting to different issuers, gathering their data, recognizing their different satoshis etc, in order to treat them accordingly.
I think the main advantage of using the same chain is that we gain for free everything that already exists for bitcoin, mainly the mining power, but also all software infrastructure (like the block explorer for example), the possibility of making atomic trades among different currencies, mixing any backed coin and bitcoin themselves in the same transaction scripts etc.

How would you handle intentional "tainting". 

You have 1 satoshi in address 123 which represents a share, or ounce of gold, or $1 USD, etc.  I make a transaction transferring 100 satoshis to address 123.

How does the network handle this "false data"?  Obviously you don't have 124 ounces of gold, 124 shares, or $124. 
If you then transfered 1 satoshi to person A and 1 satoshi to person B where is the share/gold/USD?  Person A, Person B, or still in address 123?
EhVedadoOAnonimato
Hero Member
*****
Offline Offline

Activity: 616



View Profile
November 23, 2011, 03:38:54 PM
 #28

You have 1 satoshi in address 123 which represents a share, or ounce of gold, or $1 USD, etc.  I make a transaction transferring 100 satoshis to address 123.

I was going to say that you destroy your satoshi by doing so, "donating" the amount to the issuer.
I just now realized you cannot prevent some jackass to go on destroying everybody backed coins, if that's so.

Good point, I hadn't thought it before.

Let's think... the address containing the tainted coins is now "polluted" with other, non-backed coins. While everything remains there, one can still guess how much backed coins are there, and how much normal ones. This address in under control of someone who's interested in not losing track of the backed coins.
We could assume as rule that the first transaction with the correct amount (one satoshi in your example) to leave address 123 is the one sending the tainted satoshi. Any subsequent transaction is just normal bitcoin. If you, in control of address 123, spend all coins in it without making a single transaction of the appropriate value (1 satoshi), then you just voluntarily destroyed your own backed coin.
Obviously, a software meant to deal this with this protocol should prevent you from destroying your backed coins.

Answering your last question, if we use the rule above, it should be Person A the new owner, since it was the first.

There's still a potential issue: you send 1 satoshi to two different address in two different transactions with the exact same timestamp, and both get confirmed on the same block. We can't know which is the first in this case. We could treat such case as identical to a single transaction with 2 satoshis being sent to different outputs, thus, not a "backed coin transaction" since it's not the correct amount. Again, software should prevent you from doing this accidentally.


This "following tainted coins" code/protocol could be useful in many different use cases, I think. A satoshi may reference pretty much anything, and be used in contracts. Like that smart property proposition. There are probably even more use cases for it that I just can't think of.
cbeast
Donator
Legendary
*
Offline Offline

Activity: 1736

Let's talk governance, lipstick, and pigs.


View Profile
April 03, 2013, 03:15:00 PM
 #29

Bump

Any significantly advanced cryptocurrency is indistinguishable from Ponzi Tulips.
jtimon
Legendary
*
Offline Offline

Activity: 1372


View Profile WWW
April 04, 2013, 09:07:30 AM
 #30

IT has rained since last time last time I proposed ripplecoin in this thread.
Now there's ripple.com, bitcoiners seem to be getting the concept and understand that is what they really wanted when asking for the "p2p exchange" holy grail.
Apart from ripple.com, which uses this nobel consensus mechanism, "ripplecoin" is still possible.
Colored coins are a subset of it that serve for this use case.
maaku and I are working on a design for freicoin (in which satoshis rot and cannot be "tainted").
We take the opportunity of the needed hard-fork to enable some additional use cases. Take a look (still pretty messy):

https://docs.google.com/document/d/1nnul3oDO5z8sspWBKgTKKSjQ7dWoOqU4Pd8DILLmFN8

feedback welcomed.

2 different forms of free-money: Freicoin (free of basic interest because it's perishable), Mutual credit (no interest because it's abundant)
Pages: « 1 [2]  All
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!