A date with Sybil

“You knock yourself down. You don’t think much of yourself. That’s an uncomfortable feeling. So you project it on others and say, ‘They don’t like me’.” - Flora Rheta Schreiber, Sybil: The Classic True Story of a Woman Possessed by Sixteen Personalities

Lately, a fellow bitcoiner contacted me, suggesting that I should try to use OXT in order to check if the recent growth of Bitcoin Classic nodes is a real sign of increasing popularity. I wasn’t very excited by the idea because I’m already convinced that using the number of nodes as a proxy for popularity is a very wrong idea. Because, you know, Sybil is a nice woman but she’s a bit too crazy... Anyway, that seemed like a good study case so I’ve decided to give it a try and see what I could find.

A bit of context

For months, there has been a “civil war” going on inside the bitcoin community that has spilled over into mainstream media concerning the best way to improve bitcoin scalability.

We now have several concurrent implementations trying to gain support from members of the community. As a consequence, some have proposed the idea of using the number of nodes as a proxy for measuring the popularity of implementations. Websites have even been created to track the numbers of nodes for each implementation.

Your node in the cloud

While running a bitcoin full node has become easier with latest versions, it still requires some work. In order to speed up adoption, some supporters of an implementation (Bitcoin Classic) have launched an initiative proposing to run for you a full node on a AWS instance.

All you have to do is sending a donation to a bitcoin address associated to an AWS data center. According to the website, on 03/14/2016, 808 nodes (out of 2,600 Bitcoin Classic nodes) are running thanks to these donations.

Is the number of nodes a good proxy for popularity ?

As a starting point, we have 808 nodes which may be associated to 808 persons supporting Bitcoin Classic. But how to be sure that there’s really a distinct sponsor behind every node ?

The first thing that we can check is the number of transactions received by the 6 addresses associated to the 6 AWS data centers:
166hGc4nEkywQRGsZgnoFiDuFfWwjmy2Qk
1nQs2hd6UvBBCrDEdbxejQdxKDXygceqw
1FFqWTfVepsnU3SC7FJWpp7GouHBCKZugf
1GCU6DA24xn3B2Brt35XrwNuq5LCVe15EF
1CedD4DPh7czwhKk7DeSH4q6CJbZiFPCge
1AJ5B94C6ANNShaTeBwPE5pQsYLrX4XNKg

While checking these addresses, I’ve found a total number of 258 transactions received. The obvious consequence is that we must revise our upper bound for the number of supporters from 808 to 258. But can we get a better evaluation of this upper bound ?

Small chains of transactions

Starting from a transaction which was created to make a donation, we can observe a chain of 8 transactions making donations.

It’s more than likely that these transactions were sent by the same entity and that we have a single sponsor behind these 8 transactions.

By running a request seeking chains of transactions making donations, we find that 66 transactions (out of 258) are part of 21 chains. According to these numbers, we must revise our upper bound once again with a maximum of 213 supporters.

Additionally, we can also observe that these 21 entities (individuals or corporate) have contributed more than 50% of the donations (35.25btc out of 69btc). Actually, 4 chains alone have sent 29.7btc (respectively 12btc, 6btc, 6btc and 5.7btc) and they are likely to be the biggest contributors to this effort.

Conclusion

It’s quite possible that by pushing the analysis further, we may find a lower value for the upper bound of the number of supporters who have contributed to this initiative. Anyway, that wouldn’t change the nature of the conclusion of this short journey in the blockchain.

It should come as no surprise that the number of nodes is a poor proxy for measuring the adoption or the popularity of an implementation (808 nodes for a maximum of 213 supporters ~ 25%). Actually, it’s likely that the amounts donated would be a much better metrics to measure engagement of supporters but the solution is impractical because you can also support an implementation by running your node at home and it can’t be measured with this metrics.

So, I would say that if making donations to support your favorite implementation is welcome, you’d better send these donations to its developers. With this money, they could spend more time explaining to the rest of the community why this implementation rules. Better spend time on this than on a date with Sybil, because you know…

My 2 satoshis
laurentmt

Note: The term “Sybil Attack” is technical lingo and doesn’t assume anything about the motivations of the “attacker”.

Food for thought: “Understanding Serenity, Part 2: Casper” - V.Buterin