Anonymous Crypto Currency Terminology
Most common terms and concepts used for crypto currency which can be used anonymously. Looking Specifically at PIVX
I am writing this mainly to keep an overview of the things you need to know to trade, use and understand. So here is a kind of brain dump of things.
Wallets and Keys
We use the metaphor of a wallet for the information that allows you to receive and spend crypto currency you own. But really a wallet in its most simple for is just two piece of information. A public key and a private key. Both are just a bunch of random looking letters and numbers.
Above is an example of a paper wallet. The black and white pixelated squares are QR codes. They basically store the text strings written next to them in a way that can easily be read by a computer optically. So rather than forcing you to write in a public address like
1BoatSLRHtKNngkdXEeobR76b53LETtpyT and possibly make mistakes, you just have the computer read the QR code instead with e.g. a webcam or your cameraphone.
So we got two types of text strings contained in a wallet:
- A public key, which allows you to receive money from people. Usually you use a hashed (scrambled) version of this referred to as the address. You give this to people who want to send you money. It is public info and nothing to keep secret.
- Private key , which allows you to spend money. You need to keep this secret, because anybody who knows the private key of your wallet can spend the money in that wallet.
To avoid that you mix up public and private keys as well as keys for different crypto currencies, they usually have different starting numbers. E.g. notice how the Bitcoin public key starts with
1. For private keys it is more involved:
5Prefix means it is an unencrypted private key, as shown in the picture.
Lprefix means compressed and unencrypted private key.
6Encrypted private key.
6PEncrypted private key using a passphrase. The
Pindicates that you have to provide a passphrase to decrypt the private key.
You can read more about the prefixes used for crypto currency public keys and private keys on wiki.
You’ll see this mentioned in several contexts. It is a standard used for encrypting private keys, to your crypto currency wallet. A common encryption algorithm to use is AES. But just saying AES leave out a lot of details. What strengths are you using, how did you encode the encrypted data. Is it base64 encoded for easy reading e.g?
BIP38 basically sets a standard for this, so a wide variety to crypto currency software has a standard to work with. For instance you can tell that a private key is BIP38 encrypted if it begins with
What is the practical application of this? Say you decide to store your private key on paper to safeguard it, and then you have some software that scans the QR code to import it. The software has to decide whether this is a key that needs to be decrypted or whether it is in plain text. It can figure that by looking at the first letters.
5 means it is not encrypted.
6 means it is encrypted.
6P is more specific, saying it is encrypted with a passphrase in BIP38 format.
Other BIP Numbers
BIP stands for Bitcoin Improvement Proposals. Here you can see the whole list of what the different BIP numbers means. These are all sorts of technology standards, which are used widely in the crypto currency world. Even if a crypto currency is not Bitcoin they still usually use technologies pioneered or first proposed in relation to Bitcoin development. PIVX, Dash and a number of other crypto currencies are based off the original BitCoin code, and thus share a number of concepts and ideas.
The code for Bitcoin wallets and validation of the block chain (history of all transactions) is called BitcoinCore. It is based of the original code from mysterious and unknown hacker Satoshi Nakamoto, who created Bitcoin. As of this writing the current release is version 0.17. PIVX is based off version 0.10. Looking through the history I believe the reason PIVX does not contain later versions is because Bitcoin started taking a very different direction with implementing a technology called SegWit (segregated witness) to support what is called lightning networks. A technology for fast small value payments.
The bitcoin public and private keys that I talked about are just a bunch of numbers stored on the computer. We usually refer to it as binary data, because it is not really important to the user how large the number is, since it does not represent some amount you want to compare to another amount. Thus we can chose to represent this data as something else. It is common to store binary data like this in base64 encoding. You can try out base64 encoding at the command line if you got access to a macOS or Linux terminal. This base64 encodes
$ echo hello world | base64
And this takes the base64 encoded text and decodes it again:
$ echo aGVsbG8gd29ybGQK | base64 -D
The creator of Bitcoin which influenced a lot of the standards used for crypto currencies today, decided he did not want to use base64 encoding because the letters
O are easy to misread or mixup. So he create the base58check encoding instead which excludes those characters.
Hierarchical Deterministic Wallet (HD Wallet), BIP32
Make sure you are always using some kind of HD Wallet for your crypto currency of choice. You can read a lot of great technical details about HD Wallets here, explained by Harsha Goli.
I’ll try to keep the technical explanation, why you should use such a wallet short. Remember how I explained that a wallet is just a public key and private key? That is what a paper wallet usually is. Well, I told a white lie. In practice, wallets you actually use will contain lots of public-private key pairs. For security reasons one avoid sending and receiving coins from the same pair over and over again.
The first Bitcoin wallet I used would randomly generate these pairs as needed. If I forgot to do regular backups, and my computer crashed, that would mean all key pairs made since last backups would be lost and all coins associated with those keys would be lost.
That is NOT a good solution for a paranoid user. Hence BIP32 proposed a so called Hierarchical Deterministic Wallet, or HD wallet for short. With these your keys are not randomly made. They are instead derived (computed) from a seed (a special number). A seed is just a few bytes and can thus easily be written down on paper and stored safely. Usually we don’t write down the bytes themselves but write down some collection of words, which can be converted to these bytes. That is not the most space efficient way of doing it but the safest, because it creates redundancy. You don’t write down just some random characters which you could accidentally write wrong.
Instead you wrote down a collection of whole words, from a limited collection. If you write one or two letter wrong it doesn’t matter, because you can just lookup the correct spelling of the word, to get the correct word.
The beauty of this is that you can write these words down on a piece of paper, scratch them on a rock, engrave them in metal or whatever. The old Bitcoin wallets would be impractical to do that with because you would have to write a lots of words over and over again each time you used your wallet. HD wallet seeds are forever.
PIVX Core Wallet vs Light Wallet (IMPORTANT!)
After I wrote the section above I discovered that you can in fact not use a HD wallet with PIVX whenever you want. What they call their light wallet supports that. Light wallets are wallets that don’t download and very all past transactions like a full wallet. Thus these take less space and are faster to use. However they are also less safe, as you rely on a third party doing the validation. The light wallets are HD Wallets, meaning they are based of a seed which you can backup and use to completely restore your wallet.
What they call the Core Wallet, stores randomly generated public/private key in a wallet.dat file just like the original Bitcoin client. Thus you MUST backup this file regularly to not risk losing your money. If you loose this file, there is no PIVX customer support to call. Your money is gone.
On the positive side, the wallet will automatically backup this file on a regular basis. However you must make backups for these backups on semi regular intervals because your hardisk containing backups could fail. Store backups on a USB stick, burn to a CD, store on an extra hardisk or whatever. Just make sure you never put the backups in the cloud unless they are strongly encrypted by you. The last part s important. That the service provider claims to encrypt your data is of zero value. You need to be the one who encrypted the files with a password only you know.
You may wonder why does PIVX have this solution? My guess is that it is a hangover from Bitcoin. A full wallet is more code to change, and they probably did not get the time to change it to a HD wallet. By the time you read this, they may have done that already. Doing so is on their roadmap.
Interestingly they have partially done it. The coins that get minted through the zPoS algorithm I discuss further down, can be stored with a seed. Thus the core wallet is currently hybrid. Publicly known money is in a wallet that need regular backup while anonymously created PIV coins are stored in part of the wallet that works as HD wallet.
Anonymity of crypto currency transactions can be done in a multitude of ways, all which have different pros and cons. People often things Bitcoin is anonymous, but it is only what we call pseudo anonymous. From which bitcoin address to which bitcoin address money went is public information. Usually you will not know who owns a bitcoin address, but it allows people to trace transactions back to some point that could be further investigates. With enough effort you may be able to obtain the IP address of the person associated with a bitcoin address and eventually learn their identity.
The Zerocoin protocol is one way of giving users anonymity. It works by conceptually users proving that they destroy a crypto coin. The proof of this destruction is what allows a user to mint (create) an entirely new coin with no history. That means the coin is not traceable.
Usually other coins such as bitcoins are connected to a chain of transactions which tells you where they originated.
zPIV vs PIV
The coins used by PIVX are called PIV. We refer to the PIV coins created anonymously as zPIV. It does not really mean a new type of coin, just that these are PIV coins held in an account which is anonymous. There is no way for people to see that you have that money.
Proof of Stake, PoS 3.0
PIVX does not use proof of work to validate transactions. If you have read almost anything about Bitcoin in the news, at some point you will probably have heard about how insane amount of electricity Bitcoin consumes.
It is actually one of the main reasons why I am opposed to Bitcoin and will not buy it. Bitcoin has been estimated to consume more electricity than Ireland and 0.5% of the world’s electricity production by the end of 2018. That is an obscene amount of economic waste as well as major environmental damage.
The reason for this electric consumption is what we call proof of work (PoW). It requires computers of special hardware to perform lots of complicated calculations requiring lots of electricity to produce new bitcoins.
Proof of Stake, as used by PIVX in contrast cost almost no electricity. In simplified terms it works by owners of PIV coins holding a sort of election regarding which money transactions performed are valid. You do this by “staking” a certain amount of your coins. More coins means more of the votes.
Of course you don’t have to personally participate in this. You are basically telling the PIVX wallet software you are running to vote for you with a given amount of coins. It will keep voting for you until you turn staking off.
Now you may wonder, how does the software know what transactions to vote on? The PIVX software running on your computer locally will check all previous transaction including the new one being voted on to make sure the person performing the transaction actually owns that money. The owner has to essentially provide a mathematical proof that they own the money by demonstrating through a cryptographic signature using their secret private key, that they were previous recipients of the money they are now spending.
This whole scheme works, as long as the people staking the majority of PIV coins to vote, do so using the original PIVX software and don’t tamper with it to subvert the system. Somebody who wants to send out fake transaction getting money they don’t own, would have to make a sort of evil version of the PIVX software, and stake more money than all the other honest nodes combined.
However for selfish reasons this is implausible, because when you stake and vote like everybody else, you are rewarded with coins for your voting participation. This provides the financial incentive to stake and verify transaction. Hence somebody with lots of coins would make more money by playing ball with everybody else and staying honest.
The algorithm PIVX uses for proof of stake is referred to as PoS 3.0. It comes originally from BlackCoin.
This is something which can be a bit confusing when reading about crypto currency. A lot of the technology for various coins comes from other coins. The reason for this is that all coins are typically open source. The code is publicly available to anyone. Thus different coins will copy technological solutions from each other.
- Wallet format and core technology comes from Bitcoin.
- Governance model with Masternodes comes from Dash (funding of development of coin).
- Zerocoin protocol as used for anonymity is the same as the one used by Zcoin.
- Proof of Stake algorithm is the same as the one used by BlackCoin.
Anonymous Proof of Stake, zPoS
But it gets more complicated. PIVX has not one but two staking algorithms. With PoS 3.0 you can stake to mint non-anonymous PIV coins, but with zPoS algorithm you can stake anonymous PIV coins (zPIV) and get anonymous reward. That means there is no way for anybody to determine by analyzing the public ledger (database with all transactions) that you got these coins from staking.
Whatever coin you look at you will typically see a lot of the same kinds of technologies:
- Similar formats for storing wallets.
- Format for wallet addresses.
- Anonymity algorithms.
- Proof of work or staking.
Getting to know bitcoin is often useful to be able to understand other coins.