Recently Conflux team submitted a new paper titled “Sharing Information with Competitors” to SAGT. The paper explained the reason and approach of how to incentivize miners to synchronize their transaction pools through a game theory perspective. In this short recap, Dr. Guang Yang, the co-author of the paper, shared below three key points of the paper for the general public to better understand the topic.
1. Why is the synchronization of transaction pools important?
The synchronization of transaction pools brings us many advantages. Firstly, users will have a better experience in waiting time since every node is trying to pack all transactions, and the packing of every transaction is not influenced by the volatile block generation time of specific miners. Secondly, when transaction pools are synchronized, the compact block technique will greatly increase the broadcast speed, and hence we can enjoy a higher degree of security and better performance. Furthermore, double-spending and conflicting transactions will be detected immediately, which enables instant confirmation (a.k.a. zero confirmation) under certain circumstances such as micropayments.
2. Would the miners synchronize transaction pools in time?
Miners will decide whether they would participate in the synchronization based on their own benefits: 1) If they choose to participate, the broadcast speed of their newly mined blocks will be accelerated. Also, their reputation will be improved mildly. 2) If they choose not, i.e. only listening and no broadcasting, they may have a large action space and perhaps benefit from packing exclusive transactions. The latter case is undesirable, since those selfish miners are more vulnerable to bribing attacks.
As we can see from above, the consensus protocol does not require a mandatory synchronization of the transaction pools and the miners are rational rather than honest.
Before we start to design the mechanism, there are a few concerns that should be addressed properly: What should we do if a miner wants to hide private information? How to guarantee the fairness for every miner in the system?
A simple solution is that in each exchange, two participants exchange for the same number of transactions. However, we must note that information has a very different nature from money, and sometimes “the same amount of information” can have significantly different values. To put it plainly, if Alice already has all the transactions that Bob holds, then no matter how many transactions Bob sends to Alice, these transactions would still be worthless.
3. How could we ensure the fairness during the information exchange?
If we can price each piece of information, then we can use some extra money to compensate for the price gap. But this will raise a new problem: what if it is impossible to price each single piece of information?
Let us start with a two-agent scenario. The concern of fairness can be easily solved by ignoring the common information shared by both parties and exchanging the same amount of exclusive information from each side.
For three agents, the problem becomes more complicated, as the exchanging mechanism must specify the order of pairwise exchanging, the number of exchanged elements, and more importantly, which specific elements are exchanged. In fact, we can reduce the three-party case to two-party cases with the following reduction.
Due to the time constraints, here I will not elaborate on the cases of more parties. Please stay tuned and find out more details in our paper Sharing Information with Competitors that is to appear on SAGT(Symposium on Algorithmic Game Theory) in October 2019.