Bitcoin Forum
April 20, 2024, 12:36:03 AM *
News: Latest Bitcoin Core release: 26.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: A generic protocol for cryptographic assets  (Read 4729 times)
jtimon (OP)
Legendary
*
Offline Offline

Activity: 1372
Merit: 1002


View Profile WWW
January 21, 2012, 09:06:00 PM
Last edit: March 15, 2012, 06:25:18 PM by jtimon
 #1

I've been thinking about ripple, bitcoin scripts, p2p stock and currency markets, etc. I want to propose a generic protocol so that it can be shared for all those systems. The communication mechanism is out of the protocol like in Open transactions.

Vocabulary

Asset: a message with an amount transferred from one public key (PuK) to another.

Transaction: a message that proves that one or more assets are moved.

Promise: an incomplete transaction. It needs more signatures (and often more content too) to become a valid transaction.

Script: a scripting language similar to bitcoin's. Not Turing-complete to avoid infinite loops on verifications.

----------
Roles

Minter: Its signature it's required for creating new assets. It's responsible for the "backing" of those assets.  

Accounter: A minter trust it for signing the movements of its issued assets. It's responsible for preventing double-spending. It's supposed to be always online. A minter can also act as its own accounter.

Timestamper: The actors of a transaction trust one of them or a minimum number of them from a list to provide atomicity to transactions in which several assets are moved. They're not mandatory but prevent DoS attacks. They are equivalent to registries in the decentralized ripple protocol draft.
  
Authenticator: Provides digital certificates and a legal base to the assets by linking a certain public key to a legal contract. Here must be specified if the asset is an IOU, a bond, a stock share, there's an interest rate, etc. They're not mandatory and the protocol can still be used informally.

Market: Receives and stores promises. It is queried by other actors and markets. Its nature is mostly public. For transitive transactions (like ripple's), it search for paths.

Client: The actual users trading the assets.

Proof of work chain: a bitcoin-like system. Acts simultaneously as a Minter, Accounter and timestamper for certain assets.
A chain where anyone can be a minter could be created too.

Examples of assets: currencies backed by fiat by, bonds and stock shares, rippleIOUs, access keys for smart property...

Use cases:

-Trade assets directly for bitcoins using the chain as timestamper. Examples:
-Trade assets instantly with a timestamp server.
-Decentralized Ripple
-Transitive transactions (I have nmc and you accept btc. I sell nmc for mtgoxUSD, mtgoxUSD for btc and I pay you all within the same transaction)
-Circular trades (like the above but I get another asset from you instead of a receipt).

EDIT: I have to rewrite the following design: it's flawed.
-----------
Messages (protocol buffers)

message BlockChain {
   required string nombre = 1;
   required bytes genesis_block_hash = 2;
   optional int32 checkpoint_block_number = 3;
   optional bytes checkpoint_block_hash = 4;
}

Identifies a proof of work chain like bitcoin or namecoin.

message Minter{
   optional PublicKey/hash? minter = 1;
   optional BlockChain block_chain = 1;
}

A minter can be either a block chain or a regular node.

message Asset{
   optional Minter minter = 1;
   optional PublicKey/hash? accounter = 2;
   required double amount = 3;
   optional PublicKey/hash? receiver = 4;
   optional PublicKey/hash? sender = 5;
}

For an asset to be valid, it also needs a proof containing at least the signatures of the the accounter and the sender.
If the accounter or the sender are not specified, the minter takes its duties and have to sign for them. Unless an asset says they will specified later (specifies a variable rather than an actual public key).
Not all the participants of the transaction know every asset, only the ones that are relevant to them.

message Script {
   repeated byte assets_hashes = 1;
   repeated string?bytes? commands = 2;
}

The whole Script message is what the OP_CHECKSIG in the script need to sign. The second field contains the actual commands of the script.

message Proof {
   required Script script = 1;
   repeated bytes signatures_hashes_secrets = 2;
}

The second field contains the signatures, hashes and secrets, etc. Whatever is needed for the script to return true.

message Transaction {
   repeated Proof proofs = 1;
}

To be valid, all the proofs must be valid. Timestampers don't need to read the assets, they just need to sign the Scripts.
The script language should have an OP_CHECKTIMESTAMP operation with two parameters, the signature and the expiry time.
Since proof of work chains can act as timestampers, a similar operation is needed for them. The expiries are expressed as block numbers and the chains must be identified. A hash of the genesis block or that and the hash of a given checkpoint block should be enough.
If a chain is designated as a timestamper, there must be an asset without minter affected by the timestamp and a transaction corresponding to that asset must appear in the chain.

------------
Use cases:

A) Trade assets directly for bitcoins using the chain as timestamper. Examples:

minter and accounter: mtgoxUSD
market: something of the the sort of Dark exchange or just a regular server

A puts a promise (incomplete transaction) that contains the following (10 btc for 60 mtgoxUSD):

asset1 = {minter = mtgoxUSD_PuK, amount = 60, sender = A1_PuK, receiver = $asset1.receiver}
asset2 = {minter = bitcoin, amount = 10, sender = $asset1.receiver, receiver = A2_PuK}

script1 = {
   assets_hashes = {hash(asset1), hash(asset2)},
   commands = {OP_CHECKSIG A1_PuK, OP_CHECKSIG $asset1.receiver, OP_CHECKSIG mtgoxUSD_PuK, OP_CHECKTIMESTAMP bitcoin 170000}
}

proof1 = {
   script = script1,
   signatures_hashes_secrets = {A_PuK1_signature}
}

transaction1 = {
   proofs = {proof1}
}

B sees the transaction in the market and wants the 60 mtgoxUSD

He fills $asset1.receiver = B1_PuK. Signs the transaction and sends is to mtgox to sign.
When he receives it back, he builds a bitcoin transaction with source = B1_PuK, destination = A2_PuK and broadcasts it.
When the transaction is confirmed in the bitcoin chain transaction1 becomes valid.

This example could also be applied to bonds, stock shares or other assets instead of mtgoxUSD.

----
B) Trade assets instantly with a timestamp server.

minters and accounters: mtgoxUSD, tradehillBTC
market: something of the the sort of Dark exchange or just a regular server

asset1 = {minter = mtgoxUSD_PuK, amount = 60, sender = A1_PuK, receiver = $asset1.receiver}
asset2 = {minter = tradehillBTC_PuK, amount = 10, sender = $asset1.receiver, receiver = A2_PuK}

script1 = {
   assets_hashes = {hash(asset1), hash(asset2)},
   commands = {OP_CHECKSIG A1_PuK, OP_CHECKSIG $asset1.receiver, OP_CHECKSIG mtgoxUSD_PuK, OP_CHECKSIG tradehillBTC_PuK,  OP_CHECKTIMESTAMP timestamper_PuK "22/01/2012 00:00:00"}
}

Both A and B must trust the timestamper. They can query the timestamper to see the state of the transaction.

----
C) Trades with not binding advertisements

In the two previous cases, A pre-signed the transaction and was binded to the promise, but the promise could lack its signature and be added later without the need of variables.
By the way, I'm not very confident about how variables are used here. Maybe they're not compatible with protocol buffers as I've used them in the previous examples.

----
D) Decentralized Ripple

With a chain as timestamper (paying a fee and with someone paying to himself) or a timestamp server.
Each ripple node is a minter.
accounters: ripplepay, villages...
markets: something of the the sort of Dark exchange (with the payer client also behaving as a market for searching the path), ripplepay, villages...

Consider the ripple transaction A -> B -> C -> D
Markets also calculate paths.
For example, A queries ripplepay_market "10 d's from A to D". The market looks in its database and answer with promises:

b's for a's at 1:1
c's for b's at 2:1
d's for c's at 1:4
so that 10 d's are 20 a's

There's no need to include the denomination, only the exchange rates are important.
Only the sender, receiver and accounter of each asset must know what it contains and the other participants can still see the hash of the asset and their signatures.
The payer of the ripple transaction, since he creates it, will know all assets involved in the transaction.
Binding promises (assets with variables) must be public for all participants in the transaction so that they can verify that the variables are being used properly.

E) Using secrets and bitcoin scripts to make contracts I haven't thought.

It seems a good idea to me, but maybe there's a fundamental flaw that I don't see. Any constructive criticism is welcomed.
What do you think?
What is missing or not needed?

2 different forms of free-money: Freicoin (free of basic interest because it's perishable), Mutual credit (no interest because it's abundant)
1713573363
Hero Member
*
Offline Offline

Posts: 1713573363

View Profile Personal Message (Offline)

Ignore
1713573363
Reply with quote  #2

1713573363
Report to moderator
The block chain is the main innovation of Bitcoin. It is the first distributed timestamping system.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1713573363
Hero Member
*
Offline Offline

Posts: 1713573363

View Profile Personal Message (Offline)

Ignore
1713573363
Reply with quote  #2

1713573363
Report to moderator
1713573363
Hero Member
*
Offline Offline

Posts: 1713573363

View Profile Personal Message (Offline)

Ignore
1713573363
Reply with quote  #2

1713573363
Report to moderator
1713573363
Hero Member
*
Offline Offline

Posts: 1713573363

View Profile Personal Message (Offline)

Ignore
1713573363
Reply with quote  #2

1713573363
Report to moderator
jtimon (OP)
Legendary
*
Offline Offline

Activity: 1372
Merit: 1002


View Profile WWW
January 21, 2012, 11:18:35 PM
Last edit: January 25, 2012, 09:00:51 AM by jtimon
 #2

If variables are allowed in the non blinded assets, there's no need for booleans.

2 different forms of free-money: Freicoin (free of basic interest because it's perishable), Mutual credit (no interest because it's abundant)
Mike Hearn
Legendary
*
expert
Offline Offline

Activity: 1526
Merit: 1128


View Profile
January 22, 2012, 11:12:33 PM
 #3

This work is very interesting. I think there's definitely potential in combining Ripple-like debt graph calculations with Bitcoin and atomic chain trades.

Generalizing this as you are doing is potentially also valuable, but I feel like the exact forms and protocols needed will become clearer after some of these applications are actually written.

Merging some of the ideas in Ripple with Bitcoin to create a distributed exchange feels like a good first goal. A transaction would set up pending trades between two parties that trust each other. The software builds and maintains the trade graph based on those transactions. After installing the app, you'd tell it who your friends are. Then you put in a trade, USD for BTC. The software tries to find a way to (partially) satisfy your trade through the nodes in the graph, and once it finds a solution executes a chain-traded transaction, so the trade graph chain is updated atomically with the Bitcoin chain. You would receive the BTC instantly and then owe some of your friends USD, they in turn may find they owe some of their friends USD, and so on.

You could try building such a system on top of your generic protocol, and get a feel for whether it genuinely simplifies things or just increases the complexity for no benefit.
jtimon (OP)
Legendary
*
Offline Offline

Activity: 1372
Merit: 1002


View Profile WWW
January 23, 2012, 11:58:41 AM
 #4

Thank you. Your comments give me hope.
Yes, I should write a prototype to see if the protocol needs more things and such.
But I wanted to post the draft here first in case someone tell me I was doing something terribly wrong or I wasn't considering something important.
I plan to add things in this order:

1) Implement regular trades and ripple trades (with multiple assets being moved)
2) Implement "binding promises"
3) Add support for bitcoin (and namecoin...)
4) Add support for blinded assets

Since I want to leave the communication layer of the scope, I'm not sure how should I implement the passing of messages. Maybe a dummy network interface.

2 different forms of free-money: Freicoin (free of basic interest because it's perishable), Mutual credit (no interest because it's abundant)
Steve
Hero Member
*****
Offline Offline

Activity: 868
Merit: 1007



View Profile WWW
January 23, 2012, 08:26:20 PM
 #5

I would suggest solving the p2p exchange problem first.  It's something that many people recognize is needed and if implemented well, will become an overnight sensation.  Many people might get lost in the detail (or not have time to study the detail) of an all encompassing proposal like this, but solve a real problem with it and you'll be successful.

I've felt and written many times that it would be fairly easy to take some existing exchange software, package it such that it's easy for anyone to download and install, then add the ripple like capabilities to it.  There would be two networks involved…one is a p2p communications network very similar to they way bitcoin propagates blocks and transactions.  The second would the the ripple network.  The ripple network forms by users installing this software and creating accounts for peers (or allowing open registration of accounts).  For each peer, you would set the maximum amount of debt allowed (default would be zero, but for some trusted peers you might allow them to run a negative balances).  A person could accept a deposit from a peer and credit their account.  All peers would have a balance at all times (positive or negative).

Then I'd take a very close look at BGP (border gateway protocol).  BGP was designed to solve the problem of decentralized routing on the internet.  By design, it doesn't require any node to have a complete view of all routing paths on the internet.  Each node maintains tables used to make routing decisions in it's localized portion of network (including metric that associate a cost with certain paths).  It strikes me that finding paths through a ripple network is the exact same problem.  The cost associated with a certain path would be the fees that a given node might charge for exchanges (similar to the metric that routing protocols assign to a path).  A path might also be reachable, but not be able to accommodate the full amount of credit that needs to be exchanged.

Orders would be announced and propagate through the p2p communications network.  A node that is originating an active, matching order would then proceed to try and find a ripple path back to the source of that order.  If successful, a trade is created and signed by the endpoints and all intermediate nodes.  To preserve privacy, the trade may optionally be encrypted such that only the nodes involved can decrypt it.  Once signing is complete, the bitcoins are delivered with the bitcoin transaction hash and order hash signed by the seller of the coins.  When the nodes see the signed delivery (and verify the correct amounts), they update their account balances.  Nodes can settle up with peers as they see fit (once a day, once a week, via paypal, ACH, wire, etc).  

Since an order and a trade are separate items, nothing prohibits an order from being a partial fill.  Orders can have an expiration on them and if someone doesn't honor an order, you can flag that node to avoid trades with it in the future.

The full order book can be established simply by listening to the p2p network, optionally tuning out orders from nodes you don't trust (or that have proven to be untrustworthy).  All nodes can optionally publish the trades they witness (optionally choosing to respect a request that it not be published).  Others can subscribe to order execution feeds of nodes they trust.  Dark orders are simply orders that don't get announced on the p2p network and that listen and try to execute on matching public orders when they appear.  Some nodes can allow dark orders to be placed directly with them and automatically matched with other dark orders on the same node.

Because at every step of the way, you are only dealing with trusted peers, many of the issues of creating two way, multi-block chain atomic transactions aren't really necessary.  I realized some time ago that even if you did that, you still have to trust the issuer of the coins you're trading for bitcoin…and if you have to trust the issuer, you're only going to want to accept coins issued by a limited number of people that you have some established relationship with…since there is trust involved either way, you really don't need the complexity of another block chain and atomic transactions between the two chains.

Super nodes will arise in this network (perhaps the existing exchanges will be super nodes) but the network overall will be very resilient against any one node going offline.  Many people already have a trust relationship with the existing exchanges (i.e. you extend mtgox a line of credit when you allow them to hold your dollars or coins).  This would be no different than installing p2p exchange software and extending mtgox a line of credit for whatever amount of dollars you're comfortable with (then actually sending them the dollars so that you can execute trades through them).

(gasteve on IRC) Does your website accept cash? https://bitpay.com
2112
Legendary
*
Offline Offline

Activity: 2128
Merit: 1065



View Profile
January 23, 2012, 08:54:51 PM
 #6

Then I'd take a very close look at BGP (border gateway protocol). [...]
It strikes me that finding paths through a ripple network is the exact same problem.
[...]
Not really. BGP deals with monotonically increasing cost of transit. Paths in Ripple may have costs that are negative (with regards to the starting node or ending node). The algorithms required for non-monotonically increasing costs are significantly more complex.

Please comment, critique, criticize or ridicule BIP 2112: https://bitcointalk.org/index.php?topic=54382.0
Long-term mining prognosis: https://bitcointalk.org/index.php?topic=91101.0
Steve
Hero Member
*****
Offline Offline

Activity: 868
Merit: 1007



View Profile WWW
January 23, 2012, 09:48:07 PM
 #7

Then I'd take a very close look at BGP (border gateway protocol). [...]
It strikes me that finding paths through a ripple network is the exact same problem.
[...]
Not really. BGP deals with monotonically increasing cost of transit. Paths in Ripple may have costs that are negative (with regards to the starting node or ending node). The algorithms required for non-monotonically increasing costs are significantly more complex.
Could you explain that a bit more?  I'm not sure how a particular hop in ripple could have a negative cost associated with it.  It could have zero cost, but how could it be negative?  People pay you to execute a trade through their node?  If the cost is the trade fee that they charge, each hop would either increase the cost or not, but how would it reduce cost?  In any case, I think we could borrow heavily from BGP when designing a decentralized ripple routing scheme.

(gasteve on IRC) Does your website accept cash? https://bitpay.com
2112
Legendary
*
Offline Offline

Activity: 2128
Merit: 1065



View Profile
January 23, 2012, 10:30:31 PM
 #8

Could you explain that a bit more?  I'm not sure how a particular hop in ripple could have a negative cost associated with it.  It could have zero cost, but how could it be negative?  People pay you to execute a trade through their node?
Exactly. Node owners would pay to execute transactions through their node to increase their credit standing. This is an equivalent to a negative additive cost.

The other option is to have a trade that involves currency exchange. This is an equivalent of a multiplicative cost less than 1.

If the cost is the trade fee that they charge, each hop would either increase the cost or not, but how would it reduce cost?  In any case, I think we could borrow heavily from BGP when designing a decentralized ripple routing scheme.
Borrowing from BGP is a certain way to produce bad software that will be easily exploited by any moderately competent trader.

There is one thing I absolutely hate about Ripple-pay: their hardcore anglophone financial schizophrenia. What they are doing is a computerized analogue to the circulation of vexels (German: Wechsel). The problem is that all English language countries are also rooted in the common-law legal system, which never developed a system for circulations of vexels. If you are capable to understand any other language than English you will also understand the concept of statutory-law and the concept of exchange of vexels.

Here is the link to the German Wikipedia page about vexels:

http://de.wikipedia.org/wiki/Wechsel_(Urkunde)

Do not just click over to English translation: promisory note is not an equivalent to a wechsel. To understand the difference you'll need to plod through the automated translation to English or switch to any other language from the country where the vexel-circulation is written into the law statues. At least check if the diagrams and pictures are similar to the ones on German Wikipedia.

I intentionally used the neologism "vexel" in the above reply because the Internet is full of incorrect information about Wechsels translated to English by lawyers unschooled in a non-anglophone legal tradition.

Please comment, critique, criticize or ridicule BIP 2112: https://bitcointalk.org/index.php?topic=54382.0
Long-term mining prognosis: https://bitcointalk.org/index.php?topic=91101.0
Steve
Hero Member
*****
Offline Offline

Activity: 868
Merit: 1007



View Profile WWW
January 23, 2012, 11:55:02 PM
 #9

Borrowing from BGP is a certain way to produce bad software that will be easily exploited by any moderately competent trader.
I'm not suggesting the BGP code be used directly…just that it's a system designed for decentralized routing that one could learn from (perhaps learning what not to do).  As for exploits by traders, I think you're imagining attacks against a system that doesn't even exist yet.

Quote
There is one thing I absolutely hate about Ripple-pay: their hardcore anglophone financial schizophrenia. What they are doing is a computerized analogue to the circulation of vexels (German: Wechsel). The problem is that all English language countries are also rooted in the common-law legal system, which never developed a system for circulations of vexels. If you are capable to understand any other language than English you will also understand the concept of statutory-law and the concept of exchange of vexels.
...
I'm not quite following you here.  Note that ripple isn't about circulating anything…you're never selling or trading any debt on any kind of market.  There are only ever bi-lateral debt obligations created in ripple.  They aren't like bonds that you would trade on a market.  And ripple like debts created in a p2p bitcoin exchange system would be designed to be settled in very short time timeframes (daily, weekly, etc).  Ripple is a great way to describe it because value "ripples through" many bilateral credit agreements in order to find a trusted path through that network that ultimately facilitates a trade between two parties that don't have a direct trust relationship.

PS.  It's worth noting the existing exchanges already work like this…two people that don't trust each other can execute a trade on mtgox…but they both have to trust mtgox.  Each person allows mtgox to run a negative balance…one person deposits ฿100 with mtgox and another deposits $600.  Mtgox owes one of those people ฿100 and the other $600 (and reflects that in their account balance).  The trade happens and each withdraws their balance from mtgox, which is settles the debt.  There are 2 bilateral credit arrangements.  A p2p exchange would simply add the ability to do the same thing over multiple hops.

(gasteve on IRC) Does your website accept cash? https://bitpay.com
2112
Legendary
*
Offline Offline

Activity: 2128
Merit: 1065



View Profile
January 24, 2012, 03:11:42 AM
 #10

Oh well, I tried.

As for exploits by traders, I think you're imagining attacks against a system that doesn't even exist yet.
The system you describe does exist and the difference is that instead of exchanging cryptographic certificates people exchange little paper forms with hand-signatures and stamps (pictures are on the German Wikipedia page I linked.)

The attacks are not "against the system", but "against the users who don't want to learn how the system works."

The little stamps are there to finance the collections: if somebody tries to repudiate the vexel, the stamps are proof that the owner paid the taxes and is entitled to the help of marshals in the attachment of furniture or other valuables.

What I find most interesting about all the discussions I had about RipplePay and Wechsels is that pretty much only the mono-lingual English speakers cannot comprehend the equivalence between the two concepts. On the other hand, if I discuss the two concepts in English and the interlocutor immediately grasps them, it turns out that his/her mother tongue is either Hebrew or Yiddish.

Anyway, this is an international forum and as most of the forums it has at least 10 lurkers for each poster. Anyone who is reading this can learn the underlying concepts on their own, I have nothing to sell.

On the Speculation forum Zhoutong is giving lessons for people who don't bother to understand the difference between a bucket shop and an exchange. His customary charge for that lesson is "all of your deposit (USD & BTC)".

I guess sometime in the future somebody else will be giving lessons to the people who don't bother learning to understand the concept of "negative discount". And his charges for the lesson will be "all the money you've got".

Please comment, critique, criticize or ridicule BIP 2112: https://bitcointalk.org/index.php?topic=54382.0
Long-term mining prognosis: https://bitcointalk.org/index.php?topic=91101.0
Steve
Hero Member
*****
Offline Offline

Activity: 868
Merit: 1007



View Profile WWW
January 24, 2012, 03:49:29 AM
 #11

Oh well, I tried.
Not really…you just pointed to some websites and made a claim that it proves ripple is bunk without any actual explanation.

Quote
The system you describe does exist and the difference is that instead of exchanging cryptographic certificates people exchange little paper forms with hand-signatures and stamps (pictures are on the German Wikipedia page I linked.)

The attacks are not "against the system", but "against the users who don't want to learn how the system works."

The little stamps are there to finance the collections: if somebody tries to repudiate the vexel, the stamps are proof that the owner paid the taxes and is entitled to the help of marshals in the attachment of furniture or other valuables.
It sounds like a vexel is a bond that can be traded and whose repayment is backed by government force.  You don't trade debt with ripple (I suppose you could, but it's beyond the scope of ripple).  If you don't understand that, then you don't understand Ripple.  I'm not sure why you think ripple and vexel's are the same thing.  You haven't even attempted to explain it.  You just make some assertions that it's beyond the capacity of a native english speaker to comprehend.  I think english is expressive enough that it should be possible to explain such a thing.

Quote
On the Speculation forum Zhoutong is giving lessons for people who don't bother to understand the difference between a bucket shop and an exchange. His customary charge for that lesson is "all of your deposit (USD & BTC)".
A bucket shop isn't necessarily a scam.  It just a derivative betting service on some underlying asset.  Intrade.com is a bucket shop.  It does happen to be illegal in a lot of places (but that probably has more to do with the fact that it is betting and it takes business away from the actual exchanges…wall street probably didn't like the competition).  I won't speculate on whether Bitcoinica is a scam or not…I do know that he needs competitors…he's making way too much money with the spreads he charges.  Other people could probably make a nice living if they cut into his business a little.

(gasteve on IRC) Does your website accept cash? https://bitpay.com
2112
Legendary
*
Offline Offline

Activity: 2128
Merit: 1065



View Profile
January 24, 2012, 05:30:29 AM
 #12

I'm doing a full quote from Steve just to keep the proof that he cannot read with comprehension.

I never called Ripple "bunk" and I never called Bitcoinica "scam". Pretty much everything you wrote about me is a simple lie, rooted in your compulsion to read between the lines and obsessive search for strawmen to refute:

A bucket shop isn't necessarily a scam.

Bitcoinica is a blend of a pure "bucket shop" with partially hedged own-account speculation by the owner. No matter what it is, it isn't an exchange. Since I never called Bitcoinica "scam" this is a classic strawman.

Ripple is a high speed computer network and cryptographic implementation of the old, well known concept of Wechsel. There is a big problem in explaining this in English because the concept of Wechsel is only known and used in countries with statutory law system, but English-speaking countries have common law system.

The concept of Ripple is to the large extent isomorphic to concept of Wechsel, most of the differences are in the implementation. In particular they both have similar benefits and drawbacks. The most commonly exploited drawback of the vexels will be the most commonly exploited drawbacks of Ripple.

There are thick books written about the vexels and their circulation. Too bad that those books aren't in English. As they say "you can lead a horse to water, but you can't make it drink". The same thing happened here: "you can give Steve links to the documentation, but you can't make him read".

You haven't even attempted to explain it.  You just make some assertions that it's beyond the capacity of a native english speaker to comprehend.  I think english is expressive enough that it should be possible to explain such a thing.
Not all "native English speakers" have problem understanding vexels. Only the subset of them: those who refuse to learn any other human language and assume that if it isn't in English then it isn't worth trying to understand.

I want to thank everyone for the patience. I hope that those of you who can read at least one other language will find intellectual stimulation in the link I gave.

Oh well, I tried.
Not really…you just pointed to some websites and made a claim that it proves ripple is bunk without any actual explanation.

Quote
The system you describe does exist and the difference is that instead of exchanging cryptographic certificates people exchange little paper forms with hand-signatures and stamps (pictures are on the German Wikipedia page I linked.)

The attacks are not "against the system", but "against the users who don't want to learn how the system works."

The little stamps are there to finance the collections: if somebody tries to repudiate the vexel, the stamps are proof that the owner paid the taxes and is entitled to the help of marshals in the attachment of furniture or other valuables.
It sounds like a vexel is a bond that can be traded and whose repayment is backed by government force.  You don't trade debt with ripple (I suppose you could, but it's beyond the scope of ripple).  If you don't understand that, then you don't understand Ripple.  I'm not sure why you think ripple and vexel's are the same thing.  You haven't even attempted to explain it.  You just make some assertions that it's beyond the capacity of a native english speaker to comprehend.  I think english is expressive enough that it should be possible to explain such a thing.

Quote
On the Speculation forum Zhoutong is giving lessons for people who don't bother to understand the difference between a bucket shop and an exchange. His customary charge for that lesson is "all of your deposit (USD & BTC)".
A bucket shop isn't necessarily a scam.  It just a derivative betting service on some underlying asset.  Intrade.com is a bucket shop.  It does happen to be illegal in a lot of places (but that probably has more to do with the fact that it is betting and it takes business away from the actual exchanges…wall street probably didn't like the competition).  I won't speculate on whether Bitcoinica is a scam or not…I do know that he needs competitors…he's making way too much money with the spreads he charges.  Other people could probably make a nice living if they cut into his business a little.

Please comment, critique, criticize or ridicule BIP 2112: https://bitcointalk.org/index.php?topic=54382.0
Long-term mining prognosis: https://bitcointalk.org/index.php?topic=91101.0
Steve
Hero Member
*****
Offline Offline

Activity: 868
Merit: 1007



View Profile WWW
January 24, 2012, 06:18:02 AM
 #13

I never called Ripple "bunk" and I never called Bitcoinica "scam". Pretty much everything you wrote about me is a simple lie, rooted in your compulsion to read between the lines and obsessive search for strawmen to refute:
I'll admit that I may have read too much into your post.  It just seemed like you were suggesting Bitcoinica is a scam operation and that ripple isn't an idea worth exploring.  Note: I'm not endorsing Bitcoinica, it could be a scam for all I know.  I have played with it and I do know that the spreads he charges are huge.  I don't think he actually needs to scam anyone…he's making huge money off those spreads and that should be completely obvious to anyone trading on his system.
Quote
Ripple is a high speed computer network and cryptographic implementation of the old, well known concept of Wechsel.
Ok…so right here I disagree.  From what you've been describing of Wechsel, it's not comparable to Ripple.  You can convince me otherwise, but nothing I've found on Wechsel on the web has done so.  If anything, it's convinced me that Wechsel is more like a bond market for the common man.  This is not at all what ripple is.  Again, if you don't see the difference, then I claim you really don't understand ripple.
Quote
There is a big problem in explaining this in English because the concept of Wechsel is only known and used in countries with statutory law system, but English-speaking countries have common law system.
I understand law.  I know what statutory, common and regulatory law means.  I understand how the legal enforcement of a trading system like Wechsel might be differently impacted by statutory and common law.  What I fail to understand is how it's relevant.  Ripple makes an assumption that there is little or no legal enforcement of the debt obligations created between trusted parties.  This is why they are called trust relationships.  You trust them to fulfill their obligation regardless of what any legal system might have to say about the matter (whether statutory or common law).  I do business with mtgox despite the fact that I realize I would have little recourse if they simply vanished with my money.  Why?  Because I trust them (with a little bit of money anyway).
Quote
The concept of Ripple is to the large extent isomorphic to concept of Wechsel, most of the differences are in the implementation. In particular they both have similar benefits and drawbacks. The most commonly exploited drawback of the vexels will be the most commonly exploited drawbacks of Ripple.
Please elaborate on the benefits and drawbacks.  I am genuinely interested to hear these benefits and drawbacks that you believe are common to Ripple and Wechsel's.  I am not discounting the possibility that Wechsel's and Ripple are very similar, it's just that from what I've read, I don't yet see the similarities.  I much prefer discussing specifics and technicals than broad generalities.
Quote
There are thick books written about the vexels and their circulation. Too bad that those books aren't in English. As they say "you can lead a horse to water, but you can't make it drink". The same thing happened here: "you can give Steve links to the documentation, but you can't make him read".
Great.  I read what I could.  I'm not convinced the parallels are as strong as you believe.  I can assure you I'm very familiar with a lot of forms of debt and investment.  As I said before, Wechsel's seem like a bond and trading system for the common man (most people in the US aren't very literate when it comes to bond investing and typically only invest in bonds indirectly, if at all…hence, bond investing isn't something you can assume everyone has the literacy to discuss).

(gasteve on IRC) Does your website accept cash? https://bitpay.com
jtimon (OP)
Legendary
*
Offline Offline

Activity: 1372
Merit: 1002


View Profile WWW
January 24, 2012, 08:14:54 PM
 #14

@2112
I didn't get anywhere with the link you posted for Wechsel. Can you make a summary of what it is?

I'm not quite following you here.  Note that ripple isn't about circulating anything…you're never selling or trading any debt on any kind of market.  There are only ever bi-lateral debt obligations created in ripple.  They aren't like bonds that you would trade on a market.

Actually my approach to ripple is to allow every node to issue their own currency and trade them for their ripple neighbor's currencies.
 
I don't know much about BGP, but I want to completely decouple the communication network from the credit network. In fact different communication protocols could be used (TLS, Tor, whatever).

The "markets" defined here will run the searching algorithms using the offers (or promises) they have receive from users and other markets. You could have your own market on your pc, but maybe your cell phone just can't do it and you need to outsource it to a market server.

Although the roles are very separated, I think they would be combined very often.

2 different forms of free-money: Freicoin (free of basic interest because it's perishable), Mutual credit (no interest because it's abundant)
Steve
Hero Member
*****
Offline Offline

Activity: 868
Merit: 1007



View Profile WWW
January 24, 2012, 09:00:41 PM
 #15

Actually my approach to ripple is to allow every node to issue their own currency and trade them for their ripple neighbor's currencies.
I like the idea of everyone issuing their own currency that works much like bitcoin (with the exception that the issuer determines the official chain of transactions instead of the mining network).  However, I don't think that's necessary to get a first version of a p2p exchange system up and running.  And a p2p exchange system is something I think is urgently needed.

Quote
I don't know much about BGP, but I want to completely decouple the communication network from the credit network. In fact different communication protocols could be used (TLS, Tor, whatever).
Yes, the p2p communications network and credit network are separate things.  BGP was designed to decentralize routing on the internet.  I thought it might be a good thing to look at when figuring out how to do routing through the credit network (and do it in a decentralized manner).

I can't wait until we have a p2p exchange system.  I'm very intrigued to see how it evolves.  I suspect as adoption of bitcoin grows, people will simply stop bothering to settle up fiat debt, but instead use debts that are owed to them to buy bitcoin (which they then spend on various goods and services).  People might also just choose to leave debts outstanding (it's not really so different from having a bank account balance…which is also debt…it's just that your balance is with a trusted colleague, friend or relative instead of with a company).

(gasteve on IRC) Does your website accept cash? https://bitpay.com
markm
Legendary
*
Offline Offline

Activity: 2940
Merit: 1090



View Profile WWW
January 24, 2012, 09:51:51 PM
 #16

What *exactly* is it in "common law" that makes vexels incomprehensible, or in "statutory law" that causes them to become comprehensible?

Can you perhaps invent a statute that, if it here made law, would redenr vexels comprensible?

I fidn it hard to even imagine a law making something comprehensible, I thought most people's experience is that even the most comprehensible of things often become incomprehensible when described in "legal language".

I don't like RIpple as it was when last I studied it, as it just seemed like something I'd be crazy to actually use, as if it were designed from the ground up as a fishing-hole for people who create an identity, join the network, exhaust andy and all credit they can get and all their neighbor's credits too, and change identity to do it again.

-MarkM-

Browser-launched Crossfire client now online (select CrossCiv server for Galactic  Milieu)
Free website hosting with PHP, MySQL etc: http://hosting.knotwork.com/
jtimon (OP)
Legendary
*
Offline Offline

Activity: 1372
Merit: 1002


View Profile WWW
January 24, 2012, 10:27:19 PM
 #17

I don't like RIpple as it was when last I studied it, as it just seemed like something I'd be crazy to actually use, as if it were designed from the ground up as a fishing-hole for people who create an identity, join the network, exhaust andy and all credit they can get and all their neighbor's credits too, and change identity to do it again.

Ok, what about exchanging assets atomically (thanks to a blind signer who just acts as a timestamper) without transitive payments (like ripple)?
It's just a capability of the system, but it's not mandatory to use it.
Can you trade OTusd for OTbtc atomically without making any deposit? And OTusd for btc?
Can offers in from separate OT servers be executed together?

If so, there's no need for the system I'm describing.

Also, what's wrong with transitive transactions?
A has mtgoxUSD and wants tradehillUSD. B offers BTC for mtgoxUSD. You have tradehillUSD and want BTC.
Isn't it great to be able to sell tradehillUSD for mtgoxUSD and those same mtgoxUSD for BTC atomically?
Or tradehillUSD for mtgoxUSD and those same mtgoxUSD for mtgoxBTC atomically and instantly?

2 different forms of free-money: Freicoin (free of basic interest because it's perishable), Mutual credit (no interest because it's abundant)
Steve
Hero Member
*****
Offline Offline

Activity: 868
Merit: 1007



View Profile WWW
January 24, 2012, 10:27:51 PM
 #18

I don't like RIpple as it was when last I studied it, as it just seemed like something I'd be crazy to actually use, as if it were designed from the ground up as a fishing-hole for people who create an identity, join the network, exhaust andy and all credit they can get and all their neighbor's credits too, and change identity to do it again.
Yeah, except Andy's neighbor isn't going to forget that Andy owes him money and he knows where Andy lives.

I don't think Ripple alone makes a lot of sense as a money system.  But the way it routes debt would be a great complement for bitcoin exchange (note: the intention of having and routing debt is just as a very short term way of recording and then settling the fiat side of a bitcoin trade).  When you deposit money with mtgox, you are trusting that they don't just run away with it.  Just like your example, mtgox could take as many deposits as they can and then just disappear and later setup a new site, mtgoxxed.com.

There are real world systems that work exactly like this, have been in place for centuries, and work extremely well.  Hawala is one such example.

(gasteve on IRC) Does your website accept cash? https://bitpay.com
jtimon (OP)
Legendary
*
Offline Offline

Activity: 1372
Merit: 1002


View Profile WWW
January 25, 2012, 07:58:17 AM
 #19

I like the idea of everyone issuing their own currency that works much like bitcoin (with the exception that the issuer determines the official chain of transactions instead of the mining network).  However, I don't think that's necessary to get a first version of a p2p exchange system up and running.  And a p2p exchange system is something I think is urgently needed.

My point is representing debt like that. "B owns 10 aUSD" is equivalent to "A owes 10 USD to B".
Others may disagree, but I think this is simpler. There's no credit lines, only assets and offers. The clients put the limits on the "credit lines" by not accepting more than a certain quantity of the currency issued by certain friend.

2 different forms of free-money: Freicoin (free of basic interest because it's perishable), Mutual credit (no interest because it's abundant)
jtimon (OP)
Legendary
*
Offline Offline

Activity: 1372
Merit: 1002


View Profile WWW
January 25, 2012, 09:03:24 AM
 #20

There's no need to blind assets. They just don't need to be in the transaction message, only their hashes in the Script messages.
The actors involved in each asset share them to sign them but the rest of the participants involved in the transactions don't read them.
I've edited the first post to reflect this.

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:  

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