Coder Proposes Alternative to Bitcoin’s ‘Notoriously Unreliable’ Testnet

code-notes
18 July 2019

Introduced Wednesday, a new proposal called Signet offers a fresh alternative to bitcoin’s test network.

The software plays a crucial role for developers, serving as a place where they can test their apps, to make sure they work reasonably well on the network by putting only test money on the line. Further, protocol developers can use it to test the viability and safety of big changes to bitcoin, such as Segregated Witness, one of the best-known and largest-scale bitcoin changes.

But bitcoin’s current testnet, which has been around in its current form for years, has its share of problems. In a new Bitcoin Improvement Proposal (BIP) posted to the bitcoin developer email list, Bitcoin Core contributor Karl-Johan Alm goes as far as to call it “notoriously unreliable.”

He hopes to change that with a new type of testnet for bitcoin that gets around the old testnet’s problems.

Alm told CoinDesk:

“Signet is like bitcoin, but it is completely centralized and controlled by one or several people. These people have to sign a block for it to actually be valid.”

Many of the problems with the testnet have to do with mining blocks, which is more erratic on the testnet than on the real bitcoin network. A few of the problems, Alm argues in the BIP, are: “Huge block reorgs, long gaps in between blocks being mined or sudden bursts of blocks in rapid succession mean that realistic testing of software, especially involving multiple independent parties running software over an extended period of time, becomes infeasible in practice.”

“Reorgs” are when one block is replaced with another block.

To a degree, this happens naturally in bitcoin because it’s a distributed network with nodes scattered all over the world, so it takes a bit of time for the nodes to come to agreement on block and transaction history. If two blocks are broadcast at about the same time from different parts of the network, one block might seem valid to some of the network, and another block valid to the rest of the network. So, the network needs some time to reconcile these conflicting blocks.

The problem is that this event happens much more frequently – and on a larger scale – on the test network.

“The goal is not to be perfectly reliable but rather to have a predictable amount of unreliability. You want a test network to behave like mainnet (i.e. no thousands of block reorgs) while also making it easier to trigger expected but rare events like a 6-block reorg,” the BIP explains.

As a centralized testnet alternative, Signet would help to alleviate these types of problems.

“Signet helps prevent these problems because the signer is fixed. Making blocks can be pretty cheap because you don’t compete with anyone, and there is no security issue with a low hash rate since nobody else has the private keys. Since the network is highly coordinated, reorgs will basically never occur, except if the network operators want them to,” Alm told CoinDesk.

Though there is a test Signet live already, his next goal is to get support for the change merged into Bitcoin Core, so that people can use it like the current testnet. In the proposal, Alm also linked to a rough draft Signet code implementation that other developers can test.

Hackers via CoinDesk archives