On the developer slack channel there have been numerous conversations about whether PoBN would be open to abuse by service node operators running multiple full bitcoin nodes sharing a single blockchain.
Abuse is the wrong word.
PoBN (
Breakthrough 3) wants to find a way of proving unique
storage of a blockchain.
(The key word here is storage. It is neither about availabilty nor connectivity or anything like that.)
So the worst thing that can happen
without PoBN is that blockchains are reused within the network,
meaning that the actual number of full nodes would just be an illusion, appearing more numerous than they actually are.
But that is a known ongoing problem with all cryptocurrencies, and nobody has yet found a solution.
I have been doing some research into this over the last few days and I think that it isn't necessary to require cryptographic proof that a bitcoin node is using a unique blockchain copy.
Bitcoin Core (and XT for that matter) uses a database lock which locks the Berkeley Database when a blockchain is mounted and prevents another instance from connecting to the same blockchain copy. This lock was put in place because if you have multiple bitcoin instances reading/writing to the same blockchain, near instant corruption occurs stopping synchronisation and forcing a reindex.
It is possible to over-ride the lock by deleting the lock file and opening another instance but blockchain corruption is rapid, almost instantaneous.
File locks don't prevent other instances from connecting to the same blockchain copy.
That's why UBA is easily able to read out "locked" blockchains.
It's merely the write/update process that is tied to a certain process by a lock.
And even this access restriction can easily be circumvented within the system by using a more privileged user or processes with higher priority levels.
Look at a lock file as something like an "etiquette", where one process is claiming temporary ownership of a folder/files and expects other processes to respect this.
Basing security on such a superficial approach would be ridiculous.
Does this mean that if a service node is scoring well in quality of service and has an up to date block height it can be trusted as a unique node?
Again, PoBN is about
BreakTrough 3, which is a hard scientific problem, and that's why it's far in the future and low priority right now.
The "Uniqueness of a servicenode" I'm
currently working on for the upcoming
decentralized blockexplorer (
BreakThrough 1) is based on (and enforced by things like)
1) collateral
2) IP
3) how other servicenodes/UBA score your "contributions" to the network
Note that this concerns the uniqueness of a servicenode
regarding its availability and connectivity, and
not the unique storage of blockchains.
You could even throw a random transaction verification into the mix.
I'm sorry, but this problem is not gonna be solved by just throwing stuff at it.