Header

Beginners’ Guide To Off-the-Record Messaging

OTR

This is a sequel to my earlier post Beginners’ Guide to PGP which was the first in a series of posts aimed at introducing new bitcoiners to various encryption technologies. In this post we’re going to teach you how to use Off-the-Record messaging (OTR).

So what is OTR? Like PGP, it’s a cryptographic protocol designed to provide strong encryption of your communications. However, it shouldn’t be considered a competitor or replacement for PGP, more like a welcomed complement. Where PGP is often used to encrypt emails, files, and authenticate messages with digital signatures, OTR is an encryption protocol for real time chat. And unlike PGP, which can be a little daunting to learn and use securely, OTR is quite easy to setup and use and provides a pretty good user experience.

Under The Hood

Before showing you how to use it, let’s take a look under the hood. If you recall from the last post, PGP uses public-key cryptography. That is, one key (a public key) is used to encrypt a message and a separate key (the private key) is used to decrypt it.

Continue Reading >>

bitcoinsecurity

Bitcoin Explained Like You’re Five: Part 4 – Securing Your Wallet

A couple months ago my friend Amanda was asking about the best ways to store bitcoins to avoid getting them stolen. I figured I would extend my Bitcoin ELI5 series with this post and detail a number of best practices that you can use to avoid this fate. If you are a beginner, it may be helpful to first familiarize yourself with the cryptography used in Bitcoin by reading the previous installment Part 3 – Cryptography or at least the second half on public-key cryptography.

For those who are unfamiliar with the inner workings of Bitcoin you should note that there aren’t actually any bitcoins stored in your wallet. A bitcoin is really nothing more than a balance recorded in a publically shared ledger. Transactions are orders to the Bitcoin network to transfer some of your balance from your bitcoin address to someone else’s. The way you prove to the network that you own the bitcoins associated with a particular address is by signing your transactions with the private key that matches that address. Here’s what they look like:

Bitcoin Address: 12CbHSwuMVxbwdGzCZaiLnXgxFBj3YE2ax

Private Key: L32qYhUt93qg7MWUSYCUaPKS9qeaKEZquV566Qfh7wZfqqmvZZum

Without the private key, you can’t spend your bitcoins. It is this private key (or keys if you use more than one address) that is stored in your wallet. Needless to say, if your keys are lost or stolen, your bitcoins are gone forever. Hence, why you need to take precautions to prevent that from happening.

Continue reading

conterra-620x246

Bitcoin Mining Explained Like You’re Five: Part 2 – Mechanics

In Part 1 we took a look at the incentives involved in Bitcoin mining and how they are used guarantee a single transaction history needed to prevent bitcoins from being double spent. In this post we will take more a technical look at the cryptography involved and how it is used to secure the network. As I said previously, Bitcoin is very accessible. While we will be discussing cryptographic concepts, it shouldn’t discourage you from continuing further.

Cryptographic Hash Functions

Before moving forward we should take a moment to learn about hash functions since they are used all throughout the Bitcoin protocol. To put it simply, a hash function is just a mathematical algorithm that takes an input and turns it into an output. For example, suppose we have an algorithm which just adds all the digits in the input string together. If our input is 1234 we would get an output of 10.

1234 ==> 10

Simple enough. However, there are certain properties of really good hash functions that make them suitable to use in cryptography. Keep these properties in mind as they are vital to the operation of the Bitcoin protocol.

  1. It should be very easy to compute an output for any given input, however it should be impossible (given current knowledge of mathematics and the state of computers) to compute the input for a given output even while knowing the mathematical algorithm. Consider, in the above example we can easily compute an output of 10 given the input of 1234, however going in reverse isn’t as easy. In this case there are many possible inputs that could add up to 10 (55, 136, 7111, etc). However, given the simplicity of our function one could still figure out the input relatively easily. Some cryptographic hash functions, on the other hand, are said to be unbreakable by even quantum computers.
  2. Continue reading