by Dr. Daniel Kraft
Mining is certainly crucial for a blockchain-based consensus system. However, there is also often doubt about what exactly the importance of the role of miners is. In particular, popular news articles or posts often state that it is the miners’ job to “validate transactions” for the network. This leads many people, especially those who just started to learn about how blockchain and Bitcoin work, to overestimate the role of miners in the ecosystem (see for instance a recent thread on Bitcointalk). In this post, I want to clarify what the role of miners really is, how it relates to validating transactions, and also how that inspires XAYA’s way of scaling to many different games running on its blockchain.
In Bitcoin and other blockchain networks, miners do of course typically validate transactions and blocks — because if they didn’t and were to include an invalid transaction, their blocks would be rejected by the other full nodes in the network and they would just have wasted their electricity for nothing. (In fact, there have been cases of miners creating invalid blocks in the past — and losing thousands of dollars in block rewards as a consequence.)
But the real job of mining, and in my opinion one of the actual core innovations of Satoshi’s white paper, is to create a decentralised consensus about the time order of transactions (see also section 3 of the whitepaper). This is what enables Bitcoin to solve the double-spending problem. Validation of transactions, on the other hand, is the job of every full node. Everyone who uses Bitcoin and does not want to trust anyone else (which is, in the first place, the actual point!) has to validate transactions and blocks for themselves. Everyone who lets just miners validate transactions is trusting them!
With this insight, we can now better understand how XAYA can scale to many different games running on its platform while avoiding some issues that games on Ethereum have: When games are created using Ethereum smart contracts, then the rules of the game are enforced through the code in the contracts. This means that everyone on the network, including miners and full nodes who are not actually interested in that particular game, has to run the code and validate every transaction and move in the game. This is a big problem, especially if game logic gets complicated — it puts unnecessary computational load onto the whole network, and as a consequence pushes up transaction fees (the gas price in Ethereum) for the users of the game as well as everyone else.
For games in XAYA, we solve this problem by remembering that the core job of miners and the blockchain itself is to time-order transactions and prevent double spends. As long as it performs that function, in-depth validation can be delegated to the individual nodes — for games on XAYA to only those nodes that are actually running a particular game. So while the XAYA network itself still performs some basic validation (mainly transfers of CHI), the potentially expensive business logic implementing the rules of particular games does not have to be executed by everyone on the network. Only those users who actually play that game and want to validate their opponents’ moves have to do it — this way, it does not matter at all for you how many different games are running on the XAYA platform; it only matters what games you are using.
Note that the same separation of time ordering from transaction validation was already used in the past by other projects, such as Mastercoin (now called the Omni Layer). But with XAYA, it reaches a new level of utility and importance, as it allows XAYA to fulfill its vision of being a general platform for an unlimited number of games created on top of it.
Visit xaya.io for more information about the platform and relevant blockchain technologies.