Pages:
Author

Topic: Sidechain Technical Feasibility Discussion (Read 13976 times)

full member
Activity: 157
Merit: 100
August 10, 2014, 12:45:06 AM
#60
Quick question: is there a white paper that describes in full detail how sidechains could be implemented?  Or perhaps a thread somewhere?  I've never actually seen a complete proposal.  

From Adam Back himself a few days ago
http://www.reddit.com/r/Bitcoin/comments/2ci1hm/bitcoin_development_sidechains_vs_treechains/cjgkdns
this is all that has been released:
http://sourceforge.net/p/bitcoin/mailman/message/32108143/
hero member
Activity: 672
Merit: 500
Quote
Quick question: is there a white paper that describes in full detail how sidechains could be implemented?  Or perhaps a thread somewhere?  I've never actually seen a complete proposal.

Right now distributed oracles seem the only possibility:

https://github.com/orisi/wiki/wiki/Orisi-White-Paper - a paper describing m of n oracles + a few words on how it can be used for sidechains
https://github.com/orisi/wiki/wiki/Mastering-Distributed-Oracles - a tutorial through the Orisi oracles
http://gavintech.blogspot.com/2014/06/bit-thereum.html - Gavin Andersen explaining why M of N oracles might probably be the best solution for sidechains

Distributed oracle sidechains have an obvious problem that you have to trust a selected number of entities to support the network. On the other hand they have two big benefits:

- they require no changes in bitcoin protocol
- it's possible to create a non-blockchain sidechain Wink e.g. you could create a ripple-based bitcoin sidechain, or you could create a sidechain that keeps it's data within a tomp2p database
Thank you very much for the links, time to read!
full member
Activity: 518
Merit: 101
Quote
Quick question: is there a white paper that describes in full detail how sidechains could be implemented?  Or perhaps a thread somewhere?  I've never actually seen a complete proposal.

Right now distributed oracles seem the only possibility:

https://github.com/orisi/wiki/wiki/Orisi-White-Paper - a paper describing m of n oracles + a few words on how it can be used for sidechains
https://github.com/orisi/wiki/wiki/Mastering-Distributed-Oracles - a tutorial through the Orisi oracles
http://gavintech.blogspot.com/2014/06/bit-thereum.html - Gavin Andersen explaining why M of N oracles might probably be the best solution for sidechains

Distributed oracle sidechains have an obvious problem that you have to trust a selected number of entities to support the network. On the other hand they have two big benefits:

- they require no changes in bitcoin protocol
- it's possible to create a non-blockchain sidechain Wink e.g. you could create a ripple-based bitcoin sidechain, or you could create a sidechain that keeps it's data within a tomp2p database
legendary
Activity: 1260
Merit: 1008
Quick question: is there a white paper that describes in full detail how sidechains could be implemented?  Or perhaps a thread somewhere?  I've never actually seen a complete proposal.  

No there's no publicly available whitepaper that I'm aware of.
legendary
Activity: 1162
Merit: 1007
Quick question: is there a white paper that describes in full detail how sidechains could be implemented?  Or perhaps a thread somewhere?  I've never actually seen a complete proposal.  
legendary
Activity: 1596
Merit: 1030
Sine secretum non libertas

There is a difference between "does not"  and "can not".  The current software implementation is described by the first.  The second describes the design space.  As no side-chain implementation exists, it would be odd to discuss a prospective implementation in the former terms.  If mining is done on a side-chain, then block times in expectation can trivially be any integer (R) fraction of the main chain block time in expectation.  AuxPOW blocks would be mined once in R blocks on the fast chain.
legendary
Activity: 1988
Merit: 1012
Beyond Imagination
legendary
Activity: 1596
Merit: 1030
Sine secretum non libertas
A side chain could only provide as many transaction per minute as the blockchain...

That's not true.
legendary
Activity: 1988
Merit: 1012
Beyond Imagination
For me it seems this is just another way to steal the bitcoin from the blockchain, like mastercoin did  Grin

And the blockchain will become the babysitter of all those side chains, constantly checking their heartbeat...

I think the improvement should be downward, e.g. modularization the core and make the protocol level code as simple and robust as possible. Don't you think the bitcoin protocol is already too complex? Raised level of complexity is always a danger

Scalability is the only valid reason side chain is supported. but as I understand, the limitation is on P2P network broadcasting speed. A side chain could only provide as many transaction per minute as the blockchain, so a scale of 10x will require 10 different new side chains, and
the exchange between all these chains will be troublesome, since you can't send some sidecoin1 to sidecoin2's wallet, you have to convert them back to bitcoin and convert again to be able to do a transaction



legendary
Activity: 1596
Merit: 1030
Sine secretum non libertas
Side-chains could be used to mitigate what I deem the biggest vulnerability of bitcoin:  Centralization of mining.  The approach is simplicity itself:  Move mining to a side-chain.  All coin issuance occurs on the side-chain.  The side-chain has a proportionately smaller block reward and higher block rate.  

Why is this desirable?  Mining is centralized primarily as a result of pooling.  Reducing the variance problem reduces the incentive to pool.  Joining smaller pools is then more acceptable to miners.  Since miners do not want bitcoin to be vulnerable to attack, they move to smaller pools.  

The only reason I can imagine why anyone would object to this change, all else being equal, is that they are planning to attack the network.  In practice there are some other possible objections and difficulties to overcome, but they seem relatively minor in comparison to the envisioned benefit.

I see this as a way to incrementally recover the decentralized mining feature present in the Satoshi model originally, but which is gradually being lost as a result of technological change.

legendary
Activity: 1162
Merit: 1007
spin-offs...a non-threatening and non-inflationary way.
What you propose is creating competing systems with their own redundant supply of coins. I am boggling that you call it non-threatening (what do you think people holding those coins will do as the ownership of them diverges from Bitcoin? Sit idly while their coins remain worthless because people are using Bitcoin instead of it? ... No, they're going to go out and tell people to accept their Foocoins instead and suggest that old bitcoins will soon be worthless) and non-inflationary.

I missed your reply Greg until just now.  I highly doubt spin-offs / alt-clones will thrive.  I see them as alt-coin neutralizers, sucking market cap away from non-innovative alt-coins, and then later dying in most cases.

Bitcoin is presently the most useful payment network and the blockchain is the most legitimate ledger.  Spin-offs are based on the premise that if a "better payment network were found," its technology would be spun-off using the blockchain ledger.  The blockchain version would become dominant since the economic majority in our community view it as the most legitimate.  People who hold long-term hope in the future of their Foocoins are labouring under the false assumption that it is the coin's feature set that gives it value.  At some point in the future, it will be generally understood that "money is memory" and bitcoin's value comes from our shared consensus that the blockchain is an accurate and legitimate record.  

Quote
It may be a useful thing to do, especially as a promotional method— for someone who already was convinced they wanted to create a new currency...  but it doesn't address the issues that the sidechain idea hopes to address, including giving people the freedom to choose to use new transaction processing systems as they see fit without the loss of network effect and adoption dillution that comes from having to choose to accept a whole different currency.

I agree that spin-offs do not address the issues that sidechains hope to address.  Spin-offs hope to neutralize the threat of alt-coins hijacking value from the blockchain (and wasting it in pump and dumps), whereas sidechains hope to move innovation to the blockchain.  

Side-chains are technically brilliant.  If there was a way to implement them without any changes to bitcoin they would have my support.  My concern is that the desire to facilitate experimentation of features with questionable utility may not outweigh the very real technical risk of implementing them and the potential loss of confidence that may result.  I will be able to make up my mind more definitively after I have studied the to-be-released side-chain white-paper.

Many people erroneously think the value of bitcoin comes primarily from its "features."  In my opinion, a large part of its value comes from the fact that it has been endlessly beaten-up since 2009 and remained resilient--bitcoin has in fact grown by leaps and bounds in spite the world's efforts to thwart it.

Bitcoin is powerful because it is simple and robust.  
staff
Activity: 4284
Merit: 8808
still, you have the problem of convertability. if Alice wants to move 1 BTC to 1 pegged XYZ, there has to be a counterparty moving from XYZ to BTC.
No. There does not.
legendary
Activity: 1246
Merit: 1010
ok, my last comment on the matter here. I think it should be recognized that, if one wants to discuss the future of financial systems, one needs an in depth understanding of economics.  people who are ignorant of a topic want to isolate the discussion by making Bitcoin all about cryptography/a technical matter, completely overlooking how social systems are designed.

this is the perfect example. using proofs or audits (outside the system) to move balances is not a good idea. movement of currency/capital requires considerations of liquidity and supply/demand. the pricing mechanism of a market allows speed of movement, by adjusting the rate at which balances (bid and ask) match. which is why we have financial markets (and a market economy for that matter). these systems exist for a reason: they perform certain measurement functions. a buyer of a car does not need complete information about the car, and the seller doesn't need to prove that the car has certain qualities. if we would have to prove completeness in all transactions our economy would not work. these kinds of things tie in together with information asymmetry, signaling, and a host of other issues studied in economics, which unfortunately standard economics gets mostly wrong. pegged fiat currencies exist and one can study the history of those to understand why they often quickly collapse (look at the histoiry of ERM for example). eventually such schemes evolve around partial central planning of some sort. "auditors" and fraud proofs would be central points of failure.

hand-waving about Open-Transactions is very unconvincing (ethereum does the same). as if you could somehow attach markets on top of blockchains. that will never work, because the blockchain design fundamentally is not a system which allows for such transfers. a market is a system where order of events is crucially important. the blockchain creates an order of events in blocks. that's the whole point, to create a partial order. this is the same reason why Mastercoin doesn't work, which should pretty obvious by now.

What we are proposing here is analogous to moving money between Bank of America (BOA) and JP Morgan Chase (JPM).  Technically you are correct, we really ought to say we have 10000 BOA_USD or 5000 JPM_USD and there should be a market to trade these.  But so long as more convenient mechanisms exist to transfer the money in and out of these institutions on a 1 for 1 basis people do not bother.  And look what happened to Mt. Gox.  As soon as it became very difficult to move USD into/out of Gox, a "market" (on these forums people made offers) sprung up which was valuing GoxUSD differently than USD.  And this happened spectacularly formally (with an explicit web-based exchange "btcbuilder.com") when both USD and BTC flows were shuttered.  [Personally I think that the history of that was an awesome display of the power of markets and if I was an social economics PHD I would be studying it]

So given 1-for-1 why would you prefer your USD to be in BOA vs JPM?  Maybe BOA has some essential feature that you need.  Maybe a better web banking interface.  Maybe a close relationship with a bank in timbuktu (where you do lots of business) so transfers happen instantly to there.  But I don't WANT all my USD converted into timbucks, or I'd just transfer to the tumbuktu bank.  Same thing with these side-chains.  It will be some piece of side-chain functionality that encourages people to move BTC into them.  I want the functionality without the sketchy currency -- its useful to have my money near timbuktu, but not useful enough to risk holding timbucks.


So all we are really doing here is dramatically reducing the friction to move BTC between "institution" chains, if you will.

Today banks only do wires (market free transfers) between trusted banks.  Will we have "trusted" chains?  No.  We will replace this trust with cryptographic proofs that at a minimum protects the BTC blockchain from shenanigans happening on the sidechain. 


full member
Activity: 140
Merit: 107
ok, my last comment on the matter here. I think it should be recognized that, if one wants to discuss the future of financial systems, one needs an in depth understanding of economics.  people who are ignorant of a topic want to isolate the discussion by making Bitcoin all about cryptography/a technical matter, completely overlooking how social systems are designed.

this is the perfect example. using proofs or audits (outside the system) to move balances is not a good idea. movement of currency/capital requires considerations of liquidity and supply/demand. the pricing mechanism of a market allows speed of movement, by adjusting the rate at which balances (bid and ask) match. which is why we have financial markets (and a market economy for that matter). these systems exist for a reason: they perform certain measurement functions. a buyer of a car does not need complete information about the car, and the seller doesn't need to prove that the car has certain qualities. if we would have to prove completeness in all transactions our economy would not work. these kinds of things tie in together with information asymmetry, signaling, and a host of other issues studied in economics, which unfortunately standard economics gets mostly wrong. pegged fiat currencies exist and one can study the history of those to understand why they often quickly collapse (look at the histoiry of ERM for example). eventually such schemes evolve around partial central planning of some sort. "auditors" and fraud proofs would be central points of failure.

hand-waving about Open-Transactions is very unconvincing (ethereum does the same). as if you could somehow attach markets on top of blockchains. that will never work, because the blockchain design fundamentally is not a system which allows for such transfers. a market is a system where order of events is crucially important. the blockchain creates an order of events in blocks. that's the whole point, to create a partial order. this is the same reason why Mastercoin doesn't work, which should pretty obvious by now.
legendary
Activity: 905
Merit: 1012
Yes we've looked at that and it is pretty straightforward to have either inflation and moving price or demurage and a finite supply. more complicated setups are also possible of course but need to be examined in more detail.
full member
Activity: 187
Merit: 162
The sidechain would not be allowed to create any bitcoin, so the current mining "subsidy" would not exist. 
Thats not strictly true. In that a side-chain could have a subsidy created by stashing coins in compulsory fees on coins crossing the boundary, or by not having a 1:1 value relationship with Bitcoin, or by issuing credits for future fees or other mechanisms.

I don't list these things to suggest that any of them or good or that I've considered them in depth— I'm just pointing out that there are more possibilities than you may have considered.

Has anyone else thought about this stuff in more depth? IMO finding a good way to implement a side-chain coin with a mining subsidy is a big deal, because in the long run there will be a lot of pressure for transactions to migrate to the platform with the lowest transaction fees, and it'd be nice if these transactions could move to a Bitcoin side-chain instead of another currency.

Here is some brainstorming:

Let's say you had some side-chain where the coin supply increased 2% per year. To avoid increasing the bitcoin supply, you might come up with a rule where if you move a bitcoin to the side-chain and then try to redeem the bitcoin at any point in the future you'd need to destroy an amount of sidecoins proportional to the amount of inflation there has been in the sidechain since you moved the bitcoin there. However it seems like it'd be super hard to guarantee that there could be no accidental bitcoin inflation due to consensus issues / timing issues/ chain-reorgs, etc. Perhaps bitcoin sidechains could be implemented to require a 1:1 value relationship with bitcoin, but then you could try this with another level of sidechains, so Bitcoin <--> Foocoin <--> Inflationcoin, where Bitcoin:Foocoin must have a 1:1 relationship, then the Foocoin:Inflationcoin interface could be more dangerous.

Re: fees for crossing the boundary. This main issue that comes to mind is that the amount of mining subsidy depends a lot on user behavior that's hard to predict ahead of time. Maybe people come up with methods to trade bitcoins for sidecoins without doing an official boundary-crossing.


legendary
Activity: 2968
Merit: 1198
still, you have the problem of convertability. if Alice wants to move 1 BTC to 1 pegged XYZ, there has to be a counterparty moving from XYZ to BTC.

The idea of this proposal is for the protocol serve as a permanent counterparty by accepting bitcoins into what is in effect a collateral account on the main chain and substituting what is in effect a tradable redemption receipt on the side chain, and then reversing this transaction later. This process is said to be slow so you may prefer to trade with someone already holding a receipt (your liquid bitcoins for their redemption receipt).

full member
Activity: 140
Merit: 107
This is addresses where Adam writes about firewalling (and in the IRC description of sidechains that adam linked; both of which you should read if you're posting here).  

still, you have the problem of convertability. if Alice wants to move 1 BTC to 1 pegged XYZ, there has to be a counterparty moving from XYZ to BTC. there has to be a ledger/matching mechanism which tracks it. and if Alice wants to move 1000 XYZ to BTC she might have to wait a very long time to convert. the way auction protocols handle this, there is an adjustment of price to balance the books. if you fix the ratio at 1:1 liquidity is going be so low, that nobody will ever care to move outside, because the risk is just too high. blockchains are very bad for handling such an event flow.
legendary
Activity: 2968
Merit: 1198
another issue this raises is what happens if it happens?  There are now fewer backing btc on the blockchain than on the sidechain.  like musical chairs the last one to spend back into btc blockchain loses.  this could trigger a run on the sidechain.

Side chains that want to avoid this had better be transparent and verifiable in some way. This takes nothing away from the idea of having a (relatively) low barrier to creating side-chains. If a particular side chain can't convey sufficient confidence, no one will use them.

Would you move your coins to a side chain knowing there were only a (say) 80% chance you could ever move them back? If not, then no coins ever move to the chain and it doesn't even matter whether the chain exists.

For this reason, I have some question as to whether the 1:1 side chain proposal can even work. There will always be some doubt as to the security of any side-chain, so it is irrational to ever move coins there at 1:1. But perhaps with a subsidy added by a third party, or a bond, this barrier can be overcome.
staff
Activity: 4284
Merit: 8808
if an Alt-Coin has a fatal bug, coins become worthless rather quickly. or say it is rumored that one chain has a fatal bug. now half of the coins rush out. who loses in this transaction?
This is addresses where Adam writes about firewalling (and in the IRC description of sidechains that adam linked; both of which you should read if you're posting here).   Take your casino example and imagine that the casino is hygienic— i.e. not intermingling their books, so that every chip they issue is backed. People bring the casino's teller dollars, the teller gives them chips with a promise to exchange back for dollars later. Now, say the casino's chips are insecure and easily cloned by the players.  The casino's teller is drained. Who loses out?  The people left holding the chips.  Other people using the USD are not /directly/ affected.

If instead there wasn't actually a fatal bug, just phobia about one, then no one loses at all— except perhaps people who overpaid some in transaction fees trying to hastily exit. Unlike an altcoin a sidechain-coin doesn't lose its value due to changes in sentiment, since you can go trade it back for Bitcoins regardless of what other people think about the side chain, unless the side chain is _actually_ insecure and the backing bitcoin is taken.
Pages:
Jump to: