Random Thoughts: How Hierarchical Blockchains Can Allow Mobile Devices To Become Full Nodes

in #blockchain7 years ago

Some time ago I talked about a certain idea of mine called Hierarchical Self-Purging Blockchains which you can read following the link. It's just a concept and there is no whitepaper or anything. But I just found another use case for my idea. Take a look at this table from @steemchille who is the creator of https://steemworld.org

From Block To Block File Size (uncompressed)
1 100,000 6 MB
10,000,000 10,100,000 104 MB
20,000,000 20,100,000 1.6 GB

More and more Transactions are happening on pretty much every single popular blockchain and other non-blockchains like IOTA and NANO. I'll use another quote from his recent post below:

What most people might think:

Just call blockchain -> getMentions( permlink ) and show the results on SteemWorld ;)

Reality:

Nope! One needs to go through all the > 21.8 million blocks. Each block can contain many operations. Did you ever try to collect a specific information from a 95 GB file? It's fun, but it always takes many hours!


Keep in mind:

There is one new block ~ every 3 seconds and the blocks are growing in size as more and more people are using Steem on a daily basis. I think the huge increase in the recent months is really a good sign!

Not All Blockchains are like STEEM. Let's look at currency specialized projects


STEEM is a social media platform. EOS is a smart contract platform. These things won't benifit much from a Hierarchical Blockchain. You need to have the kind of data/information that can be discarded after achieving a certain task. In a blockchain based game, one could discard the record of the moves of individual game sessions and simply keep the final data. In the case of a "Currency" what ultimately matters is that we maintain an accurate and immutable record of who owns what.

Private Transactions on Mobile devices

Privacy coins, whether employing mixing like Dash or encryption like Zcash, Monero, and many others, require a full node in order to broadcast privately. Because light wallets (also known as thin clients) have to communicate with a full node in order to send transactions. In order to communicate with the node, however, certain data must be transmitted to complete the transaction, and in order for the node to read it that data must not be private. Any coin presently using enhanced privacy functions on mobile devices, web wallets, etc., therefore has to compromise by trusting the node with its data. While this setup is an improvement over simply not using any anonymization features, many privacy coins eschew this imperfect approach because of the potential for creating honeypots of privacy-seeking users with a central point of de-anonymization.
Source

All blockchains are growing in a rapid pace and mobile devices are certainly not going to keep up. Smartphone users from developing nations with cheap devices will be barely willing to store 1 GB file on their phone. Even an iPhone user may not be willing to store more than 10 GB even for the sake of privacy. Ease of use is really important. If if you can trust a node owner, you can't trust that a government won't be able to coerce those node owners. If full nodes can be run on mobiles, we can keep the whole privacy business trustless and without central point of failure.

Light Wallet+Full Wallet Combo


The advantage of a Hierarchical Blockchain is that a statement like the subtitle above won't sound ridiculous. A mobile wallet could use a Light Wallet like it's done today and this Light Wallet would deal with a Full node of a lower level of the blockchain which has a tiny block time of few seconds or even under 1 second. The Full Wallet could be from a higher level which could even have a multi-hour block time. This should keep the size of a full node minimum and make it grow at a small pace so that the mobile wallets can have that privacy in a totally trustless manner.

This is just an idea and I haven'made any software based on that. I'm not even skilled enough to develop for a blockchain project. But I see an idea that could vastly reduce the growth of a blockchain file size while allowing massive on chain scaling,privacy as a side effect of self-purging nature while also giving the ability to use privacy features on mobile devices. So at least I can at least say that my time spent thinking wasn't wasted.

Thank for reading.Until next time,
Happy steeming!


Images: 1 2

Sort:  

Storing an entire history of transactions is such a simple redundancy I wonder how it was perpetuated in so many systems.
Are the Bitcoin, Bitcoin Cash, Litecoin, ZCash, ZeroCoin and even Byteball communities all stupid to such an extent?
They all rely on consensus, so why not store current states only?
And if it is necessary, than 1 or 2 states before current too, but not entire histories.
It is a guaranteed failure.

They store the entire history for added security and trustlessness. But the price we pay for it is just too much. A Hierarchical Blockchain is pretty much a system of meta-blockchains where each layer is built based on the lower layer and everything is on chain.

How does a record of entire history of transactions add security or trustlessness?
The verification process includes consensus between different nodes regardless of how much data there is in them and to prevent double spending only the last state matters, or perhaps the previous before last should be considered as well, but not every state since forever.

You got a 37.59% upvote from @luckyvotes courtesy of @stimialiti!

Supply Auditability

This is something Zcash gets accused of due to them having the coin values hidden. When coins are created through inflation, how do we know that they weren't forged. that's what the paranoid people are saying. I mean some blockchain devs have their doomsday bunkers set up. You can say that the complete history keeping is a straw man argument and it sort of is. But it's never too bad to be too cautious.

Instead we can have a meta-blockchain that takes the info from the blockchain. This method can satisfy the paranoid people who want to keep a full copy while making everything scaling friendly.

Every node is supposed to know the limit on the amount and the current state.
When currency is created, if it is supposed to be approved, then how does an entire history help to verify that it is not forged?
It does not stem from any past transaction anyway and has to be approved by consensus anyway.

You got a 28.57% upvote from @luckyvotes courtesy of @stimialiti!

For coins that obscure the values of the coins, this is a problem. This is mainly an issue with privacy coins:
https://zcoin.io/zcoins-privacy-technology-compares-competition and I'v seen some discussions here: https://www.reddit.com/r/Bitcoin/comments/115bpy/question_why_is_the_entire_blockchain_required/

Some people are just no willing to trust in the older blocks without a full history.

You got a 8.25% upvote from @steembloggers courtesy of @stimialiti!

You got a 10.00% upvote from @sleeplesswhale courtesy of @stimialiti!

You got a 12.39% upvote from @ubot courtesy of @stimialiti! Send 0.05 Steem or SBD to @ubot for an upvote with link of post in memo.

Every post gets Resteemed (follow us to get your post more exposure)!

98% of earnings paid daily to delegators! Go to www.ubot.ws for details.

If every cellphone user in the world dedicates 1 GB to store the equivalent to 1GB of data for the sake of what you have in mind (sounds like Cloud-Chain), then even 1GB would be enough for each mobile phone to become a full node (knowing that SmartCash requires 2GB), with limited functionality. I think 😊
Great idea.

Thank you. I've also seen another great scaling solutions by Leemon Baird called Hashgraph.

It's absolutely stupid and unnecessary and stupid for every node to store every transaction from the last 10 years. Completely agree with you! But I do think a few nodes should keep the record of everything.

But I do think a few nodes should keep the record of everything.

There will always be archive nodes.

@smartbot tip @vimukthi 1

Congratulations!!!
You will be rewarded 1 SMARTCASH for using this resteem service

ABASINKANGA RESTEEM SERVICE

  • This post just got resteemed to 6100 followers.
  • For anyone to use my resteem service, send 0.1 SBD to @abasinkanga + post link as memo.
  • Earn SmartCash rewards everytime i am paid to resteem your post
  • Tip with SMARTCASH or Upvote this comment if you appreciate this service.

1 SMART = 0.04 SBD

How To Use SmartCash?

Σ$$$ Tipped @vimukthi Σ1 SMART! Comment @smartbot help to claim. Currently the price of SmartCash in the market is $0.127 USD per SMART. Current value of the tip is $0.13 USD. To find out more about SmartCash, please visit https://smartcash.cc.

As a follower of @followforupvotes this post has been randomly selected and upvoted! Enjoy your upvote and have a great day!

Resteemed upvoted

This post was upvoted and resteemed by @resteemr!
Thank you for using @resteemr.


@resteemr is a low price resteem service.
Check what @resteemr can do for you. Introduction of resteemr.

Resteemed by @resteembot! Good Luck!
Check @resteembot's introduction post or the other great posts I already resteemed.