Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Matthews Lab
Search
Search
Appearance
Log in
Personal tools
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Kidney swaps
(section)
Page
Discussion
British English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
= The three possible paths for redemption = # The current owner uses his key and knowledge of x1 and x2 secrets to sign a refund to himself. # The future owner uses his key and knowledge of y1 and y2 to claim his coins. # X* + Y* are used. This would allow the secret-holder to claim all coins but we make this unprofitable by making him deposit collateral into the Ether contract worth more than the assets he can claim with both secrets. The reason we use this particular leverage in this contract is subtle but we do not know beforehand whether or not the secret-holder also holds the keys for multiple other people in the trade. If it were just 2 of N then the secret holder could use owner + future to claim the coins, theoretically violating the guarantees of this protocol. By using this particular leverage it means that a secret must ALWAYS be released to move coins. Therefore, there are only two states for this that make any sense: x* is released so the current owner gets a refund or y* is released and the future owner claims the coins. # '''Deposit phase:''' all parties make a deposit into a multi-sig based on who the future owner of the coins needs to be. If any secrets are released before the deposit phase + N minutes the collateral is realised as compensation. # '''Claiming phase:''' if all the parties went through with the deposits the secret-holder releases y* and grabs his coins. The secret is revealed on the Ethereum contract by a set time to start the clearing phase for the collateral holder. He gets his collateral back if he doesn’t reveal x* during this period and try to cheat – this gives the users chance to use the secret. # '''Refund phase:''' one or more of the parties didn’t go through with their deposit. The secret-holder releases the refund-secret. If the claiming secret is revealed during the refund phase he loses all his collateral. '''This protocol allows an Ethereum user to earn money from trade participants by providing a new service to help improve exchange across blockchains (and asset classes) by locking up his Ether into a modified settlement-delayed pay-for-private-key escrow contract.''' The beauty of this design is that only one party needs to hold collateral and they can provide this service to potentially hundreds of other users that form kidney-swapping chains between legacy assets. Potentially it may be possible to adapt this contract so that there is a fee phase prior to entering into the deposits. That way you can actually punish users who don’t go through with the deposit phase by taking their fees and the participants still wouldn’t have to hold collateral. But I leave that for future work. For now It is very interesting that Ethereum can be used as a switch board to connect traders on other blockchains without trust – and I honestly don’t believe I have seen this before. So anyone need a kidney?
Summary:
Please note that all contributions to Matthews Lab may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Matthews Lab:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)