Updated: Aug 15, 2019
The more people using a currency, the more valuable the currency is. When designing a decentralized currency that is designed to be usable globally, this means that it must be capable of handling global level transactions.
The combined total of transactions processed by credit cards alone is roughly 5000 transactions per second. When you add in Peer-to-Peer payments, and cash, and other transactions that are easier with digital transactions such as smart contracts, and the growth of internet... a blockchain really should be capable of handling 20,000 transactions per second or more.
Meanwhile Bitcoin, currently the most popular blockchain is capable of handling 7 transactions per second. Other newer blockchains don't do much better. In other words, thousands of times less than it must support.
Most Sharding Solutions Trade Scalability for Decentralization
The only real solution to solving this is to split the blockchain into multiple blockchains that interact with each other, known as sharding. The problem with most blockchains, is that they already have centralization issues given over 51% of the mining power is controlled by a very small number of mining pools or stakeholders. Sharding typically requires miners to split their mining power across multiple blockchains, this gives miners with large percentages of the mining power the ability to take over exclusive control of a shard. This reduces the security of these shards as any given shard could be completely centralized.
When 3 mining pools control the mining, then 100 shards automatically means that one of those miners can pick a shard, and control it. Even though the whole point of decentralization is to get away from this.
You could argue that maybe all miners could mine all shards forcing all shards to have the same decentralization as the entire network. But this solution forces all miners to process all transactions.. defeating the purpose of sharding.
Proof of Person - Sharding While Maintaining Decentralization
Frink's Proof of Person Blockchain has an interesting advantage when it comes to sharding: Our users have linked themselves into a social network that allows us to privately identify users who are likely to be part of the same community, and therefore more likely to interact with each other.
Some interesting research by Facebook has shown that geographic distance is strongly linked to the odds of people belonging to the same social community. Considering many transactions people make are also made within geographic location as a person, this helps to create groups of users likely to transaction with each other.
In the future, number of transactions sent between people might be able to be included into the social graph to strengthen the connections, thus resulting in users being more carefully sharded into the correct shard. The biggest potential obstacle is whether or not privacy of both users can be maintained.
Linking Together Communities
When sharding, communities must be aware of each other in a decentralized way and know how to coordinate transaction between themselves.
Given social networks tend to have a high degree of connection between people, some users in any given community will be vouching for other communities. This allows connections between communities to analyzed similar to connections between users thus verifying other communities without needing to verify every user within that community but rather only a small number of users in other communities, who are their own friends or well linked friends of friends.
In fact the reason the company creating Frink is called Fractal Inc. is because of the beautiful Fractal pattern formed by linking communities together in this manner.
Frink - Every Miner has Equal Odds of Mining the Main Chain
To hold true on it's promise of every miner mines equal, then if there is one main chain, miners must have equal odds of mining the main chain.
Frink accomplishes this by temporarily promoting miners who mine lower level chains to higher tiers, giving all miners the same odds of mining the main chain. This is huge, Proof of Work and Proof of Stake do not have a way of guaranteeing that blockchain shards maintain decentralization.. in spite of decentralization being the main selling point for switching to cryptocurrency.
How Many Communities Do We Need?
The biggest limit on community size is that the sybil detection algorithm gets more and more complicated and time consuming to run with larger communities much faster than anything else. Even old PCs can very quickly handle social graphs with 1 to 2 million members.
Thus Frink intends to split the social graph anytime a community exceeds 1 million members into two communities of roughly 500k members. Users can be moved between communities if the number of members needs to be rebalanced.
Splitting the world's population of 7.5 billion users into communities of 500K members leads to 15,000 such communities.
When you consider that blockchains can very easily handle transactions between 15,000 users, this ought to be sufficient. However, communities don't necessarily behave like users and are more likely to interact with each other than any one user within a community. It likely therefore make sense to further subdivide these communities.
Frink can take this a step further by grouping these communities together into multiple layers of communities made into sub-communities. 100 communities would reduce the load for every sub community by almost 100.
The best part: As the blockchain is sharded, users retain equal mining power over their own transactions for every shard that transaction is included in.
This idea of adding tiers made of sub-communities can be extended to multiple layers leading to practically infinite scalability, certainly far more than Frink will ever need to actually use.