Introducing the Internet Computer ‘Badlands’ Concept
A technical pre-post for those interested in the Badlands concept.
Everyone, please note: this is a technical pre-post for those interested in the Badlands concept, rather than a formal post announcing details of the project. There are several competing demands on the teams developing the Internet Computer ecosystem at the moment, including work currently underway to directly integrate the network with Ethereum and Bitcoin using “Chain Key” cryptography. Providing opportunities for amateur node providers remains an important objective, so I’m sharing this post today to provide opportunity for community discussion.
Badlands is a concept that involves applying Internet Computer technology to create a new network supported by amateur node providers from home, using low cost devices, that creates the maximum possible level of decentralization and censorship resistance for smart contracts. It will act as an extension of the Internet Computer, and be fully interoperable, but have different properties.
Whereas the node machines in the Internet Computer network have high minimum specifications and can cost more than $10,000, the node machines used in the Badlands network will standardize around special Raspberry Pi configurations, and cost less than $250.
The purpose of the Internet Computer is to facilitate a “blockchain singularity” in which nearly all systems and services can be rebuilt using smart contacts and run entirely from public blockchain in reimagined form — i.e. to create a future where where every system and service can run from blockchain. Because smart contracts are a new form of software whose advantages will become overwhelming, we believe this future is inevitable. For example, smart contracts run on public networks, rather than proprietary services such as clouds, are tamperproof with no need for firewalls to protect them, are unstoppable, easily composable in unlimited combinations creating network effects, can process value in the form of tokens, and can be made autonomous. Using smart contracts on the Internet Computer, you can implement decentralized financial systems, social media, SaaS services, enterprise systems, and much more (note: on the Internet Computer, smart contracts are also called “canisters”, or sometimes “canister smart contracts”).
‘The Internet Computer for Geeks’: A New DFINITY White Paper
The IC overcomes the limitations of traditional blockchains and smart contracts for better speed, storage costs…
To surmount the challenges that limit smart contracts on traditional blockchains, a massive R&D effort was undertaken to produce the Internet Computer, which is ongoing today, and blockchain architecture had to be rethought from the ground up. The Internet Computer can scale its capacity and throughput, which is now continually increasing as its network grows, runs smart contracts at web speed so that all manner of systems can be created, with efficiency approaching legacy tech, and supports smart contracts that serve secure interactive web experiences directly to end users from the blockchain (e.g. see https://dscvr.ic0.app/), which frees dapp developers from the need to incorporate insecure websites hosted on centralized cloud services to interact with end users, as is the prevailing practice in blockchain today.
The Internet Computer network’s focus on enabling blockchain singularity by blowing past speed, scaling and efficiency limitations, to broaden its application, has meant that the “node providers” who operate the special “node machines” that host its network from traditional data centers today are primarily professional actors. Moreover, each node provider is identified to the network’s governance system, which is called the Network Nervous System, rather than being anonymous, which allows the governance system to structure the network in a way that reduces the replication of smart contract computations and data to increase efficiency, without reducing security, by dividing responsibilities amongst nodes that have known levels of independence (this technique is referred to as “deterministic decentralization”).
In the Badlands vision, the same technology is applied, but in a network where node providers are individual people, and they remain completely anonymous. As described in the following, individuals will attend “people parties”, which grant them the right to add exactly one additional node every quarter.
What will Badlands add to the Internet Computer
The purpose of Badlands will be to allow smart contracts to be hosted upon a network with the maximum conceivable level of decentralization, which anonymous amateurs will provide, with a low barrier to entry, and the maximum conceivable resistance to censorship. This network will have a different ethos, and will be more of a “Wild West” for smart contracts with lower throughput and storage requirements, but nonetheless host smart contracts developed using exactly the same software development toolchain as used on the Internet Computer, and require similar skills from its node providers.
It has not yet been determined whether Badlands should be a separate sister blockchain that is interoperable with the Internet Computer (in which case, a BDL token genesis ledger would be created that replicates the ICP token ledger at the time of launch), or the Internet Computer should just support a new kind of “Badlands subnet blockchain”. In the following, I am assuming that Badlands is implemented as a separate network. Whichever way the implementation goes, Badlands will operate as an extension to the Internet Computer.
Badlands will have several unique advantages, but will also involve numerous tradeoffs relative to the Internet Computer network.
- The minimum hardware specification of node machines will derive from a configuration of a low-cost Raspberry Pi computer to enable as many amateurs to participate as possible. This will greatly decrease the maximum throughput and speed of individual smart contracts.
- Nodes machines run by amateurs will be less reliable, so the network will need to significantly increase the replication of smart contract computation and data to achieve the required levels of resilience and security. This will reduce the efficiency with which smart contracts are hosted, increasing costs, and also reduce the speed at which they are finalized.
- It may be necessary to shield the network activity of node machines running from the homes of participants from ISPs using Tor-like networks, which will also impact speed and efficiency. This is yet to be determined.
- If the Badlands network experiences a serious technical issue in extremis that requires manual intervention by node operators, for example to push a software update onto a stalled node device (during normal operation the network will automatically update node software, like on the Internet Computer), since amateurs will naturally respond less quickly than professional node providers, the duration of potential interruptions of service will possibly increase.
- It will not be possible for Badlands to host smart contracts in a manner that provides any degree of privacy for their computations and data, since the data will be replicated many times, and the node hardware used will not include technology that can protect the privacy of the data they process from those with access to the device, such as SEV-SNP (although this is also the case for nearly every blockchain in production today other than the Internet Computer).
The unique advantages of Badlands are as follows:
- It will benefit from the maximum conceivable level of decentralization and censorship resistance, something that is held in great esteem by the blockchain community.
- It will have its own Network Nervous System (the permissionless governance system hosted by the Internet Computer that manages and updates the network), and this will exert the will of its community in accordance with its mission and ethos, guaranteeing a more traditional “code is law” environment.
- Even though Badlands will not be nearly as fast or efficient as the Internet Computer, it will utilize the same protocol and code, and therefore still be able to scale its capacity, serve interactive web content, interoperate with other blockchains, and run fast by traditional standards.
- It will be fully interoperable with the Internet Computer main network.
- It would be very difficult to destroy without turning off the internet (assuming nodes disguise their traffic).
- It will introduce amateurs and enthusiasts to being node providers, who may then graduate to becoming professional or semi-professional node providers in the primary Internet Computer network, which is a more expensive and involved endeavor.
The sweet spot for Badlands will be hosting smart contracts that don’t require the efficiency and speed and uptime provided by the Internet Computer — as would, say, a blockchain social network, chat application, or realtime financial exchange. It will provide a Wild West for smart contracts that can directly interoperate with smart contracts on the Internet Computer. It will provide a place for those that aim to host smart contracts on a network with the maximum possible level of decentralization, while allowing amateurs to inexpensively operate nodes from home.
People parties where 1 human becomes 1 node
To efficiently add capacity to its network, the Internet Computer forms new “subnet blockchains”, which Chain Key cryptography combines into one blockchain, by combining node machines that have some expected degree of independence. Today, this is made possible through the collection of the actual identity of node providers, and additional information about their nodes, such as the data centers in which they are installed, the geographical location of the data center, and the jurisdiction in which the data center is located.
Subnets are created by submitting proposals to the Network Nervous System that combine nodes that are run by independent node providers, from different data centers, with additional decentralization considerations made regarding geography and jurisdiction. This maximizes security because blockchain protocol math relies for its correct operation upon assumptions about the independence of participants.
Badlands needs to achieve the same result when node providers — those adding and running nodes — are anonymous amateurs. The Badlands solution to this problem involves “people parties” that will take place around the world on the same day at approximately the same time every calendar quarter.
An individual wishing to add a new node to the network must attend a people party in person. Since a human being can only physically attend one party at once, each person will only be able to add a single node, and the network can safely therefore infer that the nodes added each quarter were added by separate individuals, then combining so added nodes to form new subnet blockchains by choosing nodes that could not have been added by the same person — in an adaptation of the scheme used by the Internet Computer.
Each node machine added to an Internet Computer network is identified by a public key, for which it maintains a corresponding private key that it uses to cryptographically sign messages, so that other nodes in the network can validate it was the author. To add a new node machine to the blockchain network, it is necessary to add its public key to the master registry (“ledger”) of nodes identities that the network hosts.
This is what people parties make possible.
In order to add a new node to the network, an attendee must install a special app on their phone that contains its public key identity and the corresponding private key. This app enables them to play the role of applicant, who seeks to have a public key authorized through the collection of notarization signatures from of other attendees, and a notary, who helps authorize other people’s public keys. During this process, the phones involved must have WiFi and data switched off, which makes it possible for applicants to prove they hold copies of the private keys involved on the devices in their possession — and that the keys, say, do not in fact reside on a remote server operated by a dishonest party that has paid people to attend the party add nodes on their behalf. Since network connectivity cannot be used, QR codes are used to transmit interactions between the phones using their screens and cameras.
To initiate the process of notarizing an applicant’s public key, a notary presents the applicant with a “challenge message” that is displayed on their screen as a QR code. The applicant then uses their app to scan the challenge message, and produce a signature upon it using their private key, which is then transferred back in the same manner. The notary’s app then validates the signature on their challenge, and if it validates, signs the public key inside the signature, which then acts as a notarization that is transferred back to the applicant in the same way.
Proceedings are essentially as follows. The party organizers arrange all attendees into a circle, from which applicants are drawn in sequence clockwise The current applicant then proceeds around the circle obtaining notarizations from the other attendees.
Every participant may pass around the circle only once, and must collect a minimum number of notarizations from the other attendees in order to submit the public key of their new node to the registry of the network. If attendees detect that an individual is cheating, they must eject them from proceedings immediately, since unless they all collect a sufficiently similar number of notarizations, or suspicious events are reported, all the public keys added through their party might be rejected by the network.
In this way, each quarter, anonymous individuals may attend people parties to add exactly one new node machine to the network, providing the foundations for the maximum conceivable level of decentralization in a blockchain to be achieved.
Rewards and node slashing
In contrast to traditional blockchains in which participants compete to produce blocks and earn rewards by performing the most hashing (Proof-of-Work), or produce blocks in proportion to the quantity of some cryptocurrency that has been staked (Proof-of-Stake), the Internet Computer rewards each node machine in equal amounts every fixed time interval in return for their correct participation in the network. To ensure that node providers meet the minimum standard node hardware specifications, and correctly host their nodes, for example supplying sufficient bandwidth, the Internet Computer community monitors nodes for “statistical deviation”, which it can report to the Network Nervous System for remedy. A node that is correctly participating should successfully produce roughly the same number of blocks as the others in its subnet. If a node statistically deviates by producing fewer blocks (or deviating in some other problematic way), this can be taken as faulty behavior, and result in the NNS executing punishments including reductions in the rewards waiting to be paid, or for serious deviation, permanent removal of the node from the network (slashing).
When Raspberry Pi based node devices are run over home internet connections, there will naturally be a much greater variance in their performance. A key task involved in fettling the network will be determining the acceptable levels of deviance. Badlands node providers may need to upgrade their routers, and configure them with traffic shaping, to ensure that they continue to function as expected when, for example, video streaming is taking place. It will undoubtedly be the case that many node providers struggle, and it will be for the community to decide upon what constitutes the required performance to produce a well functioning network. Since a higher level of deviance must be accepted, Badlands could also potentially introduce an adaptation, where a proportion of the rewards disbursed to nodes for each time interval they are running relate to their relative rates of block production, to incentivize best behavior.
Bootstrapping Badlands: a potential win-win
The easiest way to implement Badlands is as a separate chain, rather than a new kind of Internet Computer subnet. This is would avoid dealing with some tricky impedance mismatches between the differing node and security models, and provide for a unique governance ethos to be pursued. The Internet Computer code base could be re-applied almost unchanged, and become a common code base for two directly interoperable blockchains. The new network would receive its own BDL ledger, with the BDL token acting as the governance token within the Badlands network’s own Network Nervous System.
If this approach were taken, then the genesis BDL ledger might be initialized by taking a copy of the ICP ledger, providing each holder of ICP with an equivalent number of BDL. The DFINITY Foundation would then sell BDL derived from its ICP endowment to raise funds to run people parties around the world and bootstrap the community, the technical costs involved in launching a new network, and the costs of any bespoke R&D work that must be performed.
Arguably, this approach could be a win-win in many respects.
Badlands would carve out a very different, non-competitive niche, running on Raspberry Pi node devices over home internet connections, where node providers are real but anonymous individuals who are strictly limited in how many nodes they can add each year. The network would be far less capable, but take decentralization to the logical limit, hosting smart contracts inside an environment with a different ethos. Nonetheless, the chains would be directly interoperable, such that smart contracts on the different networks could call each other, and BDL could be exchanged with ICP on the Internet Computer, and then liquidated on financial exchanges where desired. Essentially it would extend and augment the Internet Computer ecosystem, in much the same way its forthcoming direct integrations with Bitcoin and Ethereum using its Chain Key cryptography will.
For such reasons, Badlands will create its own value, while also adding value to the Internet Computer by extending its ecosystem, and providing an on-ramp for amateur enthusiasts interested in graduating to professional node provision in the Internet Computer network. Both chains would continue to share the same code base, and require the same skills from participants, expanding the leverage provided by ongoing R&D efforts, and from expertise gained by the community, which will be now apply to two chains. Meanwhile, the assignment of BDL tokens to ICP holders at genesis could potentially deliver a surprise side serving of new value.
I’m looking forward to Badlands discussions among the Internet Computer community in the coming months.