AMA Bill Gates - why doesn’t Bitcoin work for him?
Earlier this week we saw the AMA with Bill Gates. There was a very interesting post in there which I think clearly covered the current issues with Bitcoin and most other crypto currencies:
https://www.reddit.com/r/IAmA/comments/2tzjp7/hi_reddit_im_bill_gates_and_im_back_for_my_third/co3qd…
The volatility and lack of reversibility. Also note the value he contributes to have people receiving mobile payments in developing countries (the unbanked).
Why having reversible transactions?
The first issue regarding volatility we did fix with NuBits. Currency is pegged and not volatile against the dollar. He also talks about reversing transactions in case of mistakes. I think that is also a key functionality of a currency, but not always required. It should be available though to those who wish to have it. There are a few use cases which may require some slightly tailored solutions but the principle should be the same
- Transactions where you would like a confirmation that it is received by the intended recipient or recipients holding the keys. Especially by regular transactions to developing countries you want to make sure the money gets into the right hands.
- Transactions where a local Act requires consumers the ability to return the goods within 10 days. When the goods are returned to the merchant in time, the consumer is credited. When not the payment is released to the merchant.
Can we get rid of 3rd parties?
Currently the problem is that you would always need a 3rd party like a bank or some payment processor intervening when using crypto currencies. Reversible transactions are inherently impossible with blockchain transactions. My proposal is to practically circumvent that if desired and with that implement a type of reversible transaction into the NuBits network without introducing the need of a 3rd Party. I think it is possible to implement a smart contract with multi-sig capability where the network itself acts as the independent third party.
Use case
Recipient and sender of the payment agree to use this functionality. They choose to have a sender confirmation upon receiving the payment. When the confirmation is not received within 10 days the payment is reversed. This example would insure against the inability to access the keys (e.g. due to loss/deletion/forgotten password etc.) of the address used by the sender.
How would that technically look like:
The Nunet creates a multisig address upon reception of this payment type and the transaction. It provides one key to the sender, one key to the recipient and holds one key itself. This key can be held encrypted on the blockchain itself.
The transaction cannot be released without 2 out of the 3 keys signing it.
When the intended recipient is still in control of the address they can use their key to release the funds. Triggered by this event the network would sign with their key and transfer the funds to an address in control of the recipient but only if the number of blocks passed is smaller than agreed (e.g. 7200 blocks is about 10 days). If the number of blocks is larger than 7200 only the key from the sender would be accepted to transfer the funds to an address in control of the sender.
Variant 1 Multiple recipients and/or senders
A variant with multiple recipients and/or multiple senders can be thought off. This can be useful for large payments where multiple signatures are required for transactions. Similar can be the case on reception, although this can already be done by using a multisig address in control of the recipients as the final destination anyway.
Variant 2 User authentication
Another variant is to ensure that the recipient address is in control of the intended recipient. This can be useful when keys have been stolen unknowingly or recipients have been compromised in some way. This use case would require an exchange of a secret key in advance. This can be done with PKI key exchanges and signed messages. In this use case the network would not only require one key from the recipient upon receiving the transaction, but also the signing of a message confirming that they are who they say they are.
I think to be a usable currency for all types of transactions we need to implement a form of a reversible transactions for those who wish to use that. Ideally I like to see the main use case and both variants implemented later this year, but this can be separated out in releases. It is very important that the user interface is friendly and that the code can also be used for implementation in mobile wallets. Anyway, I think it would add a tremendous amount of value to NuBits as a currency.
Feedback and motion
Love to hear your thoughts, other use cases or technical analyses or improvements on this model. Shoot at will, I’m sure it is not yet perfect. When this is received well, I’m prepared to raise a motion to have the Nu developers implementing this and eventually adding it to the roadmap for the NuBits Android client.