How does Bitcoin Work – Part 1 | The “Billcoin” Address

bitcoin
Fri Mar 14 2014

Introduction

This is a series of blog posts that introduces the main concepts and principles behind the crypto-currency named Bitcoin in depth.

We will view Bitcoin for the platform, principles and algorithm it really is and less as a currency.

In these blog posts you will NOT learn:

  1. How to make money with Bitcoin
  2. What is the future of Bitcoin
  3. If Bitcoin is a hype, awesome, cool or a conspiracy/bubble.
  4. Anything that has to do with the social and economic impact of crypto-currencies

In these posts you WILL learn:

  1. The mechanics behind Bitcoin.
  2. Basic principles and technologies used in crypto-currencies.
  3. We will create our own very simple currency named “Billcoin” together using these principles!

Electronic Currency

So let us begin our journey in the logic and principles behind crypto-currencies. Let us say we wake up today and want to create our own electronic currency.

What is a currency? It is something you can give to someone in exchange with something else. This could be a goat, a piece of rock, salt, sand or a coin. Why don’t we all move around with goats and exchanging them for stuff? Well because having coins, paper or even electronic data such as credit cards is much more convenient. It is even more convenient to be in our house, log in on our favorite store and buy something online or log in our e-bank account and send money or receive money.

Online however is scary. We don’t practically hold the money in our hands or have it under out bed. When we send money, we expect it to happen flawlessly and securely without a shed of doubt.

Let us say I have a bank account with 2300$ and my friend Stephanie has a bank account with 3200$. I want to send 500$ to my friend. The following should happen:

Our accounts before the transfer

Bill: 2300$
Stephanie: 3200$

 

Our accounts after the transfer of 500$ from Bill -> Stephanie

Bill: 1800$
Stephanie: 3700$

 

The similar thing should happen when I buy something. An amount is taken from my bank account or “wallet” and sent to another bank account.

Until today we needed a central authority to be the middle man between me and Stephanie. I could claim that I’d sent the money to Stephanie and if she never received the money we would both turn to the bank for explanations. I also expect that my balance is safe and won’t change without my consent. If any problem arises you can turn to the bank or central authority and they will handle it. Some began to think about the idea of a way to store and send data of this sort without a central authority. How is this even possible? How can there be no database at a central authority where everyone trusts?

Let us create our own coin together – Billcoin

Whenever I have a difficult concept to grasp I like to create a simple version of that concept. So to have a solid and concrete understanding of all of the underlying principles of Bitcoin we’ll try to create our own crypto-currency. It will be muuch more simple but this way we can see what problems occur during the process of creating an online crypto-currency.

Logo

Everything seems to need a logo these days. So let us say create a nice new logo for our coin.

billcoin

The “Billcoin” Address

The second step towards this new system would be to create an “address”. We want to have the ability to have addresses where we can relate “billcoins” with. So our tables can become

1MRE1rMz2CdsqwjAk4qjnYBjMiLKyXnef6  10BTC
171YcYyafjUxFHPA37vw8CU8arkRAzmhae  20BTC

 

So now if you want, you can send some Billcoins from one address to another. For the rest of this blog post we’ll go over the algorithm to create these addresses. Each of the keys specified on the table above are the address keys of the wallet. The key is the address everybody can see and send money to. The private key is responsible for signing keys associated with the public key. When we sign a transaction with a private key we can prove our identity and integrity. So everybody can verify our signature but cannot create a new one. As to generate a signature we would need a message and the private key.

We’ll go over the process of creating a public/private key pair.

To create a new wallet to send/receive money we’ll have to follow these steps. These steps conclude in creating

1) An address, where is our unique wallet public key.

2) A WIF private key, needed to sign stuff and unlock our wallet.

You can checkout the process below. Or at the following link => http://bstavroulakis.com/demos/billcoin/address.php

If you are new to cryptography and hashing, you can give it a look, but don’t try to understand it thoroughly. We’ll go over certain cryptography basics in the next posts. However, you have the address/private key creation process over here to reference and you can return after reading the whole series to fully understand what is going on.

Billcoin Wallets

You can checkout now Step 1 in the Billcoin economy over here => http://bstavroulakis.com/demos/billcoin/ and generate some wallets!

Summary

So in this first blog post we saw that

1) The goal of these blog post series is to create our own currency and learn about Bitcoin along the way.
2) Very briefly saw what we think of as Electronic Currency
3) The Billcoin Logo
4) The process of creating a “wallet” that has an “address” and a “private key“.

References

Full Stack Weekly Newsletter

A free weekly newsletter for full stack web developers!