Sumit BeraTue, May 26, 2020 5:00 PM
ECDSA In Bitcoin: Full Review of The Algorithm
Computerized marks are viewed as the establishment of online power. The approach of public-key cryptography in 1976 prepared for the production of a worldwide specialized apparatus – the Internet, and a totally new type of cash – Bitcoin. Albeit the basic properties of public-key cryptography have not changed much from that point forward, many diverse open-source computerized signature plans are currently accessible to cryptographers.
How ECDSA was joined into Bitcoin
At the point when Satoshi Nakamoto, a magical author of the first crypto, began chipping away at Bitcoin, one of the central issues was to choose the mark plans for an open and public monetary framework. The necessities were clear. A calculation ought to have been broadly utilized, justifiable, safe enough, simple, and, what is more significant, publicly released.
Of the relative multitude of alternatives accessible around then, he picked the one that met these models: Elliptic Curve Digital Signature Algorithm, or ECDSA.
Around then, local help for ECDSA was given in OpenSSL, an open arrangement of encryption instruments created by experienced code banks to build the secrecy of online correspondences. Contrasted with other mainstream plans, ECDSA enjoyed such benefits as:
- Low interest for figuring assets;
- Short key lengths.
These are very valuable highlights for advanced cash. Simultaneously, it gives a relative degree of safety: for instance, a 256-cycle ECDSA key has a similar degree of safety as a 3072-piece RSA key (Rivest, Shamir и Adleman) with an essentially more modest key size.
Basic principles of ECDSA
ECDSA is a process that uses elliptic curves and finite fields to “sign” data in such a way that third parties can easily verify the authenticity of the signature, but the signer himself reserves the exclusive opportunity to create signatures. In the case of Bitcoin, the “data” that is signed is a transaction that transfers ownership of bitcoins.
ECDSA has two separate procedures for signing and verifying. Each procedure is an algorithm consisting of several arithmetic operations. The signature algorithm uses the private key, and the verification algorithm uses only the public key.
To use ECDSA, such protocol as Bitcoin must fix a set of parameters for the elliptic curve and its finite field, so that all users of the protocol know and apply these parameters. Otherwise, everyone will solve their own equations, which will not converge with each other, and they will never agree on anything.
For all these parameters, Bitcoin uses very, very large (well, awesomely incredibly huge) numbers. It is important. In fact, all practical applications of ECDSA use huge numbers. After all, the security of this algorithm relies on the fact that these values are too large to pick up a key with a simple brute force. The 384-bit ECDSA key is considered safe enough for the NSA's most secretive government service (USA).
Replacement of ECDSA
Thanks to the hard work done by Peter Wuille (a famous cryptography specialist) and his colleagues on an improved elliptical curve called secp256k1, Bitcoin's ECDSA has become even faster and more efficient. However, ECDSA still has some shortcomings, which can serve as a sufficient basis for its complete replacement. After several years of research and experimentation, a new signature scheme was established to increase the confidentiality and efficiency of Bitcoin transactions: Schnorr's digital signature scheme.
Schnorr's signature takes the process of using “keys” to a new level. It takes only 64 bytes when it gets into the block, which reduces the space occupied by transactions by 4%. Since transactions with the Schnorr signature are the same size, this makes it possible to pre-calculate the total size of the part of the block that contains such signatures. A preliminary calculation of the block size is the key to its safe increase in the future.