Hacker News new | ask | show | jobs
by jgarzik 1386 days ago
Answer (12 yr crypto dev & veteran):

Number of nodes is a poor metric that is easily gamified (pumped up), presenting an artificial picture. If a blockchain's economics purposefully incentivizes nodes, then number-of-nodes is entirely subsidized, in one common example.

Further, the "Sybil" factor - which one party controls many nodes - and other centralizing factors - e.g. 90% of nodes are on Big Cloud - also complicates the number-of-nodes use as a simple metric and useful comparator.

6 comments

It's funny because the whole point of proof-of-work (and proof-of-stake etc) is because the number of nodes is a completely untrustworthy. If a there are very few nodes then that's a sign the crypto isn't very popular/decentralized, but other than that there's not much to say.
I feel like you are a bit understating your role here... jgarzik was one of the early Bitcoin core developers.
I think he burned his rep pumping "United Bitcoin", a strange Chinese scam coin

https://bitcoinmagazine.com/business/garzik-forks-unitedbitc...

And his involvement in SegWit2X, which was dead in the water because of an off-by-one error by his hand. Had that code been run in production, the entire bitcoin ecosystem would have ground to a halt.

So yeah, bit of a burned reputation.

>Number of nodes is a poor metric that is easily gamified (pumped up), presenting an artificial picture. If a blockchain's economics purposefully incentivizes nodes, then number-of-nodes is entirely subsidized, in one common example.

I'm not sure that this dynamic would compromise the metric's usefulness. A cryptocurrency can only offer such incentives in-protocol if it's made the currency have real-world, persistent value. So any ability to bribe users to run nodes would itself be a validation of the cryptocurrency's success/influence/etc.

(That is, being paid 1000 ScamCoins a week to run a node won't be much of an incentive if they're only worth trillionths of a penny each.)

I do agree your next paragraph identifies a real problem though:

>Further, the "Sybil" factor - which one party controls many nodes - and other centralizing factors - e.g. 90% of nodes are on Big Cloud - also complicates the number-of-nodes use as a simple metric and useful comparator.

It's definitely hard to identify how truly independent the nodes are.

Even if the nodes are independent, I don't think it really matters as much as the distribution of the hash-power. The non-mining nodes will not be able to resist a re-org by antagonistic miners.
Is this true for validating full nodes on a proof of work chain?

>> The non-mining nodes will not be able to resist a re-org by antagonistic miners.

A full node can pick whatever block it wants as the tip of the chain. Many nodes choosing the same would be a UASF. That would resist, by ignoring, the antagonistic miners.

It does not matter because any new node joining would only need to connect to a single node that doesn't do the USAF in order to be converted against the USAF. The default behavior is to resist the USAF unless otherwise programmed.

Additionally, different nodes could receive different blocks at different times, meaning they will decide to do a USAF at different block heights.

The idea that non-mining/staking nodes do anything for decentralization or network security is basically cope for cryptocurrencies in which it is difficult for regular users to actually participate in mining/staking.

"The current system where every user is a network node is not the intended configuration for large scale. That would be like every Usenet user runs their own NNTP server. The design supports letting users just be users. The more burden it is to run a node, the fewer nodes there will be. Those few nodes will be big server farms. The rest will be client nodes that only do transactions and don't generate." -Satoshi

https://bitcointalk.org/index.php?topic=532.msg6306#msg6306

Full nodes validate the rules. They check and enforce that minded blocks follow the rules. This could be rules of a UASF which a group could take to ignore the antagonistic miner.
Also from a service provider / architecture view there is a huge concentration on AWS [1]. So while the nodes might appear large in numbers, if AWS goes down (which is not entirely unheard of), the nodes go down with it.

[1] https://app.finclout.io/t/O0kvaxm

I mean to me the problem is how do you define a node? A node participating in consensus or any node? And if it's participating in consensus, is it counting only the nodes that participated in consensus since genesis or since some time in the past? All of these technologies are completely different.
The problem, if you go that route, is how you define participating in consensus.

Say I have a fully synced and always up to date Bitcoin node, running on a Pi in my closet, that I only use to make and receive payments, which I very rarely do. Then yes, that node did participate in consensus for those payments but it was practically asleep for all the other transactions happening in the network (it did validate all blocks, but it didn't have anything meaningful to say to the network).

I think a better metric is nodes that are economic actors, but that is hard to measure, since, like my example above, my node could be sitting in the closet and very rarely being used for actual transactions.

So maybe a even better metric then is potential economic actors? How many nodes that could, if needed, be practically used by people in carrying out actual useful transactions. But how do we measure that?

> it did validate all blocks, but it didn't have anything meaningful to say to the network

That is a bit of an understatement of its function. If a miner produced a bad block (with, say, 51 btc block subsidy), and it pushed that block onto the network to my node, it would reject it and not propagate that block to others. This is a meaningful feature that is often overlooked.

Looking at metrics like Realized Price and Illiquid Supply helps far more than looking at how many nodes are online.

Very good point, I didn't think about the propagation function of the nodes. Indeed, a node would only propagate blocks it accepts as valid.

But how does that help the network except by saving some bandwidth?

In the end, "bad" blocks will and should propagate and should be rejected by every node that decides that the block is "bad". There isn't one node that is a gatekeeper for "bad" blocks.

I think that whenever people talk about consensus, they think about it in terms of how a democracy works - and that is wrong, because Bitcoin is not democratic. It's not like if you nave n nodes, you need n/2+1 to agree on something and all the rest will be forced to agree to their decision. It's up to every individual node to enforce rules for their own transactions.

Nodes automatically forward valid blocks to all connected peers. This means that the initial miner would send it to, say, 100 peers, all of whom would reject it. Why send that block to anyone else, wasting resources and posing an attack vector (spamming the network with bad blocks, hogging resources and slowing/breaking the p2p network layer).
To participate in consensus in Bitcoin you'd have to mine a block, otherwise that doesn't count and I think most people would agree with that.
Answer (0 yr crypto dev & veteran):

I start a new coin call $FOO. I release 1,000,000 coins. I sell one coin to a friend for $1,0000, and keep the remaining 999,999 coins for myself. The market cap is now $100M.

> Number of nodes is a poor metric that is easily gamified (pumped up), presenting an artificial picture.

You can game either one.

Firstly I don't understand who you are "answering" to, the GP didn't talk about Market Cap as a relevant metric.

Secondly, Market Cap is only relevant when reported by popular metrics websites which vet their data sources a little... nobody relevant is listing your coin anywhere, sorry if it disappoints you.

Thirdly, I'm sure that in your first year as a veteran you will learn to care for coins/token which have liquidity/volume either on reputable CEXs or in tokens/networks with a good track record on DEXs.

You can't really game liquidity for long without risking your capital.

I know this is HN, so I would expect less low brow criticism... but who am I kidding this is about cryptocurrencies, rules don't apply.

> Firstly I don't understand who you are "answering" to, the GP didn't talk about Market Cap as a relevant metric.

No but they were clearly refuting the alternative suggestion (nodes) was game-able. That was my point.

> Market Cap is only relevant when reported by popular metrics websites which vet their data sources a little

> you will learn to care for coins/token which have liquidity/volume either on reputable CEXs or in tokens/networks with a good track record on DEXs.

This is hilarious, because your idea is that:

- It's a popular metrics website

- You believe they are vetted

by a centralized web site, is the exact antithesis of cryptocurrencies. What happened to decentralization?

> You can't really game liquidity for long without risking your capital.

Sure, but why is that relevant here? We're not talking about liquidity as being the relevant metrics, we're talking about market cap.

Market cap is such a hilarious concept for cryptocurrencies because it converts everything to a fiat, which, again, is the antithesis of cryptocurrency.

> I know this is HN, so I would expect less low brow criticism... but who am I kidding this is about cryptocurrencies, rules don't apply.

Meeting low brow comments with low brow comments, chapeau!

Not OP, but:

> by a centralized web site, is the exact antithesis of cryptocurrencies. What happened to decentralization?

A centralized cryptocurrency is an antithesis. I don't care if any of the products or websites in the surrounding ecosystem are centralized: all I care about is that bitcoin remains decentralized.

Decentralization is a force that limits usefullness. Bitcoin is useful only as a base layer; digital gold that higher layer (more centralized) systems can use to settle down to. Being more centralized offers features Bitcoin doesn't have (high throughput, easy onboarding, etc) at a cost of new risks (counterparty risk, etc). Settling down at the behest of the user allows those users to mitigate that risk, and get the best of both worlds.

Gold bars are technically "decentralized". No one controls the supply (e.g. there isn't a sovereignty that creates/destroys them), and I can technically just dig them up out of the ground.
You’ve articulated why people call Bitcoin “digital gold”.
It doesn't work that way. Market cap depends on circulating coins/tokens. This is an opportunity for you to learn some more though, which is always good!
> 0 yr crypto dev & veteran

0yr experience with all investments?

> The market cap is now $100M.

Look up "closely-held shares" vs "floating stock" and how free-float market cap is calculated.

Btw your comment has nothing to do with the one you're replying to. Why derail the thread instead of starting your own?

> The market cap is now $100M.

In your dreams only. Good luck finding any serious (aka "smart") money willing to take your valuation seriously. With such due diligence you're likely to be the only one hodling $FOO ;)

Thats exactly why market cap is a bad metric - it does not encode market depth (how much you can actually sell before the price moves) or velocity (how many units are changing hands in the wild in a given period).

Worst of all, currencies do not have market caps - equities do. Market caps are measured in currencies.

Ding ding. You found the point.
This is why I think network fees are a good metric. As long as anyone can become a block creator, you can’t pump it without losing money.
Only works on congested networks, or those that burn fees: in original bitcoin style, without congestion, generating dummy transactions is free for miners (the fees come back in block reward).
If there's a public order book, it's very easy to see through this. Harder to do that with nodes.
A public ledger only ensures that you can see through this if you can verify ownershp of wallets, because as we've seen repeatedly, you can programmatically create an entire eco-system of fake wallets trading back and forth. What's the cost? I can trivially create a series of bots that just trade their coins back and forth with each other forever. It'll create huge volumes. Now the reason you don't do this on real chains is because the transaction costs will cripple you. But transaction costs aren't real if the currency you're paying them in was entirely fictional to start with.

From the outside there is no way of verifying that any chain has any real activity without verifying ownership of the wallets.

Your counterargument here only applies when exchanges participate in the scam. Of course that does happen, and for a long time you could even pay OKeX to do this for you. But it's much less common than obscure coins faking volume off-exchange or faking node activity.
And yet so many instances of crypto coins that did this. I’m pretty sure they all had public books. The challenge isn’t I sell one coin. It’s wash trading. You create sufficient volume from multiple different anonymous accounts continuously. That’s impossible to decipher because ownership is impossible to untangle.
This only works if the exchange is in on it. That has happened many times but it's much harder to do than faking node activity.
Why does the exchange need to be in on it? If it’s not a KYC exchange, they would have no way of knowing all the Sybil accounts doing the wash trading were being run by the same individual.
Almost all limit order books required posting the assets on the book and take a fee on trades. You can read off the amount paid to generate the fictional market cap and judge for yourself if it's likely to be fake activity. For thinly traded books with low liquidity, it's cheap. For thick books with high volume, it's expensive.

Also exchanges that are not participating in scams, actively or passively, will attempt to detect wash trading and stop it.

It's much easier to fake the initial activity, then start to have "real" users pile on. The only value I created in my ICO was that I created fake demand and the lemmings followed.
Is there a metric that quantifies this? Some sort of market cap * daily liquidity or something?