top of page
Search

BITCOIN: DELVING DEEPER

  • Writer: Leonard Tajeu
    Leonard Tajeu
  • May 27, 2021
  • 6 min read

Bitcoin is the world’s first and most popular digital currency. It is decentralized and controlled by no one. Bitcoin is based on a form of encryption called public/private key encryption. In this encryption, two keys are generated. Data encrypted with one key can be decrypted by the other and vice versa. One of these keys you make public, and the other you keep it as a private secret.


Public keys represent one’s public identity. They are what you give out to the public to know how to communicate with you so that they know how to recognize and identify you. Meanwhile, private keys are secret keys that you alone should own. It gives you control and ownership. It gives you your identity.


If anyone else gets their hands on your email password, for example, they can pretend to be you, receiving and sending emails on your behalf. Similarly, you would never want anyone else to have your Bitcoin private key as that would give them control of your Bitcoin public key, and by implication, your Bitcoin identity. In Bitcoin, you can think of your public and private key as a chest and key, respectively. You use your private key to prove you have ownership of your

public key and to access the funds associated with that public key, just as you can use a physical key to unlock a chest that contains your physical money. To reiterate, public keys are used for receiving, and private keys are used for redeeming. Received money is associated with the public key, and you can access or spend those funds with your private key. You are safe letting people

know about your chest of bitcoins -- your public key -- so long as you don’t give them the key to get inside -- your private key.


A small note: in actuality, other users send transactions to your address, not your public key, as your Bitcoin public key is not identical to your Bitcoin address. Your address is derived from your public key. I will make the distinction clear when we go more in-depth into wallet mechanics, but you can, for now, think of addresses, pseudonyms, and public keys as synonyms. We need this public-private key pair scheme in Bitcoin because there is no central authority to generate unique identities for users. This means that users have to generate their own identities. To create an identity, a user generates a private key at random and then generates the public key from the private key through a mathematical function. The number of addresses in Bitcoin is many, many magnitudes greater than the number of grains of sand on earth, making the probability of selecting similar addresses even smaller.


How do we make transactions work between one another in Bitcoin? After all, that’s the primary goal of the Bitcoin network -- to enable secure transactions between any two users in the network.


For a transaction to be valid, it must have these three components:

  • proof of ownership, aka a signature

  • available and sufficient funds to spend, and

  • a guarantee that no other transaction is using or has used the same funds.

Let’s understand these criteria in the context of checks and banks: When you want to make a transaction via a check, you have to sign the check to validate it -- that’s proof of ownership. The bank then has to verify that you have available and sufficient funds for the transaction. They must also ensure that you do not spend the same money more than once -- that you cannot send/clear two or more checks, each spending KES/USD 100 when your account only has KES/USD 100 in total. To ensure that one does not use funds not in their possession, all the same conditions apply to Bitcoin. To enforce this, Bitcoin uses what’s known as a UTXO, or Unspent Transaction Output, Model [UTXO].


Traditionally, when we think of banks, we think of a single account where all our funds are aggregated into one account. For example, after buying KES/USD 80 worth of burgers and fries, your account balance goes from KES/USD 100 to KES/USD 20. This is not the case with Bitcoin. Accounts are easy for users to understand but surprisingly difficult for computers when it comes to all the complexity of a decentralized network. There is no longer a central entity to track all the transactions being made by my account, nor a central clock to track when transactions are being made. If I make three different transactions of 5 bitcoins from an account of only 10 bitcoins, which of the two transactions should go through?


How do we ensure that we do not accidentally let all three transactions go through? To make transaction processing much easier and more secure, users do not spend from one account; instead, they spend directly from transactions made to them. An easy way to wrap our heads around this unintuitive model is to think of UTXOs as piggy banks!


Every time a transaction is made to us, we put all that money into a UTXO or piggy bank. When we want to spend money, we break open that piggy bank, spend whatever we like, and then put the rest into another piggy bank. (It’s hard to put a piggy bank’s shattered pieces back together.)



This way, the complexity of checking for transaction validity goes down. Instead of asking the more difficult question, “Is this account trying to, at this time, spend more money than it owns across multiple transactions?” we only need to ask, “Does this single piggy bank have enough funds?”On the other hand, the complexity of keeping track of one’s funds goes up, as each of these piggy banks has to be tracked and secured individually. The amount of bitcoin you own is calculated by summing up the value of each of your piggy banks, or UTXOs.


How do we keep track of the history of transactions? Via a distributed ledger that everyone has access to.


So, how do we store our ledger efficiently? Every update to the distributed database, the Bitcoin ledger, is a batch of transactions grouped into what are called blocks. Every block is built off, or chained to, a previous block. Altogether, this forms the “blockchain.” By grouping data into blocks, we do not have to strain the network as a result of updating every ledger after every transaction. With a blockchain, only every block, which may contain thousands of transactions, needs to be appended to the blockchain. In this way, blockchains efficiently keep track of not only the transactions in any given update but also give the database discrete states.


How to Buy Bitcoin


Most people buy Bitcoin via exchanges, such as Coinbase, Luno, and Paxful. Exchanges allow you to buy, sell and hold cryptocurrency. Setting up an account is similar to opening a brokerage account—you’ll need to verify your identity and provide some funding source, such as a bank account or debit card.


You can also buy Bitcoin at a broker like eToro. Regardless of where you buy your Bitcoin, you’ll need a digital wallet in which to store it.


To receive BTC, you will need a public key or bitcoin address. Bitcoin wallets generate Bitcoin addresses through online exchanges. Most Bitcoin software and websites will generate a new bitcoin address for users every time they request a bitcoin payment or create an invoice.


This is recommended as a way to differentiate transactions — if multiple payments of the same amount are sent to the same address, there would be no way to tell who made which payment. And, because transactions are public on the blockchain, malicious actors could claim that they sent bitcoin to your address that was sent by someone else, and it would be impossible to

determine the truth.


How to Sell Bitcoin


You can sell Bitcoin at the same venues that you purchased the cryptocurrency, such as cryptocurrency exchanges and peer-to-peer platforms. Typically, the process to trade Bitcoin on these platforms is similar to purchasing the cryptocurrency.


To send bitcoin, you have to prove to the network that you truly “own” it. As bitcoin does not exist physically, this is no simple thing, and there are no third parties with authority to approve or deny transactions.


As highlighted above, you will have to access both the public and private keys associated with the bitcoin you hope to send to initiate a bitcoin transaction. You'll use your Bitcoin wallet to select the type of currency you want to send (in this case, Bitcoin), write in the recipient's address, enter the amount you wish to send, pay any transaction fees, and then click on "Send Bitcoin."


How Long Does a Bitcoin Transaction Take?


In general, sending Bitcoin can take anywhere from seconds to over 60 minutes. Typically, however, it will take 10 to 20 minutes. However, the speed of bitcoin transactions vary, and it depends on several factors. It’s important to remember that all transactions need to be verified by Bitcoin miners on the blockchain. When the queue is overloaded, your transaction doesn’t always make the cut for the current block. Instead, your transaction is put on hold until the next block is assembled.


Another factor of long confirmation times is the size of Bitcoin blocks. Although there’s always the chance of block size being increased in the future, the current Bitcoin protocol limits blocks to a size of 1MB. This limits each block to a certain number of transactions. That, in turn, can slow down confirmation times, and as a result, the entire Bitcoin network is slowed.


I hope this article helped you think about Bitcoin in a new light. Yes, the system is quite complex. But the underlying building blocks are reasonable when examined one at a time.


What does the future hold for Bitcoin? I have no idea. But it’s exciting to learn about it and follow along!


"An investment in knowledge pays the best interest."

Benjamin Franklin

 
 
 

Comments


SIGN UP AND STAY UPDATED!

Thanks for submitting! Come let's learn together!

© 2021 The Blockchain Africa Brief. All rights reserved.

bottom of page