Now that I have a framework to look at blockchain niches, I want to logically model the various components of blockchain networks.
Every blockchain network can be broken down into the following components: entities, client software, mining network, and ledger.
Entities do not transact directly, but via the network. Each blockchain network has a way to identify entities uniquely. This is usually a public-private key pair and by definition unique to the network. Using the same identifiers in different networks causes its own issues, but that is for a different post.
Client software, including wallets and supporting software, allows participating entities to send read/write requests to a mining network. Minimally, all this client software needs to do is to send a syntactically valid transaction to a mining network.
The Mining network is where transactions are added to the chain. Transactions can be added only by a miner, which is compensated for this work. I have modeled a simple miner here.
Finally, the Ledger is THE artifact that describes the blockchain. Like an application has a database, blockchain networks have ledgers. When people refer to network state, they mean an instance of this ledger, either particular version, or its being at a certain time.
Interesting things to note
- Information flows one way, from entities to miners via transactions that are put into a ledger. I am not aware of a blockchain design where data from the ledger is actively sent to client software, in the protocol. (Experts will disagree here by noting that wallets lookup UTXOs assigned to them, they are right in the specific case of miners but, I want to keep this model as general as possible).
- Full nodes verify transactions for themselves but are not paid fees.
- There is no personal information attached to wallets at the protocol level, so an entity can represent one person, zero people (ie., a program) or a bunch of people (company, meetup group, DAO).
- Each entity can trivially create many identities (addresses) using freely available software.
Let’s subject this model to a few constraints
Setup Costs – Client software is easy to set up, a miner not so much. As the gap between them widens, there will be more intermediaries between the mining network and entities that would like to transact via the blockchain.
This also opens up the client software to do things other than just read/write to a particular chain. Most wallets have the ability to transact with more than one network, use public key infrastructure to send signed messages, act as identity credentials etc.
Trading – If blockchains are primary used to trade, then it makes sense to create exchanges that
- talk to multiple blockchain networks
- solve the ‘double coincidence of wants’ problem between entities
- optimize (read minimize) writing to the blockchain which involves paying mining fees
- add client software as part of their user management systems to have a consistent tracking system
- let fiat currencies easily enter the system
This can lead to exchanges holding a lot of network token, which gives them influence in network decisions. There are also very few regulations on reserve requirements and fiduciary duties for purely crypto exchanges.
Decentralization – For decentralization to be a goal, people should build things that
- make it easy for everyone to write directly to the blockchain.
- allow for greater competition between miners
- make p2p trading as easy as interacting with a central exchange
- encourage people to keep a copy of the ledger and verify each incoming transaction
Openness – Each of the components is powered by software defined by the protocol specification. To maximize openness and verifiability
- make the protocol specification public
- Open source the software that runs each component
- let the ledger be publicly readable and cryptographically verified
Privacy – Most blockchain network specifications do not record things like I.P addresses of the entities or their emails. They use a public-private key pair to address entities.
Transaction data is more difficult to keep private, because miners and full nodes have to verify transactions for authenticity. There are a few privacy oriented networks like Zcash or Monero that use cryptographical proofs to verify transactions while preserving privacy.
Combining this component model with the blockchain framework, you can identify under-served niches and build for them.