- Nov 19, 2015
- 94
- 191
BIP151 is a core proposal to add authentication and encryption to the bitcoin protocol. I think pretty much the entire Bitcoin Unlimited community agrees with the *intent* of the BIP151 proposal. What many BU people may not agree with is the way the core developers are going about implementing this proposal.
At the Scaling Bitcoin conference in Milan, a presenter made the case of a lightweight wallet running on a smart phone connecting to a node of the owners choosing, instead of that smartphone wallet connecting to a random node on the network. This functionality is something that is needed.
Th eproblem is that the core developers are doing this by not using OpenSSL, and are instead writing their own implementation of all the crypto. This is bad because writing cryptography code requires a lot of work and requires cryptography experts to review the code. A better approach is to utilize existing libraries. This way instead of taking months and months, the update can take merely weeks or even days.
This is how it should be implemented:
* In the settings dialog there should be a button that reads "set up blockchain API". When you click that button, the software downloads three pieces of software: Bitpay Insight, the Let's Encrypt script, and dyndns setup script.
* Below the button there is a field where the user can enter their preferred node name.
* Bitpay Insight is installed and is automatically configured to use the blockchain data. Lets Encrypt is invoked and a SSL certificate is issued and installed into the built in webserver that comes with Insight (which is provided by Node)
* Dyndns (or some other DNS provider) is invoked and the DNS entry is pointed to the Insight API running on that machine.
The result is a running API instance running on that node and is publically available to whoever knows the domain. If the user enters "my_cool_node" into the "Node name" box, the API will be access by going to https://my_cool_node.dyndns.com.
Then the user can install a mobile wallet on their phone that uses the Bitpay Insight API, and then can enter "my_cool_node.dnsdns.com" into that wallet, and it will always use the node of the user's choice through Insight. Encryption is handled by HTTPS, and is sybil attack resistant.
The advantage of doing it this way is that the code that needs to be written is basically packaging code, instead of cryptography code. There should be less effort required in testing, and the whole thing should get done in orders of magnitude faster time that Core's BIP151 approach.
At the Scaling Bitcoin conference in Milan, a presenter made the case of a lightweight wallet running on a smart phone connecting to a node of the owners choosing, instead of that smartphone wallet connecting to a random node on the network. This functionality is something that is needed.
Th eproblem is that the core developers are doing this by not using OpenSSL, and are instead writing their own implementation of all the crypto. This is bad because writing cryptography code requires a lot of work and requires cryptography experts to review the code. A better approach is to utilize existing libraries. This way instead of taking months and months, the update can take merely weeks or even days.
This is how it should be implemented:
* In the settings dialog there should be a button that reads "set up blockchain API". When you click that button, the software downloads three pieces of software: Bitpay Insight, the Let's Encrypt script, and dyndns setup script.
* Below the button there is a field where the user can enter their preferred node name.
* Bitpay Insight is installed and is automatically configured to use the blockchain data. Lets Encrypt is invoked and a SSL certificate is issued and installed into the built in webserver that comes with Insight (which is provided by Node)
* Dyndns (or some other DNS provider) is invoked and the DNS entry is pointed to the Insight API running on that machine.
The result is a running API instance running on that node and is publically available to whoever knows the domain. If the user enters "my_cool_node" into the "Node name" box, the API will be access by going to https://my_cool_node.dyndns.com.
Then the user can install a mobile wallet on their phone that uses the Bitpay Insight API, and then can enter "my_cool_node.dnsdns.com" into that wallet, and it will always use the node of the user's choice through Insight. Encryption is handled by HTTPS, and is sybil attack resistant.
The advantage of doing it this way is that the code that needs to be written is basically packaging code, instead of cryptography code. There should be less effort required in testing, and the whole thing should get done in orders of magnitude faster time that Core's BIP151 approach.