Did you know about these, anon?
Vesting routes on Hive are a little-known feature that even the most devout of Hive users have no idea exists. The reason for this is that few users have a good reason to actually use them. However, I just modified mine for the first time last week and I thought I'd talk about that experience here.
I was first introduced to this concept around Covid March 2020 during the hostile takeover.
What do these routes have to do with a money attack?
Now that is an interesting question. This was before the Binance/Huobi/Poloniex hack occurred where customer funds were powered up by exchanges to attack the network. But it was also after Justin Sun had his account locked up after buying the ninjamine from the traitor @ned Scott.
Crazy moment in community history:
During this time Justin Sun was scrambling to figure out a way to unlock his money, and it was assumed that @ned was obligated to help him out because he was the one who sold the coins. If I'm remembering this correctly an account associated with @ned started testing the routing feature and it was assumed these tests were all part of a greater plan to unlock the money. Of course I just now realize how much explanation is required for any of this to make sense in context.
Soft Fork explained.
For those who don't understand the difference between a hard fork and a soft fork... basically a soft fork is compatible with the current codebase and a hard fork is not. A soft fork is optional and can be implemented by a node as an option. If a node chooses to decline this upgrade it can still operate on the exact same chain as all the other nodes. A hard fork forces node operators to adopt the change or they'll be running on a completely different blockchain.
In this case the witnesses simply changed the code on their nodes to refuse to service Justin Sun's accounts. Basically the ninjamine money got locked up because a majority consensus of witnesses refused to service that account and wouldn't add Justin's commands to the ledger.
It's important to note how tenuous of a position this was. Sun couldn't get his ops posted to the chain but if a single op got through it could ruin the entire party. Hive itself doesn't have the ability to stop an operation once it's been posted to the chain and the block becomes immutable. Such a reversal would require a hardfork and would be extremely contentious and bad for everyone involved due to the inherent censorship resistance that permeates the tech.
What does any of this have to do with vesting?
The theory was that @ned was using an alt account to test this ability to avoid the blockade of the ninjamined account. If the ninjamine was able to powerdown that process would take 13 weeks to complete. In addition, the witnesses could refuse to allow the account to move those tokens to an exchange.
However, if vesting routes were used the powerdown would have gone directly to the exchange, which means it would only take 2 operations bundled together to circumvent the softfork blockade: 1 to powerdown and the other to set a vesting route to an exchange. Once that was in play on an immutable block it would be an irreversible action without a hardfork, and the softfork blockade would fail.
In the end nothing ever came of this so it's unclear if this is actually how it went down, but still I was surprised to learn that there was a feature like this buried in the core code that almost nobody uses.
So what does this option do exactly?
Ah well basically when an account powers down and that money gets unlocked: it gets deposited into another account automatically. In fact the routes can be split up in as many different ways as the user wants. The only requirement is that all the percentages added up are equal to 100% or less. Anything less than 100% implies that the remainder is routed to the original account. The default for routes is 0% (100% powered down to the original account).
How do I setup a route?
Very few Hive frontends actually even offer this option because it's so niche and clutters the traditional user experience with unneeded overcomplexity. However, I was looking into it last week and found an old but good website for all things Hive:
https://hivetasks.com/
Adapted with ♥ by @fernandosoder
Hivetasks is a great site because it basically offers every single feature of the blockchain to the user, including harder to find functions like account recovery and vesting routes.
DASHBOARD >> BALANCES >> OUTGOING ROUTES
From here we can choose any number of accounts and whatever percentages we want as long as they don't add up to more than 100%. I decided to test it just now with my own account, setting up routes to various alts I've created. Will delete these routes shortly:
Here we see that when I powerdown 10% of the money will now go to @gunrun, 50% to @other-barry, and 25% to @smartasscards. The remaining 15% will go to the main @edicted wallet.
If we check @edicted's incoming routes we see that @hextech sets @edicted to 100%, meaning that all HP powered down from my witness node automatically gets consolidated to my main account for convenience. Also note that there is an option to automatically power up the unlocked money to the receiving account. Meaning you can send money to another account in this way and force that account to power it up right when they get it. This is what "receive vests" means, as "vest" is the official "scientific" name for Hive Power; an untradeable asset that can later be converted into Hive over the 13 week powerdown schedule.
It's also worth noting that these routes can be set up at any time, so if a powerdown is about to unlock in 5 hours you could set a route to another account and have the money automatically transferred there when it happens 5 hours later. Again, it's interesting functionality, but most users have little need for such bells and whistles.
Routes make a lot more sense for accounts that are potentially being shared and need to split up the money fairly between multiple parties. Back when my witness node was shared with 2 other Hive users, we had routes set up to all three of us, which is why I had to figure this out recently and change it now that I'm the sole owner of @hextech.
Conclusion
It seems like there's always something new to learn with Hive, and while I've known about this routing feature for quite some time I am curious as to how many of my readers actually knew about its existence before this moment. Post in the comments to let me know.