NKN2.0 The Debate - concerns, ideas, thoughts

1 Address with 250 NKN holding can run 1 node which is good idea i believe. It’s lead healthy mining. But thing is again nodes will drops heavily.

At this time 23000 Nodes we can proudly say we have strong network and more commercial clients will attract us.

Less network nodes impact on project interests.

1 Like

Simple fiat swap?
Or even include paid deployment via someone such as NKNx…

“coinbase launches 1 click NKN node”: 90% of nodes on coinbase :smile:

Would be pretty massive numbers if Coinbase had a direct node-launcher on their website, especially if it’s only a couple bucks to do so.

The only question is how does NKN position itself: If it is just a commercial network and business as a NOIA or Harmony - then in principle KYC takes place. But, if we take for example such huge P2P opensourse networks as TOR or Yggdrasil, then there is no KYC and it is out of the question. But it is also worth noting that KYC can be entered optionally - for example, only a past KYC node can run a commercial nCDN. Personally, I don’t like the idea of KYC at all.

I totally agree that we are missing the NKN 2.0 stats, including TUNA, nCDN and off-chain traffic data. It will be really cool if team make smth like nMonitor, where all the network data will be shown. (Maybe team even have such kind of tool, but using it’s internal :smiley:)

Yes, the code backbone of different VPS providers may be a problem, but it’s obviously not a problem of NKN itself. Antifrod systems of DO, AWS or Vultr should deal with these issues themselves. There will always be a loophole and various ways to cheat. I also remember Yilun said that the current geodata of nodes is not quite correct, so not all 97% of nodes are actually located in the US.

It’s true, at the moment the cheapest servers on most popular providers cost from 5$, and if you run nodes without any purity, there will be absolutely no profit. I have a few thoughts on this, too.

  1. Fixed award in USD. Instead of the standard 11.4155251, you can use a dynamic NKN award by calculating it using a formula (Of course, this formula is very approximate, because it doesn’t take into account the other nodes’ latency): miningReward = avgVpsUsdCost / nknUsdPrice / dailyBlocksCount * totalNodesCount / monthDays. So far we have got something like this: Reward = 5$ / 0.022$ / 4100 blocks * 23000 nodes / 31 days = 41,1 NKN. This award on the distance will ensure the payback of the server, and the bonuses for nCDN and TUNA will go into net profit. Another important issue here is tokenomics: it is not very clear how useful this solution is for network if most of bandwidth is not utilized.
  2. Right after spinning up the node, user provides the VPS API key, Instance name and Provider name into the config.json. Then some third-party tool, which is not hardcoded into the blockchain code, let’s name it nValidate, will make some stateless queries (without saving the API key anywhere) to the VPS API, verify if instance is really running and return back it’s hourly/monthly const. The each hour/month the node will get the bonus, that will cover the VPS costs. And again, dunno if it’s good for the total network economy
1 Like

Excellent food for thought thanks!

Hi @Mutsi and all: just got back from vacation and here are some personal thoughts.

  1. NKN 2.0 Commercial and stats
  • As an example, for iQIYI nCDN service, we do provide miners a daily earnings estimate, as well as weekly earnings summary, via the nMobile Pro app. So miners can clearly see their iQIYI nCDN stats.
  • We do intend to support the similar type of earnings stats for other NKN Commercial services, otherwise no miner will run the service if they do not know the profitability of that particular service.
  • We are bound by the R&D resources we have, and will add such stats to more NKN 2.0 Commercial services. Most likely they will be provided on nMobile Pro app.
  • We are designing the stats to be as decentralized as possible, i.e., node status and relay count etc will come directly from the nodes, via nsh and d-chat. Thus our centralized billing server will only focus on the actual payouts, as well as provide security and protect against potential fraud and fake volume.
  1. Node concentration in cloud VPS providers
  • @yilun will provide a much better answer regarding 51% attack. He might have already written somewhere, but let’s wait for him.
  • Cloud VPS versus home node (e.g. Raspberry Pi). I agree that at current node count and current NKN price, the monthly NKN mining yield is not very attractive for anyone running on DO or at home. I have no idea, how can someone get a VPS node cheaper than $2.
  • Long term I believe we do need both cloud VPS and home nodes, since their strength are complimentary and will make a much better network overall. Especially for commercial service with certain Service Level Agreement (SLA).
  • From what we see in China regarding iQIYI nCDN service, we have a good balance of both large nodes (powerful virtualized x86 running in datacenter) and small nodes (ARM based home router, NAS). Currently each group provides about half of total traffic. Of course there are many more small nodes than x86, since each small node has smaller uplink bandwidth. This result is not policy driven or NKN regulated, rather entirely based on economics.
  • We hope the other NKN 2.0 Commercial services will have similar distribution of nodes.
  1. Token economics
  • For this I’m still looking for a good solution that can balance the need for decentralization and miner incentives.
3 Likes

Thank you Bruce for taking the time and welcome back from vacation hope you’re well rested and in good health.

Its great to read that most of the things are currently in the pipeline.
I would love to be able to show commercial info on nStatus for instance.
It feels like with 2.0 we have been given the hammer but not yet the nails, or rather a complicated magic box and we simply dont know what goes in and what goes out.

The tricky thing is that whomever has access to the cheapest resources will potentially dominate the network and force out smaller players. This will inevitably always lead to a situation where only one player or a few players are profitable regardless of the NKN price or reward scheme.

Perhaps owning a node should have benefits which are not strictly financial, perhaps I could have access to NKN services using a trusted node’s identity for instance. Or someother ways of rewarding running a node. Basically any kind of reward which is non directly linear to the amount of nodes that you operate and not strictly financial.

i will only reply to some points, because otherwise i would be sitting here for hours. i would recommend that we create a list of things that needs to be done from our perspective and the team or one member will have an open discussion with us about it. that means not some 1 hour ama, more like several hours of open discussion. the problem of centralization aside how about we start with the token economics as a new topic. people will have 1 week to write their ideas down. the team will get 1 week to come up with their own ideas and than they will present us lets say 3 options which they think would make sense. and we will have some open discussion about it.

  1. kyc: people hate doing KYC, especially for smaller sums not even talking about privacy issues. Imho to much of an entry requirement.
  2. getting node stats: for disk space usage i would recommend to use system specific calls that add up the total space usage e.g. under linux the du command and as an extra some df check as a warning if space gets low
    2.1. getting node stats: for network usage i would recommend to use some native go measure software solution, there are some solution on github. not sure about the software license and the security aspect. if the codebase is rather short the team could do a check.
  3. latency to check for nodes as part of a large node cluster: while i am not sure i bet its possible to slow down the reply to make a node look like its not part of a larger cluster
1 Like
  1. Regarding KYC I admit I think that is something I would not want to see.
  2. Excellent suggestions if such things could be implemented in the mining software so that those can be read out from all nodes.
  3. Most definitely you could, however if you induce latency you will also forgo your local network latency advantage.

That last one leads me to a thought; the chance of receiving a block is proportional to the number of relays that a node processes, I know there are multiple factors contributing to finding a block. However I believe relaying is an important parameter if not the leading the leading contributor. If so this further benefits local clusters. Perhaps an idea would be to clamp the lower boundry of the latency to lets say 10ms or 20ms so that the benefits of local network effects are gone which is as it stands (afaik) another advantageous mechanic for cloud nodes.

Really insightful and valuable thoughts! Here’s what I think for each questions.

Network Centralization

One root cause of the current centralization situation, in my opinion, is the lack of relay traffic at the moment. There are some ways to get very cheap cloud nodes, but one has to pay regular price for the bandwidth (as far as I know). Without enough relay traffic, bandwidth cost is neglectable; but if there are enough relay traffic, bandwidth cost will be high enough to make most cloud nodes not profitable anymore. However, everything is based on my assumption that bandwidth is not free on cloud nodes. If someone can even get free or very low cost bandwidth, the conclusion will no longer be valid.

  • Minimum NKN requirement to run a node

We have discussed about it as well and it seems to be a solution in the long term. But there are a few things to think carefully before we decide to do it this way:

  1. It’s probably something to consider after mainnet token is listed in at least one major exchange so most people can easily get some tokens
  2. It adds a barrier to run a node and might be harmful for attracting new miners
  3. It might not solve the problem if the current cloud node owners are willing to purchase tokens (or use their existing tokens) and put them in node wallets. On the contrary, massive cloud node owners might be even more willing to do it than regular users because their profit is more stable and they do it for business. Look at Bitmain, they not only control the most nodes in Bitcoin, but also have the most resources and can design and produce ASIC that regular miners can’t do.

Another idea that came to mind which might be feasible regarding pushing out cloud providers; flag and block all 0 ms latency nodes. That should take out large centralised datacenter node clusters. And those nodes add little to nothing to network value at this time. 1st of all they provide no additional geographic coverage, and they provide no additional bandwith as the network is already extremely underutilized. Look at china that is running most services with under 50 nodes in use.

This will not work technically because anyone can easily make a node respond later by modifying a few lines of code, so the observed latency can be increased arbitrarily.

Also, 0ms latency does not mean latency is 0ms, but means latency is not measured (successfully) yet because 0 is the default value in Go. Even local nodes should have very low positive latency (e.g. 1ms). 0ms latency nodes has lowest priority (not highest) to be selected.

  • Mining pools to make payout more consistent, no one likes waiting 2 weeks to earn their first 25 cents due to being unlucky.

I would also be happy to see someone creating a mining pool, although I guess it’s not as easy as other mining pools because the network requirements.

  • KYC / ZK-Identity to limit nodes/user
  • If minimum NKN on a node to participate is not feasible decentralised perhaps this can be facilitated through a centralised solution, all mining nodes for instance should have a minimum amount of NKN on their mining node wallet (1000 NKN for instance) every time a mining node wins a block it can have a potential payout from a NKN mining lottery, this would incentive running more nodes and also lock up NKN and it would draw attention/fun to the mining ecosphere.

That might be too centralized. I think it’s better for the infra and mining to be as decentralized as possible. If there is one part that is centralized in the ecosystem, I hope it’s the business and commercial part.

Commercial Stats

  • We can’t easily know if our node is running commercial, there is no RPC endpoint info made available.

nkn-commercial is designed to be very decentralized, so even the team doesn’t know exactly how many of them are running. But there is a way to estimate it using tuna subscribers (assuming most tuna are running through nkn-commercial):

const nkn = require('nkn-sdk');
nkn.Wallet.getSubscribers('tuna_v1.httpproxy', {limit: 10000}).then(x => {
  console.log(x.subscribers.length);
});

Currently the result is around 1600, that means there are at least 1600 nkn-commercial running. Note that this estimation is an underestimate because nkn-commercial will only start tuna if it finds the ports are open.

  • There is zero insight in any off-chain traffic it is hard to get excited about all the partners that are being signed if what we can see from that is exactly nothing; granted this is likely under NDA but estimated metrics or anonymized metrics would be godsent.
  • TUNA same story, im running TUNA now supposedly on NKN2.0, am I really though? How do I see if I have any open channels.
    I can concede that offchain communications on network scale are possibly impossible to measure and report on however surely there are reasonable estimations to be made using metrics such as subscriptions, nkn payments through nanopayment channels and extrapolating from owned nodes.
    The current ecosystem is entirely opaque and there is almost no insight into anything. The only thing that I can currently have insights into are onchain metrics and my own node relay performance. I think that is inadequate as with NKN2.0 those are pretty much the least interesting metrics those won’t get anyone excited.

nkn-commercial is actually the foundation (or the miner’s side) of services we are working on. With miners upgrade to nkn-commercial, we are ready on the infrastructure and resource side, but the application side is still chasing up (except iQiyi). The stats will only be meaningful with both are ready to show.

For NanoPay based service (e.g. tuna) one can actually look at the blockchain explorer because NanoPay txn will eventually go on-chain. We haven’t published any stats or make any dashboard showing it because the number is still quite small, as you can see using nscan.io for NanoPay. If the number grows and becomes worth mentioning, we would definitely show it up :slight_smile:

For commercial services (e.g. iQiyi) it’s a bit hard because currently you can only see your own earning through nMobile Pro since nothing goes to the mainnet. But we will try to find a way to show it somehow. We will definitely be happy to do it because it shows real world adoption, which is what we have been trying to achieve.

  • I’m supposed to be running nCDN now, how much of my disk is being utilized right now, how much bandwith am I providing over nCDN, again no insight.

You won’t provide services for nCDN or iQiyi if your nodes are not in China because iQiyi only wants China IP currently. But this is only for now: iQiyi is also expanding to non-China market, and we are also trying to replicate the same mode with other companies.

The iQiyi related discussion might be a bit hidden to people outside China, but within Chinese miner community, there are already many hundreds of devices providing services to iQiyi, but they are not running nknd because they most likely don’t have public IP address, so you can’t see them in the node map.

  • When will I receive commercial rewards, will this be in form of nano-payments? Also I’m confident pretty much no one in the community even heard about or knows what nano-payments are and how they work.

It will be in the form of NanoPay so visible on explorer. But the problem now is the lack of users compared to providers. Our BD team is working on acquiring customers, so let’s hope they do well!

I tried to address most aspects, but please let me know if I’m missing anything. Again, really appreciate for these insightful and valuable thoughts, including the ones in replies :slight_smile:

2 Likes

Thanks a lot for your most valued feedback Yilun.

Blockquote Without enough relay traffic, bandwidth cost is neglectable; but if there are enough relay traffic, bandwidth cost will be high enough to make most cloud nodes not profitable anymore.

That is something I had not considered, I suggest ramping up number of relays for the network, have you considered signing contracts with YouTube, CloudFlare and perhaps integrating NKN in ETH or BTC for faster propagation between nodes ;)?

Thank you for that, this is something I will want to integrate in the nstatus dashboard to provide at least some insight into TUNA!

You have thanks a lot for taking the time to sit down and share all this info!

Haha we definitely have considered and will continue to consider in the future, just need their interests :slight_smile:

  1. yes
  2. could we get some kind of vote from the current miners, i highly doubt that putting some nkn into your wallet will keep us from running a node, some people already mentioned except for nknx its complicated for most users to get started anyway so one extra step wont keep us from doing. but there needs to be more revenue. if mining is attractive in any way, people will buy nkn to run a node. otherwise there would be more or less no project which needs tokens to run a node, its a working model.
  3. asic? lol
    3.1. if there is some more potential value in running a node, even the large nkn node clusters wont be a problem because there would be a large amount of decentralized node clusters

Reopen this topic, welcome to discuss.

Is an optional miner PoW holding something to consider, rather than losing half your miners due to an eg: 100 NKN minimum holding, you could perhaps slash rewards instead for miners not holding NKN, perhaps they only receive half a block reward for instance.

That way the transition wont be as steep, and perhaps there are plenty of node runners that have zero operational costs so they can just keep going at it without allocatiing the NKN right away.

That might be good for transition, but with one drawback: it won’t increase staked miners’s reward because unstaked miners can still produce blocks, instead it will reduce total mining output. Staking will only become profitable when unstaked miners stop mining and thus reduce total node count.

If the objective is to decentralize the network and encourage people to run nodes from home, you better avoid any entrance barrier such as holding a minimum number of NKN as stake. I personally started playing with NKN because there was no initial payment to make to buy stake like it exists for many altcoins. Furthermore it won’t discourage heavy miners who anyway already have many NKN to put at stake if needed.

Hi Rudolf!

If the objective is to decentralize the network and encourage people to run nodes from home, you better avoid any entrance barrier such as holding a minimum number of NKN as stake.

That depends how you look at it, currently the yield is also a barrier because there is simply no value proposition. Removing large scale operations from the equation by a sufficient minimum nkn holding so that it makes running 10k nodes have a very high upfront cost could stimulate home nodes.

Furthermore it won’t discourage heavy miners who anyway already have many NKN to put at stake if needed.

That depends entirely on the amount needed, I feel like this should be a linear/log progression, perhaps you want 1 billion nodes with 10% of all NKN allocated as the end goal. So then youd want to eventually end up at 0.1 NKN per node. Just some random numbers. But could start with 3333 NKN per node now (10% of total supply / 30k nodes). And slowly progress to that 0.1 nkn per node.

First of all, no one should be using cloud instances to mine. Think about it this way: suppose someone has a money printer that prints $80/hour. The only reason that person would rent you this money printer is if you are foolish enough to pay more than $80/hour, which is what has been happening with cloud mining that costs more per month than it yields in NKN tokens. Mining on hardware that isn’t yours makes absolutely no sense at all - the only way you could profit from it is if the cloud provider is ignorant of NKN. It isn’t just my opinion that cloud mining will stop, it is an inevitable economic truth once more people learn about NKN. When NKN is mature there will be a negligible amount of miners using this approach. Markets can be very irrational and speculative at times, but in simple scenarios (like figuring out if a coin is profitable to mine) they can be expected to act rationally. All mentions of cloud mining should be removed from this website.

On Discord, Yilun said the following:

Actually I’m not a fan of PoS either. What we are discussing is still PoW, but probably with a minimal holding requirement, so the cost will be hardware/data cost (as before) + opportunity cost of the token holding.

The utility of money isn’t linear. The more money you have the less useful each subsequent unit of money becomes - currency adheres to a law of diminishing returns. If I earn $100/month I can afford to buy food and water to survive - the difference between $0 and $100 is life and death. If I earn $10100/month there isn’t much difference between making $10000 - the $100 increase has almost no impact on me.

What this effectively means is that the less money you have, the more “utility” you have to use up to purchase things. A person earning $100/month facing a fine of $50 hurts a lot more than someone earning $10000/month facing a fine of $5000. My point is, under a system requiring a stake of NKN would disproportionately harm poorer users - in other words, the opportunity cost is higher the less money you have. One person who earns $10000/month has much less difficulty paying a minimum token fee for each node than a combined 100 people who earn $100/month. Suppose that right now there’s 10000 nodes belonging to 1 big miner, and 10000 nodes across 2000 miners. If a minimum token holding of 250 NKN was required then each side must pay 10000*250= 2500000 NKN. I expect the centralized miner would struggle less than the decentralized miners to pay for the 2500000 NKN.

NKN is special because the bottleneck isn’t electricity, it’s network connectivity. This ultimately leads to it being unprofitable to buy hardware specifically to mine NKN. Bitcoin miners are in an arms race to produce the most electricity efficient mining hardware to squeeze less efficient miners out of the mining pool. There’s no such arms race in NKN because the electricity costs are negligible. Comparisons to Bitcoin are invalid for this reason; studying the Bitcoin mining centralization levels is useless because NKN’s mining economics operate under a totally different dynamic.

Once the price rises, the network will become more decentralized because the big miners cannot expand by buying more hardware to mine it because doing so isn’t profitable. That’s the genius of NKN’s mining economics. The big miners will reach a capacity limit then that’s it… no more nodes from them. All the while more and more people around the world join in using their own hardware to mine it.

I envisioned a world where almost every network connected device was acting as an NKN node. This stake change would make that reality impossible. There’s no way any software or hardware would come preconfigured with an NKN node option if it requires staking. NKN can’t conquer the world if a requirement is added to setting up nodes.

If you make it more expensive to setup a node, then not only will you have fewer nodes in the network, but the nodes will be more centralized as the wealthier people are more able to afford nodes. It would be a disaster.

The best way to improve the mining situation isn’t tweaking how NKN works, it’s improving marketing and getting the message out to more people.

1 Like