Bitcoin

From MgmtWiki
Jump to: navigation, search

Full Title

Bitcoin was the first successful demonstration of the value of Distributed Ledger Technology (DLT) often referenced as Blockchain which has been around for decades.

Problems

  • Bitcoin and its offshoots, like Decentralized ID have been focused on using non-standard crypto under a mistaken assumption that they will thus not be the first crypto to be cracked in the near future. Unfortunately that also means that these non-standard cryptos are not implemented in hardware modules, like the one inside of Android Smartphones. That means that they must be used in less secure execution environments. Not a good choice for modern computers.
  • Bitcoin is maintained by amature volunteers and the result reflects that. At sometime prior to Bitcoin Core Satoshi 0.20.xx the location of nearly all the tabs was reworked, but not the documentation, so be prepared to look around for the feature you want.

Implementation

Bitcoin Core

Which has had other names like Bitcoin-qt which is still the name of the exe for version 0.20.xx. Here is the way to deal with that version. Caveat Emptor, your version may be different yet.

  • Note that a "Bitcoin Wallet" is nothing more that a public/private key pair in Bitcoin canonical format. To see this go to bitaddress.org.
  • Be sure to actually create a wallet before you look for its privatekey that you will need to access Bitcoin from any ID app.
  • Get the Receiving address from the Window tab. If there is no address listed, go to Receive tab and select "Create new Receiving Address".
  • There is no "Debug Window" under help, but there is a "console" under Window, which is where you will find the "receiving address" as well.
  • walletpassphrase "your walletpassphrase here" 600 dumpprivkey [your Bitcoin address here]
  • Ensure that the correct wallet is selected in the drop-down box at the top of the console window.

Terminology

  • You can set any values you want for rpcuser and rpcpassword in bitcoin.conf. Those values will be your username and password when you will be connecting to your bitcoind through HTTP JSON RPC. Also be sure to set other important values in .conf file, like server, rpcallowip and a few others to ensure your server is running correctly and securely.
  • A Data Directory is included in the Bitcoin wiki.

Cryptography

  • Is secp256r1 more secure than secp256k1?

It is said that "Satoshi picked non-standard crypto (secp256k1) which conventional wisdom says will be cracked in 5-10 years."

The main difference is that secp256k1 is a Koblitz curve, while secp256r1 is not. Koblitz curves are known to be a few bits weaker than other curves, but since we are talking about 256-bit curves, neither is broken in "5-10 years" unless there's a breakthrough.

The other difference is how the parameters have been chosen. In secp256r1 they are supposedly from random numbers, however, it is impossible to prove that's really the case. See e.g. these slides from Bernstein and Lange for an easily understandable treatment.

The Koblitz curve, on the other hand, has had its parameters chosen relatively rigidly. The post runeks linked in the comments has an explanation for why they were chosen.

So rather than saying one is more secure, I would say that the risks are different. If neither curve has backdoors or accidental weaknesses, both are secure. The few extra bits of security secp256r1 has won't matter unless you happen to own e.g. a moderately sized quantum computer that can just manage one but not the other. It would have been easier to backdoor the secp256r1 curve, but on the other hand, Koblitz curves as a class could be completely weak in some way not currently known.

I.e. which to prefer is somewhat subjective. If you don't like Koblitz curves but are afraid secp256r1 is backdoored, there's always the option to use some other curve designed according to criteria you like. (Though you cannot, of course, change what BTC uses.)

Comments clipped from this site.

Testnet

"Coins" are transferred on Testnet they same way that they are on Mainnet, but they have no value.

References