Sophisticated and intelligent network handling
for the modern blockchain
Scroll down for more information
Introduction
As security upgrades were being implemented with releases in 2021 to combat the Monte Spoof attack it became apparent that as one area was patched there were other glaring issues that were simply being ignored by nearly ALL altcoins. The reason for these issues is because of the typical "hashrate is safety" thought process which leaves most projects vulnerable to many attacks already seen recently. In order to bolster our security and also bring something more unique to the crypto world we have built upon our previous set of updates that allow us to have a "smart chain". Now this word is thrown around A LOT and nearly has lost all meaning but why it's called something at least reminicisent of a "smart chain" is because the system is able to make informed decisions on its own depending on how the network's health is and depending on what trusted nodes it's listening to compare to how network peers are talking. Simply put it's able to adapt to the network and make inteligent decisions on what to do during syncing or accepting blocks as well as handling possible splits from the main network's chain much more smoothly than forcing a user to resync or have giant reorganization of their blocks.
Technical Aspects
The new system now operates by using "Demi-nodes" to help the client make informed decisions on how to treat a peer in the network or even other nodes that aren't trusted. Demi-nodes are a list of trusted nodes a user can define inside of the client. These trusted nodes can then be queried for specific data sets such as asking the Demi-node network wether or not a reorganization request from another peer is a valid one or something that should be rejected and then banned off the network to protect other peers. A self cleaning network as this heals itself from any possible intrusion or attack. Now as of 2021 we have a 1 block reorganize tollerance which creates a nearly zero tolerance policy for invalid blocks. Why this is important is that when a peer requests something like a reorganize attempt this is NOT verified or explored very deeply by reference Bitcoin sources (Nearly all of them) and they just accept mass block bulks that could have malformed data in them. Demi-nodes address 2 (two) issues when accepting a new block. First it extensively verifies data from a peer that a client is syncing from or in sync with. Next it solves the big issue of most coins which is most Bitcoin based coins send an overall reorganize request to merge to an entirely new chain. This request is done periodically by the client by design in an attempt to keep peers all on the same chain. This method, though a good base design, lacks any way to confirm that the network has a consensus which agrees that the reorganize request will merge the correct chain or if it will merge a completely invalid one that is simply "ahead". By not blindly looking for the the longest chain as all other coins/networks do, but first seeing if the network desires a particular chain we can better secure the network as it doesn't just readily drift off after the first possible chain that looks valid without further investigation. Now the network checks first to see if the network consensus agrees that indeed the peer asking to change the whole chain and merge to theirs is right and wether or not to do this to keep up with the rest of the network. The Demi-Node system engages a secondary verification and ensures that all the data kept in the blocks are clean by streaming through what's known as the Velocity blockchain verification system. This costs us a negligable delay in the reorganize function (a matter of seconds), but protects us in ways that other projects cannot hope to realize. This security is also done during acceptance of a block to ensure we only accept blocks that other peers are accepting.
Improvements
Since 2022 Demi-Nodes have been upgraded from initial implementation of block vetting and node verification queries to now handle extensively dynamic and intelligent block management. One noticeable feature is the updated block queing which allows the client to queue up syncing requests from peers and nodes. When connecting to a node or peer the client requests a chunk of 500 blocks in a relay request. In the past by using a Bitcoin reference this was mishandled, allowing the client to request the same chunk from multiple peers. This slowed syncing and caused handling issues with conflicting blocks as the client had already requested blocks from multiple peers and then had to deal with purging duplicates or even triplicates etc. Demi-nodes resolve these issues by keeping track of what was last requested from a peer. That requested block chunk is then processed and the next 500 block chunk can be requested from either that peer or a new one connecting. This type of handling ensures zero duplicate requests and needlessly purged blocks. Inadvertently this also has had a dramatic speed impact for syncing blocks from the network as there is much less data overhead and the system can process a sync much more smoothly than previously thought possible while retaining the most stringent security seen in the blockchain world.
Limitations
Currently Demi-Nodes are not yet able to parallel request 500 block chunks which would be a great beneifit and allow the system to sync hundreds of thousands of blocks in seconds with no hassle. Next the system also still needs a update to the consensus handling of Demi-Nodes themselves so that it can have a smart handling and not be bound to Bitcoin's reference node handling.
Future
In the next phase of the Demi-node network upgrades there will be features that allow users to "flash sync". By doing so Demi-nodes effectively remove the need to wait for the client to sync at all while retaining all the security and usability of having syncronized the full network, not to mention the ability to of course synchronize the entire network in the background if such settings are set.
Conclusion
The Demi-node network is a proper solution to reference Bitcoin based security and will ultimately replace the originaly network handling entirely for all associated projects that the CryptoCoderz team is involved with. With this complete we can now confidently move onto other aspects of developement and project completion.