The Bitcoin Network mainly uses hashes in combination with digital signatures to protect the integrity of the data owing through the blockchain, using public-key cryptography. Hashes are furthermore used in the context of the consensus protocol “Proof-of-Work.” Bitcoin uses public-key cryptography, and more especially, elliptic-curve cryptography. Please note that alternative blockchains might use alternative cryptography to the ones described below. Some blockchains, for example, use more privacy-preserving cryptography, such as “Zcash” (zero-knowledge proofs) and “Monero” (Ring Signatures). The Bitcoin community itself is currently looking into alternative cryptographic signature schemes that are more privacy-preserving and more scalable, for example with “Mimblewimble.” While these alternative algorithms are interesting and important from a privacy perspective, and in some cases also a scalability perspective, it is beyond the scope of this book to deep-dive into these algorithms.
Public-Key Cryptography
The main purpose of using public-key
cryptography for the Bitcoin blockchain is to create a secure digital reference
about the identity of a user. Secure digital references about who is who, and
who owns what, are the basis for P2P transactions. Public-key cryptography
allows proving one’s identity with a set of cryptographic keys: a private key
and a public key. The combination of both keys creates a digital signature.
This digital signature proves ownership of one’s tokens and allows control of
the tokens through a piece of so ware called the “wallet.” Digital signatures
prove ownership of one’s tokens and allow one to control one’s funds. Just as
we sign a bank transaction or a cheque by hand, or we use authentication for
Internet banking, we use public-key cryptography to sign Bitcoin transactions
or other blockchain transactions.
In public-key cryptography, two
parties distribute their public keys and allow anyone to encrypt messages using
their public keys. The public key is mathematically generated from the private
key. While it is very easy to compute the public key from the private key, the
reverse is only possible with sheer brute force; guessing the key is possible
but prohibitively expensive. It is, therefore, not a problem if a public key is
known, but the private key must always be kept a secret. This means that, even
though one’s public key is known to everybody, nobody can derive one’s private
key from it. A message can now travel securely to the owner of the private key,
and only the owner of this private key can decrypt the message using the
private key associated with the public key. This method also works the other
way around. Any message signed with a private key can be verified with the
corresponding public key. This method is also referred to as a digital
signature.
This digital signature in the Bitcoin
Network and similar blockchain is performed using wallet software. A blockchain
wallet is a piece of software that stores your private key, public key, and
blockchain address, and communicates with the blockchain. This wallet software
can run on a computer or a mobile phone (like “Bitcoin Core”, “Electrum”), or a
dedicated hardware device (like “Trezor”, “Ledger”). The wallet software allows
the management of tokens. You can (I) send tokens via digital signature, and
(II) inspect receipts of tokens that were sent to you. Every time you send or
receive Bitcoin, for example, you need to use a wallet to sign the transaction
with your private key stored in the wallet. Subsequently, your personal balance
of tokens is adjusted on all copies of the ledger, which is distributed across
the P2P network of computers – aka the Blockchain. The blockchain address has a
similar function to a bank account number in the context of traditional
financial transactions, or an email address when people want to send you an
electronic mail.
You can contact us or
directly send a mail to hello@codezeros.com for further inquiries regarding
Blockchain development.
Comments
Post a Comment