Bitcoin solutions developer Airbitz has developed a mobile wallet that now supports deterministic transaction signatures. The transaction signatures support the RFC 6979 standard . To understand why this is significant, here is some background on signatures and why they are necessary.
Bitcoin uses elliptic curve digital signatures which require a random value with every transaction. Multiple transactions utilizing the same private key and a poor random number generator for transaction signing may reveal a significant portion of the private key.
In an open source process such as is used by bitcoin there is a need to ensure data integrity and verifiable authenticity in various protocols. There are two ways of doing it. One method is what is known as the Digital Signature Algorithm or DSA. The other is what is known as the Elliptical Curve Digital Signature Algorithm or ECDSA.
To ensure high levels of security of transaction the two schemes, DSA, and ECDSA, have to produce random values for each signature generation. That random value is designated by the letter k. The random value of k must also be chosen uniformly from a set of numbers using a cryptographically secure process. Now, not all architectures can handle the deployment of DSA and ECDSA. An example of such systems is embedded systems such as smartcards.
It also becomes harder to test randomized systems such as DSA and ECDSA. This inability to adequately test these systems could be catastrophic in the event of a failure, especially after the system has already been deployed and is in use. It, therefore, makes it necessary to make these systems for generating digital signatures deterministic. A deterministic signature differs from the randomized method in that the value k is generated through a different process which involves the construction of a Message Authentication Code using a hash function and a secret key.
For a bitcoin wallet, a deterministic signature is much more secure. This is because it avoids duplicates transactions, where the same data element is signed several times with the same key. In practical terms what that would lead to, is a wallet being charged twice for the same transaction. By implementing the RFC 6979 standard, Airbitz has eliminated the need for a random number generator on every transaction and significantly boosts security for Bitcoin wallets.
What do you think of this new development? Comment below!
Images from Airbitz and Shutterstock