That opportunity may not last. Huffman, who is also a former utility executive, argues that ever-cheaper power rates in other states, like California, could undercut the basin’s appeal to blockchain miners, who may begin to look for other places to mine. For that reason, Huffman argues that the basin should be actively recruiting more miners, even if it means importing power. “I think there’s a window here,” Huffman says, “and it’s unknown how long that window will be open.” Yet he, too, knows that any such talk will lead to criticism that the basin is yoking its future to a volatile sector that, for many, remains a chimera. “Some folks think that bitcoin is just a scam,” Huffman concedes. “And in the conversation, you usually don’t get past that.”
When you pay someone in bitcoin, you set in motion a process of escalating, energy-intensive complexity. Your payment is basically an electronic message, which contains the complete lineage of your bitcoin, along with data about who you’re sending it to (and, if you choose, a small processing fee). That message gets converted by encryption software into a long string of letters and numbers, which is then broadcast to every miner on the bitcoin network (there are tens of thousands of them, all over the world). Each miner then gathers your encrypted payment message, along with any other payment messages on the network at the time (usually in batches of around 2,000), into what’s called a block. The miner then uses special software to authenticate each payment in the block—verifying, for example, that you owned the bitcoin you’re sending, and that you haven’t already sent that same bitcoin to someone else.
Backtracking a bit, let's talk about "nodes." A node is a powerful computer that runs the bitcoin software and helps to keep bitcoin running by participating in the relay of information. Anyone can run a node, you just download the bitcoin software (free) and leave a certain port open (the drawback is that it consumes energy and storage space – the network at time of writing takes up about 145GB). Nodes spread bitcoin transactions around the network. One node will send information to a few nodes that it knows, who will relay the information to nodes that they know, etc. That way it ends up getting around the whole network pretty quickly.
Cryptojacking and legitimate mining, however, are sensitive to cryptocurrency prices, which have declined sharply since their highs in late 2017 and early 2018. According to a McAfee September 2018 threats report, cryptojacking instances “remain very active,” but a decline in the value of cryptocurrencies could lead to a plunge in coin mining malware, just as fast as it emerged.
To add a new block to the chain, a miner has to finish what’s called a cryptographic proof-of-work problem. Such problems are impossible to solve without applying a ton of brute computing force, so if you have a solution in hand, it’s proof that you’ve done a certain quantity of computational work. The computational problem is different for every block in the chain, and it involves a particular kind of algorithm called a hash function.
This is the most basic version of dividing payments. This method shifts the risk to the pool, guaranteeing payment for each share that’s contributed. Thus, each miner is guaranteed an instant payout. Miners are paid out from the pool’s existing balance, allowing for the least possible variance in payment. However, for this type of model to work, it requires a very large reserve of 10,000 BTC to cover any unexpected streaks of bad luck.
The primary purpose of mining is to allow Bitcoin nodes to reach a secure, tamper-resistant consensus. Mining is also the mechanism used to introduce bitcoins into the system. Miners are paid transaction fees as well as a subsidy of newly created coins, called block rewards. This both serves the purpose of disseminating new coins in a decentralized manner as well as motivating people to provide security for the system through mining.
A specific problem that an internet payment system must solve is double-spending, whereby a user pays the same coin to two or more different recipients. An example of such a problem would be if Eve sent a bitcoin to Alice and later sent the same bitcoin to Bob. The bitcoin network guards against double-spending by recording all bitcoin transfers in a ledger (the blockchain) that is visible to all users, and ensuring for all transferred bitcoins that they haven't been previously spent.:4
Transactions are defined using a Forth-like scripting language.:ch. 5 Transactions consist of one or more inputs and one or more outputs. When a user sends bitcoins, the user designates each address and the amount of bitcoin being sent to that address in an output. To prevent double spending, each input must refer to a previous unspent output in the blockchain. The use of multiple inputs corresponds to the use of multiple coins in a cash transaction. Since transactions can have multiple outputs, users can send bitcoins to multiple recipients in one transaction. As in a cash transaction, the sum of inputs (coins used to pay) can exceed the intended sum of payments. In such a case, an additional output is used, returning the change back to the payer. Any input satoshis not accounted for in the transaction outputs become the transaction fee.