Voice of the Saitozens #1
There’s always great discussion going on the Saito community, from Saitozens discussing the technology to newcomers trying to get their heads around the solutions Saito provides to blockchain.
This is why from now we’ll be regularly releasing a summarized compilation of the best Saito discussions this you all have been having, so that they don’t get lost in the wind:
Could there ever be a large well-hidden entity that effectively controls the network through owning most routing nodes?
95% of the network could be controlled by one person and they would still face a linear and rising cost-of-attack if they tried to produce 100% of blocks on the longest chain (cost-of-attack would be >= 5% of network fee throughput per block)
What if the majority node owning party has no interest in attacking the network but simply profiteering off of it. Centralizing Saito, despite not being able to own it wholly, take it down or have any other control over the network.
The easiest way for a central block producer to find themselves with zero transaction inflow is to try to reduce the income of the routing nodes sending them fees. No matter how centralized the network gets, central nodes are vulnerable.
What if they are collecting 95% of the fees as well? At this point POW and POS are dead, so one way to think about Saito is that it stays safe long past the point other networks die. But even then — is this really a problem? Users can stop the attack by sending their TX to a different access point. At worst we just have users putting a low price on decentralization. Or choosing not to act because the central node is behaving well. And the central node is behaving well because it has a million tiny knives to its throat.
If someone cannot exert control over the network, or transfer wealth from other participants to their own pockets, what does it even mean to be centralized?
The properties Saito delivers are the properties that decentralization is supposed to provide for Bitcoin. Fixing the incentive alignments means that they hold above the 50% point. I really think that exploring edge cases is a great way to really internalize how Saito works btw — thanks for the question and hope this helps.
How is Saito built differently such that it minimizes/prevents network ownership by the most wealth?
We can think of a blockchain as an engine that turns money into more money. Different kinds of work create different kinds of centralizing pressures, but fee collection is about as open as we can get.
A deeper economic problem is that using an external work function (like hash or stake) also means that people can play money-games on external markets. 51% of money-in can always buy 100% of money-out. If you can’t pull this off yourself, you have an incentive to cooperate with others.
Saito solves this issue on the most fundamental level because there is no external market where you can transfer work at zero cost. In order to send work to someone, you need to sign it over to someone, at which point it is instantly worth half as much to them, and you still get paid for it. They are better off spending their own money than buying it from you, not least because they will lose less money.
If Saito does end up 'centralized', with 80% of nodes owned by one entity, wouldn’t that make it a little like Infura? Infura is incentivized to not cheat and whilst they may even subsidize fees, etc. They still end up in profit.
No, it doesn’t make it like Infura because Saito nodes maximize profits by sharing data and connecting to anyone who contributes value. Infura maximizes profits by doing the opposite.
“You see, Infura wouldn’t do that because…”
This is analogous to arguing that the prisoners in the prisoner’s dilemma would never rat each other out because then they’d both go to jail, so all thieves are trustworthy. And that makes thieves as trustworthy as non-thieves.
It’s a rhetorical game, except that one of them makes money stealing from people and the other has a job that they lose if they go to jail. So, if we’re assuming away the difference then we’re also assuming away the problem. And economics doesn’t let us play these sorts of rhetorical games anyway — we can’t define what people’s incentives are by looking at market outcomes and reasoning backwards.
For traditional blockchain, is there any incentive for miners to try adding blocks with empty transactions? Is it possible in Saito?
You can post the block, but if you have no transaction fees gathered, you will need to pay for the work yourself. You will lose money if you post empty blocks. If you keep spamming empty blocks and paying the price yourself, the threshold for work should increase, requiring you to pay more for each block, so the rate in which you lose money increases too. The network determines the threshold, it adjusts to keep blocks at roughly 30 seconds.
If your transaction fees add up to below the threshold, you need to pay for the remainder to post the block yourself. If your fees add up to above the threshold, you can pocket the difference of the sum and the threshold and post the block. Not putting transactions into blocks means they’re available for other people to use to make blocks. You have to run faster than them now too or they can just wait watching you burn your money and pick up again when you stop.
In this way, you’re incentivized to add as many transactions as possible within your block, but you are “racing” against other nodes too. If they post transactions in their blocks that include transactions that you have gathered, this will make you lose transaction gathering progress. With traditional blockchains, if you post empty blocks, you can’t collect the transaction fees (since there aren’t any), making mining/staking less profitable since revenue = transaction fees + coin base flat fee.
How would Saito's proof of work function's energy usage compare to Bitcoin in theory? Assuming it were functioning at a similar scale
25% in the production version, as we target 1 golden ticket every 2 blocks, with the winner of the missing block picked from a staking table using a hashed value from the golden ticket. The amount of mining drops by half, but the cost-of-attack stays the same since gaming the solution becomes exponentially harder now that the same solution solves even more payouts. There is a theoretical way to reduce mining further, by increasing the % of blocks that pay to stakers instead of miners, but we need to be able to think carefully about this since it affects how we plan to handle things like data flooding attacks.
Is the Saito Consensus a hybrid POW/POS system?
This is a hard question because our mining isn’t the same as POW and our staking isn’t the same as POS. In POW block production is supposed to be difficult. Bitcoin uses mining to decide who can produce blocks and gives the money to the block producer so that no-one can cheat and claim payments for work they have not done. In Saito, we solve these problems in reverse order. Mining exists, but it doesn’t need to be “difficult” it just needs to be “quantifiably costly”. Saito forces the block producer to burn money to produce a block, and hash in order to get any of their money back. The random number in the solution determines who gets paid, and so dishonest attacks will need to produce 2x as many random numbers as honest nodes.
The division of money is fair because the lottery is fair if you are honest. if you are dishonest, you can attack the lottery, but it will cost you all of your profits and more, so what is mining in this system? it basically enforces the COST of violating the principle of fair-pay. That cost is then leveraged into the “difficulty” of attacking the network. If you are willing to pay routing nodes, you lose 50% of your income that way, if you want to attack the lottery, you need to lose 50% of your income that way. What goes away is the ability to control 51% of the hash power and collect > 51% of revenue because you are orphaning legitimate claims from others for payment simply because you outmuscle them.
Can a Saito application choose the first node routed to?
The protocol doesn’t restrict behavior. A Saito application could in practice change routing behavior for the whole client.
So instead of Ethereum miners generating all the fees for the traffic on Uniswap, an Uniswap in Saito would rightfully get first cut of mining rewards?
It could, yes. There are a couple of options, if you write the actual user application, you can always do things like have the “send transaction” button add a small payment to you as part of the transaction that the user is sending.