Bitcoin Power Law

What is a Power Law?

Quite simply, a power law is a mathematical model. Imagine you have two hands and ten fingers. If you had four hands, you’d have twenty fingers. So as the number of hands rises, the number of fingers rises faster with 100% certainty.

The relationship of hands to fingers is F=h * 5 although this is NOT a power law correlation, it’s a linear relationship because hands always have the same number of fingers.

A power law on the other hand (no pun intended), is a relationship often exhibited in nature and in cities. Wealth distribution for example, the number of people who have very little to no wealth is very high and as you progress upwards through levels of wealth held by an individual, the number of individuals who hold exponentially more wealth than the order of magnitude beneath them is the inverse of the square or the cube or ^4 and so on. Only one person can be the richest, and the number of people competing at that top tier of 1 Trillion is very small, compared to the number of people competing for a paid job with a 100 K Salary.

It’s opportune to mention at this point that the number of bitcoin that will ever exist is effectively 20 M since 1 M of Satoshi’s coins will never move. Also, many are lost. There are not enough bitcoin in existence for every millionaire to own just one. Yet priced in bitcoin over time, everything falls in value against it, evidenced here: PricedInBitcoin21 .

Bitcoin’s price in any given fiat currency rises over time and on a linear scale can appear volatile and chaotic, putting a lot of millionaires off buying bitcoin, yet over a long period of time, if you plot the price on a logarithmic price scale on the y axis and logarithmic time scale on the x axis, a 96% correlation to a straight line up can be observed.

Moreover, it has moved through sufficient orders of magnitude that mathematically, a power law is observed and scientifically, it verifies that bitcoin is a system that is extremely unlikely to deviate from its path – even though it is volatile observed over a short time span.

In fact, over the time it’s existed, bitcoin has risen in value faster then anything in human history. This is because in terms of energy (work) input, relative to monetary output, it is the most efficient system ever invented. There is no second best system. I guess the millionaires just haven’t caught up yet. This is due to being too busy to do the 100, then 1000 hours of work required to understand it for yourself, albeit easily summarised in a few paragraphs here. They’re obviously too busy. Busy doing what? Under performing bitcoin, that’s what. Amusing isn’t it, when someone points that out? I think so, anyway.

Follow the work of Former Professor of Astrophysics Giovanni Santostasi for a deeper explanation of Bitcoin’s power law correlation, here and MicroStrategy’s Michael Saylor’s explanation of there being no second best* here.

Price on a Log scale but Time on a Linear Scale, with Power Law Corridor trend indicator

*At the time of writing this post, MicroStrategy stock is the only asset to have outperformed bitcoin over every timescale over the past five years

Screenshot from Pricedinbitcoin21.com
Did you like this?
Tip cyberfella with Cryptocurrency

Donate Bitcoin to cyberfella

Scan to Donate Bitcoin to cyberfella
Scan the QR code or copy the address below into your wallet to send some bitcoin:

Donate Bitcoin Cash to cyberfella

Scan to Donate Bitcoin Cash to cyberfella
Scan the QR code or copy the address below into your wallet to send bitcoin:

Donate Ethereum to cyberfella

Scan to Donate Ethereum to cyberfella
Scan the QR code or copy the address below into your wallet to send some Ether:

Donate Litecoin to cyberfella

Scan to Donate Litecoin to cyberfella
Scan the QR code or copy the address below into your wallet to send some Litecoin:

Donate Monero to cyberfella

Scan to Donate Monero to cyberfella
Scan the QR code or copy the address below into your wallet to send some Monero:

Donate ZCash to cyberfella

Scan to Donate ZCash to cyberfella
Scan the QR code or copy the address below into your wallet to send some ZCash:

Run your own Bitcoin Node with Umbrel

Bitcoin adoption is occurring five times faster than Internet adoption in the mid nineties. For most who buy, store, spend and trade their Sats, they use a custodial service such as Coinbase, Binance, Crypto.com etc.

The thing is, those custodians are not actually looking after your bitcoins at all, since the bitcoins are simply UTXOs on a decentralised, distributed blockchain. No bitcoins enter the blockchain from outside and no bitcoins leave it. The blockchain is a closed system, albeit open, permissionless, censorship resistant, and all that good stuff.

So what are they looking after? Well, the private key that accesses the bitcoins that you have purchased. The likelihood is, that your balance is simply a query of a centralised database, sat in a cloud service providers data centre and the private key to the exchanges balance is theirs, not yours. So other than a way of having exposure to the bitcoin digital assets price movement, it’s kind of missing the whole point of bitcoin being a peer to peer digital currency with no intermediaries since you’re not custodian of the private keys to your own bitcoin balance on the blockchain.

Also, in order to transact, you need an intermediary validator node. That maybe the crypto wallet custodian service provider or maybe they themselves use another third party node service provider. The point is, you don’t know and all of a sudden we’ve gone from being “self sovereign bitcoiners” to just being clients of a crypto bank with an unknown number of intermediaries confirming and validating and tracking and approving (or not), our “peer to peer” bitcoin transactions. And bitcoins open and permissionless design just got regulated to require KYC. So you’re handing over all kinds of documentation, most likely to an unregulated foreign corporate who in return lets you query their centralised database of customers bitcoin balances based on how much bitcoin they sold to you. It’s not ideal is it?

The first step in upping ones game (and massively upping the level of responsibility) is to host your own private keys to your non-KYC bitcoin address using a hardware wallet, and very very very securely storing the recovery phrase to the private key such that every kind of natural disaster is accounted for. With bitcoin, its easy to store your wealth in a seizure resistant way, but its also easy to put yourself on the other side of bitcoins security if you lose the ability to access your own wallet over 5, 10, 15 or 50 years. So bear that in mind too.

Even hosting your own private keys still requires you to use software client from a company such as Ledger, Trezor etc to provide the full node needed to validate and confirm your transactions, even though you now verify the transactions yourself using the hardware wallet device.

So the next level of self sovereignty means running your own node. There are two easy ways to do this.

  1. Run bitcoin core software on a linux machine or a windows machine and wait until the full blockchain has been synchronised to your local storage.
  2. Run Umbrel – a comprehensive suite of “apps” running on a raspberry pi or a linux host, including a bitcoin core node and lightning node (by default).

In order to get umbrel up and running the quickest and easiest way (and lowest power way), I’d recommend a raspberry pi with very fast and large microSD card, at least 4GB RAM (8GB better if you intend to run many of the other apps available in the Umbrel App Store) and a 1TB minimum NVME external storage device to house the 600GB bitcoin blockchain.

I use a raspberry pi 400 with 4GB RAM and run Bitcoin Core and Lightning nodes, Samourai Dojo Server, Tailscale VPN, Pi-Hole and Bitfeed. And it runs very nicely indeed.

Getting up and running was a five minute job – no, it really was I swear, which makes it all the more tragic that people aren’t running their own bitcoin nodes. Plenty of people run their own media centres and nas storage at home, and running your own bitcoin node is no more difficult. Umbrel have made this super easy to do.

  1. Download the sd card image from Umbrel

Follow the wizard all the way through. I used Raspberry Pi Imager to write the image file to the sc card, same as I would with any other Pi image, but Umbrel recommend a different one. You do you, but I’d recommend one or the other since I know they both work.

Then plug in your 1TB NVME Storage device, pop the sd card in the Pi, connect it to your network with a cable rather than wifi and power it up (use a proper pi power supply).

After a short while, you’ll be able to access http://umbrel.local from a laptop or desktop on your network and watch umbrel getting itself ready, then you can go through the motions of creating the bitcoin core wallet etc using the easy to use GUI. Make a note of all the bitcoin recovery phrase words just as you would with your hardware wallet.

The bitcoin blockchain will start to sync and will take a few days probably since its not just the download of lots of little files, but also the verification that they’re all present and correct (cryptographically verified accordingly).

While the bitcoin blockchain is syncing though, you can enable 2FA in the Setting and Install the other apps available in the app store.

Be sure to enable 2FA in Umbrel’s admin console, just as you would with a custodian cryptocurrency wallet provider!

I’d definitely recommend Tailscale VPN so that you can get to your node using your phone or laptop from anywhere in the world as if its on your local lan. Once installed, log on using a google account (other options available too) and see all the devices on your network and the IP addresses you need to access them by logging into https://login.tailscale.com/admin/machines

You can still run this at the same time as connecting to ExpressVPN if you’re using public Wi-Fi too. It’s “as well as” rather than “instead of”.

I’d also recommend pihole. It replaces the DHCP server and thus your primary DNS server on your LAN so provide Ad protection to your entire network.

Check out the Umbrel App Store from your Umbrel Node’s admin page for the other apps available, such as BTCPay Server to send invoices and receive bitcoin payments and also Samourai Dojo Server so that you can connect your Samourai BTC wallet app on your mobile device to your own bitcoin node if you use Bitcoin’s CoinJoin privacy feature that the Samourai wallet provides.

It’s really quick and easy to get all this up and running. I did it in a couple hours and everything just worked. I have to say, I’m very impressed.

Be sure to take a good solid set of notes as you go along, because you need to know how to recover all of this in the event your Pi or NVME block storage device goes pop!

You should only store enough bitcoin on your Umbrel wallet that you’d be prepared to loose. Your main stack should be kept in cold storage and moved to Umbrel and and when you need to open a lightning channel or make a transaction. Umbrel is considered Beta software, but it’s a very well polished offering already and will only get bigger and better as more products are included in the app store.

Welcome to the new era of the decentralised internet!

Upgrade to version 0.5.0

A new upgrade and the biggest Umbrel upgrade yet has just been released today (7/6/2022). I’ve logged on to my Umbrel node using the Tailscale address, backed up my channels as prompted and clicked on Upgrade…

New containers are initially downloaded
Old containers are then removed
A new welcome screen welcomes me back to my newly upgraded Node
A new desktop replaces the previous dashboard
Bitcoin Node app

Everythings running fine.

Update: I discovered this excellent tutorial on setting up Lightning. I highly recommend it, although setting an alias for your lightning node isn’t easy like it once was. I managed to crash my Umbrel node trying to change it -and from 2.5 hours away. D’oh! I Have No Idea What I’m Doing: Lightning on Umbrel⚡️ | Stonly

Running Multiple Lightning nodes on Umbrel

There are a handful of ways of managing a lightning node but two of the most popular ways are using ThunderHub and/or Ride The Lightning.

Each of these two tools runs on a different Lightning Node base however. One using c-Lightning (Core Lightning) and the other using Lightning Network Node (LND), so if you install both these tools, you’ll have two separate lightning nodes running on your Umbrel Personal Server, not one.

Bitcoin and Lightning Node Technology Stack

Whilst this might be slightly irritating, it does come with an advantage that you can create a channel between them and play around with liquidity before venturing out into the bigger lightning network.

Image
Bitcoin Lightning Network visualisation
Did you like this?
Tip cyberfella with Cryptocurrency

Donate Bitcoin to cyberfella

Scan to Donate Bitcoin to cyberfella
Scan the QR code or copy the address below into your wallet to send some bitcoin:

Donate Bitcoin Cash to cyberfella

Scan to Donate Bitcoin Cash to cyberfella
Scan the QR code or copy the address below into your wallet to send bitcoin:

Donate Ethereum to cyberfella

Scan to Donate Ethereum to cyberfella
Scan the QR code or copy the address below into your wallet to send some Ether:

Donate Litecoin to cyberfella

Scan to Donate Litecoin to cyberfella
Scan the QR code or copy the address below into your wallet to send some Litecoin:

Donate Monero to cyberfella

Scan to Donate Monero to cyberfella
Scan the QR code or copy the address below into your wallet to send some Monero:

Donate ZCash to cyberfella

Scan to Donate ZCash to cyberfella
Scan the QR code or copy the address below into your wallet to send some ZCash:

Installing Tailscale VPN client on Linux

Tailscale is a very slick, free VPN solution that places all your devices inside your home LAN, even when you’re out and about.

Each device is assigned an IPv4 address so you can communicate with all the devices and services in your home network from anywhere.

The client for Android is available in the Play Store.

The commands below get you up and running on your Linux Mint 20.3 and/or Ubuntu 20.4.5.

curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyr
ing.gpg >/dev/null
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailsca
le.list
sudo apt-get update
sudo apt-get install tailscale
sudo tailscale up
tailscale ip -4

Tailscale is free to use for personal use and is available in the Umbrel App Store, if you’re running your own Umbrel Bitcoin and Lightning Validator Node and want to connect your wallet to it from anywhere.

Once installed, log in here to see all your tailscale connected devices.

The Umbrel app store also contains Samourai Dojo Server so you can connect your Bitcoin Samourai wallet to your own Dojo Server and perform transactions privately using Bitcoin’s CoinJoin privacy feature.

Did you like this?
Tip cyberfella with Cryptocurrency

Donate Bitcoin to cyberfella

Scan to Donate Bitcoin to cyberfella
Scan the QR code or copy the address below into your wallet to send some bitcoin:

Donate Bitcoin Cash to cyberfella

Scan to Donate Bitcoin Cash to cyberfella
Scan the QR code or copy the address below into your wallet to send bitcoin:

Donate Ethereum to cyberfella

Scan to Donate Ethereum to cyberfella
Scan the QR code or copy the address below into your wallet to send some Ether:

Donate Litecoin to cyberfella

Scan to Donate Litecoin to cyberfella
Scan the QR code or copy the address below into your wallet to send some Litecoin:

Donate Monero to cyberfella

Scan to Donate Monero to cyberfella
Scan the QR code or copy the address below into your wallet to send some Monero:

Donate ZCash to cyberfella

Scan to Donate ZCash to cyberfella
Scan the QR code or copy the address below into your wallet to send some ZCash:

Fix Ledger Nano X USB connection issues on Linux

Ledger Nano X Review (2022) - Is the Ledger Nano X Safe?

ADD THE NECESSARY UDEV RULES

wget -q -O - https://raw.githubusercontent.com/LedgerHQ/udev-rules/master/add_udev_rules.sh | sudo bash

https://support.ledger.com/hc/en-us/articles/115005165269-Fix-USB-connection-issues-with-Ledger-Live?support=true

Did you like this?
Tip cyberfella with Cryptocurrency

Donate Bitcoin to cyberfella

Scan to Donate Bitcoin to cyberfella
Scan the QR code or copy the address below into your wallet to send some bitcoin:

Donate Bitcoin Cash to cyberfella

Scan to Donate Bitcoin Cash to cyberfella
Scan the QR code or copy the address below into your wallet to send bitcoin:

Donate Ethereum to cyberfella

Scan to Donate Ethereum to cyberfella
Scan the QR code or copy the address below into your wallet to send some Ether:

Donate Litecoin to cyberfella

Scan to Donate Litecoin to cyberfella
Scan the QR code or copy the address below into your wallet to send some Litecoin:

Donate Monero to cyberfella

Scan to Donate Monero to cyberfella
Scan the QR code or copy the address below into your wallet to send some Monero:

Donate ZCash to cyberfella

Scan to Donate ZCash to cyberfella
Scan the QR code or copy the address below into your wallet to send some ZCash:

Ethereum Private Blockchains.

This post contains the steps to setup a private Ethereum blockchain.

First, you’ll need a Linux vm. Please note that this post assumes a medium/advanced level of knowledge. As such, it will be much more succinct than most posts in other categories.

INSTALL ETHEREUM

sudo apt-get install software-properties-common
Add the ethereum repository: sudo add-apt-repository -y ppa:ethereum/ethereum
Update the package list and upgrade entire system
Install Ethereum.

CREATE DIRECTORY TO STORE THE BLOCKCHAIN

Create a directory to store the blockchain

CREATE TWO ACCOUNTS

Create first account
Create second account

CREATE GENESIS BLOCK

{
  "config": {
    "chainId": 15,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 0,
    "petersburgBlock": 0,
    "ethash": {}
  },
  "difficulty": "1",
  "gasLimit": "8000000",
  "alloc": {
    "0x849b1448F8Cca9F3BCeE21F1ebcC1545f12b8e25": { "balance": "300000" },
    "0x140DBCb0eC85B62A66aCBf52DeEFd9F01abCc22A": { "balance": "400000" }
  }
}

INITIALIZE THE GENESIS BLOCK

Add the accounts created into the genesisblock.json file and initialize the blockchain with the following command…

geth -datadir="/home/matt/privatechain" init "/home/matt/privatechain/genesisblock.json"

If your genesisblock.json file is correctly written, the block will initialize with “Successfully wrote genesis state” message.

CHAINDATA AND LIGHTCHAINDATA

The chaindata and lightchaindata directories in geth indicate that your blockchain network has been created.

cd into ~/privatechain/geth and you’ll see chaindata and lightchaindata subdirectories
The genesis block.

MINING THE BLOCK

geth -datadir “/home/matt/privatechain” -mine

While the first block is being mined, ethers will be being added to your address. It may take a while depending on your parameters set in your genesisblock.json file

Typical output seen during mining

Now that mining has begun, you can see the new files that have appeared in the privatechain filesystem

geth.ipc transactions.rlp and the .ldb database files appear once the genesis block has been mined

SUMMARY

The steps performed above can be summarised as follows.

You can stop the mining process using the miner.stop() command

SMART CONTRACTS

“Smart contracts” is the name to describe a program that is compiled to execute on the blockchain network. Such programs running on Ethereum blockchains are written in the Solidity language.

SMART CONTRACT DEVELOPMENT ENVIRONMENT

Download ganache from here

It’s an .appimage weighing in at around 146MB. TruffleSuite Ganache is produced by ConsenSys Software Inc.

The TruffleSuite Ganache Downloads page.

chmod +x the ganache appimage file and execute it.

chmod +x ganache to allow execution of it

GANACHE

Enable/Disable analytics and click Continue
Click on Quickstart
Change Port Number to 8545 for use with Metamask or Brave Crypto Wallet Browser extension
Enable Crypto Wallets in Brave Browser
Click the option to Restore a Local Wallet

Enter the seed phrase from Ganache into the Seed phrase field in Brave

Copy and Paste this into the Restore Seed Phrase field in Brave Crypto Wallet Restore and set a new password for the wallet.
Once your wallet is displayed, change the Ethereum MainNet to Localhost:8545 to connect to the Ganache private blockchain.

Connect to the local Ethereum blockchain network on port 8545 (Ganache’s internal eth network) and you’ll see an initial balance of 100 ETH tokens.

Click on the coloured icon next to Localhost:8545 and Import a Wallet

In Ganache, click on the Key icon on one of the wallets (choose the 2nd one in the list of pre-configured wallets). Copy and Paste the private key into the Import screen shown above.

Copy and Paste the private key of the first ganache ethereum wallet into the Browser Crypto Wallet Importer
You’ll import the 2nd wallet, so now Brave displays the balance of the first and second Ganache wallets. Ganache comes with a few more wallets for you to play with in your private ethereum development network.

You can see in the screenshot above, two Accounts have been imported, each with a balance of 100 ETH tokens. You can import as many of the ETH wallets from Ganache as you like/need for your Solidity Smart Contract project.

Since Ganache is connected to our local private blockchain running on our localhost on port 8545, you can see the details of the genesis block in the BLOCKS section

REMIX SOLIDITY IDE

Next we need an IDE for creating code when developing, compiling and deloying Solidity smart contracts that will use our connected wallets to pay the gas fees required to store the smart contract on our private blockchain. Remix is a web-based IDE for this purpose.

The web based Remix IDE for Solidity smart contracts running on Ethereum blockchains.
Click on the Deploy and Run Transactions icon (shown) in the left-most panel, select Injected Web 3 and it’ll attempt to connect to your Brave Crypto Wallet. Tick the ETH wallet you want it to use and Authorise the connection of the wallet to Remix. Note that any actual transactions invoked when deploying compiled smart contract code as byte code to the private blockchain will still require manual authorisation by the wallet owner.
Note that none of the pre-defined smart contracts have yet been compiled into bytecode so cannot be executed using our connected wallet.
Click on the Compiler icon (shown) in the left-most panel and compile the smart contract.
The successfully compiled files can be deployed.

Compile all the scripts 1_Storage, 2_Owner, 3_Ballot and 4_Ballot_Test files. Deploy the 4_Ballot_Test file.

CONFIRM TRANSACTIONS

The connected wallet will prompt for a confirmation for the transaction.

The transactions in the smart contract will require confirmation by the owner of the connected wallet before being submitted to the private blockchain we created earlier where they’ll be mined.

AUDIT TRANSACTIONS STORED IN MINED BLOCKS

The genesis block and our two transactions above can be seen in the BLOCKS tab in Ganache.

In Ganache that we connected to our local private Ethereum blockchain, you can click on the BLOCKS section and see the mined blocks that contain our recent two transactions, the date stamp of the transaction and gas used.

Click on the transactions button for each mined block to see the details of the transaction in that block.
You can view the transactions in the TRANSACTIONS section if you don’t know what BLOCK contains it in the BLOCKS section.

SUMMARY

So far, we have…

Installed Ethereum

Created a private Ethereum blockchain on our localhost

Initialised the private blockchain

Mined the Genesis block in our private blockchain

Installed Ganache and connected it to our private blockchain

Imported two of the ETH wallets in Ganache to our Web Browser’s crypto wallet extension

Connected to Remix Solidity Smart Contract IDE

Connected Remix to one of our ETH Wallets

Compiled some Solidity Code Smart Contracts

Deployed the BallotTest smart contract to our private blockchain, confirming the transactions and accepting the gas fees.

Audited the mined blocks containing our transactions in Ganache

EXTRAS

The other smart contracts were compiled and deployed, and new blocks containing those transactions show up in Ganache.

The blocks in our private blockchain
The transactions in the blocks on our private blockchain
The transaction data contained in the contract creation transaction
The resulting balance in our connected ETH wallet used to pay the gas fees on the network
The transactions in our wallet.

FINAL WORD

Note that all this information is referenced from the same blockchain, instead of the necessity of trusted third parties storing the same data in multiple places that could be changed and a conflict introduced into the history of the transactions in potentially mismatched ledgers. In addition to having an accurate central ledger that all parties reference, we can introduce more nodes in our network that each maintain a copy of the same blockchain.

The public ETH network that maintains the main net has many thousands of ETH nodes. It is this decentralised consensus that gives the value to blockchain, along with public keys being used to verify that the parties transacting have the necessary funds without revealing the private keys necessary to unlock those funds to the public internet.

The input and outputs between the wallet addresses are performed by the closed network, keeping everybody safe. The issuance of new coins is also controlled by the network to prevent abuse of the inflation rate that could affect the purchasing value of the tokens by driving the value down by diluting the supply ad infinitum (hyper inflation caused by excessive quantitative easing, effectively) .

Did you like this?
Tip cyberfella with Cryptocurrency

Donate Bitcoin to cyberfella

Scan to Donate Bitcoin to cyberfella
Scan the QR code or copy the address below into your wallet to send some bitcoin:

Donate Bitcoin Cash to cyberfella

Scan to Donate Bitcoin Cash to cyberfella
Scan the QR code or copy the address below into your wallet to send bitcoin:

Donate Ethereum to cyberfella

Scan to Donate Ethereum to cyberfella
Scan the QR code or copy the address below into your wallet to send some Ether:

Donate Litecoin to cyberfella

Scan to Donate Litecoin to cyberfella
Scan the QR code or copy the address below into your wallet to send some Litecoin:

Donate Monero to cyberfella

Scan to Donate Monero to cyberfella
Scan the QR code or copy the address below into your wallet to send some Monero:

Donate ZCash to cyberfella

Scan to Donate ZCash to cyberfella
Scan the QR code or copy the address below into your wallet to send some ZCash: