Velocity BluePaper
The Velocity System
Blockchain governance and constraint technology
Intro
Velocity is a re-written feature originally known as "pulse" found in Frycoin. Upon
stumbling across this unique feature it became quickly apparent that although
significant amounts of code would need to be re-done the feature itself had a very
good premise in both security and chain stability aspects. This made it very
desirable. Work began to rewrite the code about two weeks ago and has been
successful despite a few small setbacks and bugs that do not actually affect chain
stability or coin operation in any way other than intended.
Importance
The key importance of Velocity is to constrain the chain with the parameters
already defined within the code as opposed to having things like block spacing and
other properties act almost as a suggestion to the chain's operation rather than
rule and law so to speak. This is very important in the sense that sudden increase
in hashrate or possible attacks are still a vulnerability despite the best retarget
systems out there being implemented to control block spacing along with network
fees, possible invalid balance issues while sending transactions and other
portions of the blockchain that are enforced with a double check but still
susceptible to an attack whether it be temporary or a double spend that is confirmed
and causes users of the network grief and losses which is unacceptable.
This is done by the Velocity system being a "triple check", even after a block
during generation has seemingly met all requirements and is then produced it is now
no longer immediately accepted. Instead it is checked again for inconsistencies and
possible other exploits.
Most notably users will see rejected blocks during the mining or minting phase (or
both depending on coin properties), despite the tendency to assume that there is
something wrong with the chain as it is rejecting blocks this is in fact a
completely normal and a welcomed operation.
Reasoning is that rapid block times, incorrect fees, insufficient balance and
other issues can be manipulated by a talented programmer with malicious intent. To
guard from these kinds of situations Velocity checks the generated block against
the chain parameters, first it Velocity checks the block for proper spacing, if the
block was generated too quickly it thus has not met one of the main parameters for
the chain and is promptly rejected, staving off possible attacks and any kind of
sudden increase in hashrate.
Next the system verifies that previously the client that sent a transaction (if it
sent one in the previous block) was in fact a valid transaction by comparing
previous balance vs current balance along with fees paid vs minimum fee required
to pay. If any of these parameters are not met (mind you these are standard chain
parameters and nothing outlandish) then the block is again rejected despite being
generated successfully.
Thus this system secures the chain, making it more stable, predictable, and overall
reliable, instilling confidence that the blocks that are accepted are indeed blocks
that are proper.
Shortcomings
Currently the biggest shortcoming is that this feature is still a prototype system
and in its implementation into the Espers blockchain (which is a fully hybrid
system utilizing both PoW and PoS simultaneously) caused small glitches with the
retarget system which was not functioning properly to begin with as users may
remember seeing very rapid block times and the chain rushing over the course of
time since its launch until block 650K when Velocity was finally implemented and
the chain secured more thoroughly.
That being said users will note that the blocks accepted are spaced very nicely at
a minimum of 3.5 minutes without fail and that the chain moves forward smoothly.
Users will also note that however PoS reports incorrectly stating that a reward is
due either imminently (0 seconds) or even states that the user is not staking PoS
(which is not true).
These are merely false reports and users that leave their client running will in
fact both stake and mine perfectly normally despite seeing rejected blocks, which
simply indicates that the Velocity feature is working to secure out chain.
Next the transaction verification and previous balance checks are currently turned
off until such a time as the checks become flawless, the implementation for these
specific checks are still being developed to properly ascertain those sections of
chain parameters.
Espers itself also being a hybrid blockchain requires a more intuitive retarget
approach to reduce rejected blocks and cause the system to properly generate blocks
so that Velocity becomes not merely a life support system but merely a security
check to a stable and properly operating chain. This is planned to be resolved in
the upcoming week.
Users of a Velocity implemented chain may also note that INSANE has now been
implemented with this feature, however the issues with Espers will not be apparent in
INSANE because INSANE is a pure PoS coin/token now which does not have the
shortcomings of a hybrid system (the shortcomings being that hybrid tokens were never
intended to stay hybrid save for Espers and a very select few that suffer from the
same rapid block time issues as Espers had suffered from prior to Velocity being
implemented) and thus will not have the same issues listed above, in this case INSANE
will see only the benefits of Velocity running as a security check merely stabilizing
the blockchain further and making it more robust.
Looking ahead
Overall the system can be expanded to eventually include more checks, more
verification and a even more stringent implementation that may adapt to any kind of
features that are added or removed. This makes the system very adaptable and less
of a hassle to work with as it can grow with the coin/token and as it becomes more
refined and mature so will this new security feature called Velocity.
Do you have a website?
Yes, the bluepaper can be found at http://blockchainsecurity.co.uk