this feasibility study really needs such questions to see if it is worthy enough - thank you Pooya..
Could you explain what is the point of making it harder for people to run a node?
If it is security then you'll have to first explain what the security flaw and the attack vector is that you are trying to prevent and then explain whether this step would prevent it or not.
making it harder to perform a sybil / DoS attack [1] against nodes [2] in a blockchain system should be the main reason of such suggestion. in other hand, while we could limit the number of incoming / outgoing peers - this may look useless to have extra protection layer for classic attacks as we face in web servers e.g. but in our project, we have some master nodes among other full nodes, so I always had this problem to find a rational way to have a routing system among peers to balance loads and mitigate some shapes of attacks mentioned above..
now, here we are! master nodes (or any other nodes based on many reasons behind their experiences in running a full node) could define their own policy to ask an incoming connection for a higher or lower difficulty to solve. a full node could write extra policies for its outbound connections too. for example, pick a node with high difficulty after every 100 low difficulty outbound connections.
You should also explain why wouldn't this make running a full node harder than it is and what would you do to avoid discouraging people running full nodes.
people could turn it off or connect to nodes with zero difficulty, but we all know accessing to pure information costs. and actually this is why this new layer of PoW should end to a shadow-coin to encourage people to pay and buy good hardwares to run more reliable full nodes.
Technically in a decentralized peer to peer network there shouldn't be a server client relationship, everyone is a peer (at the same level).
it was about distinguish incoming/outgoing connections of peers. sorry for misinformation..
You aren't changing anything about the communication, just adding a computation step in handshake.
Again please explain what "lack of safety" you are trying to solve.
true. I hope I have explained it a little more above..
but despite of encouraging people to run a full node, there is always doubts/dispute over those full/mining(Block-Producing) nodes that they do not completely verify new block's information [3][4][5].. so with this suggested feature, we know there will be another layer of PoW that makes them more money if they verify new blocks with more accuracy.. at least people could could stop doubting them..
What would stop someone from running a farm of fake or semi-fake nodes with minimal cost earning that "shadow reward"? You certainly won't be able to increase the difficulty of this PoW without making it impossible for regular users to run a full node.
I think I have a solution. first of all, the shadow-coin relies on the same merkle-root-hash of the main coin and this makes fake/semi-fake nodes useless. so, by a simple change in block version and add rows like shadow-address, shadow-nBits and shadow-nonce to the header, we could merge shadow-coin to the main network.. but handling this needs a trick. the shadow-coin in block header could refer to 10 blocks (or more) back in the chain (somehow passes enough block confirmation for the main coin) and aim at preventing unwanted delays in new block generation, some blocks could contain two or more rows of shadow-coins while some blocks contain no shadow-coin.
and there is also a raw idea here and I ask for evaluating it please: "while generation of shadow-coin takes place by contribution of all full nodes, with some proper changes in codes, reorg process by the main coin could get banned after broadcasting a block with shadow-coin in its header.. so I could see some good effects on disappointing selfish-miners and making it really harder to perform a 51% attacks.."
this also could answer pro Anti-ASIC bitcoiners [6] that abide by decentralized soul of cryptocurrencies..
References:
[1]
https://en.bitcoin.it/wiki/Weaknesses#Denial_of_Service_.28DoS.29_attacks[2]
https://www.zdnet.com/article/researcher-kept-a-major-bitcoin-bug-secret-for-two-years-to-prevent-attacks/[3]
https://medium.com/nervosnetwork/dont-trust-verify-7c866ad1ed5b[4]
https://bitcoin.stackexchange.com/questions/80808/does-a-transaction-always-get-verified-processed-by-all-full-nodes-in-the-networ[5]
https://bitcoin.stackexchange.com/questions/81872/how-many-nodes-need-to-validate-a-newly-created-block[6]
https://bitcointalksearch.org/topic/ethereum-anti-asic-fork-is-it-the-right-time-for-bitcoin-too-5095048