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
Pay for private keys
(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!
= Atomic storage contracts = Pay for private key contracts can be used as the basis for a large number of contracts. In fact, some of the original discussion around these concepts took place in the context of the Lightning Network where people were discussing how to get someone to release a private key. You can also use this contract for gambling and for Peter Todd’s dark release scheme, but my original motivation for trying to get this to work was to implement my idea for atomic storage contracts. … Now image that you want to pay someone to store content on their hard drive. Traditionally, you could pay them after they store the content but you could easily scam them afterwards by not sending payment. The other solution is for you to send the money first but now the host can scam you. '''What I wanted to design was a contract that could atomically bind content to money so that neither side can scam the other…''' # The user and host generate ECDSA key pairs, {user_pub, user_priv}, {host_pub, host_priv} [4]. # They add the public keys together using eliptic curve addition, add_pub. # The user uses add_pub to encrypt their content with ECIES, encrypted_file. # The user uploads encrypted_file to host and deletes their original copy. # When the user wants to retrieve the file, the host returns the encrypted form. # The user verifies the file. (The encrypted file is useless without the key.) # The user funds a contract that pays the host N Ether for releasing host_priv. # The host verifies the contract terms and releases host_priv to claim payment. # The user now has user_priv and host_priv. They use ECC addition on the private keys to get the private key for add_pub. # The original file can now be reconstructed at the same time that the host has been paid, thus neither side can be scammed in this agreement. The tools for this contract now exist. Pay for private key contracts were the hard part but [https://github.com/vbuterin/pybitcointools pythonbitcointools] already does public key addition and [https://github.com/bitpay/bitcore-ecies Bitpay have released a library for Bitcoin] that does ECIES. Thus, it is completely possible to implement an atomic payment system for a decentralized cloud storage system on top of Ethereum without the need for a custom blockchain [3] like Sia or Filecoin for trustless payments. Anyway, that’s it for now. Fin. <span id="notes"></span>
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)