Evil-Knievel
New member
Hi,
I am a holder of several thousand DRK, and I have taken some time to dig deeper into the DRK source code.
First of all, I have found the DOS attack on the masternodes list by sending TxVin's with varying nSequence number which allowed me to include as many entries as I wanted into the masternode list. Luckily this was quickly fixed.
But what I have found, is a lot more critical in my opinion.
The fact, that we have many distributed master nodes, does not imply full decentralization.
In fact, the masternode payments system works like this.
All masternodes periodically send their pings, to keep their position in the masternode list.
Then some "magical entity" elects the payee's which means the masternodes that will be payed in the next block. This is performed 10 Blocks in advance.
The fun thing is, that this election can ONLY BE DONE by the magical entity. If this entity vanished, no masternode payments will work anymore. More critically, this magical entity seems to be controlled by the developers of darkcoin.
More precisely, the "election of the winner" is signed in the function:
bool CMasternodePayments::Sign(CMasternodePaymentWinner& winner)
using the strMasterPrivKey.
The signature of such election/consensus votings must come from the
HARDCODED PUBKEY:
const std::string CSyncCheckpoint::strMainPubKey = "04bcba2b149fe9d54f218208dd02aecd7b2245ef21c937207966f0814365b4d1c5d521d001f2df294bafb0fbe5ee4c3290b0c25bff8fdd886b6e3e9317758a7d75";
Now my question is, who is controlling this PublicKey, why is the whole system depending on the presence of the entity controlling the pubkey? How are you planning to AVOID THE CENTRALIZATION?
I am a holder of several thousand DRK, and I have taken some time to dig deeper into the DRK source code.
First of all, I have found the DOS attack on the masternodes list by sending TxVin's with varying nSequence number which allowed me to include as many entries as I wanted into the masternode list. Luckily this was quickly fixed.
But what I have found, is a lot more critical in my opinion.
The fact, that we have many distributed master nodes, does not imply full decentralization.
In fact, the masternode payments system works like this.
All masternodes periodically send their pings, to keep their position in the masternode list.
Then some "magical entity" elects the payee's which means the masternodes that will be payed in the next block. This is performed 10 Blocks in advance.
The fun thing is, that this election can ONLY BE DONE by the magical entity. If this entity vanished, no masternode payments will work anymore. More critically, this magical entity seems to be controlled by the developers of darkcoin.
More precisely, the "election of the winner" is signed in the function:
bool CMasternodePayments::Sign(CMasternodePaymentWinner& winner)
using the strMasterPrivKey.
The signature of such election/consensus votings must come from the
HARDCODED PUBKEY:
const std::string CSyncCheckpoint::strMainPubKey = "04bcba2b149fe9d54f218208dd02aecd7b2245ef21c937207966f0814365b4d1c5d521d001f2df294bafb0fbe5ee4c3290b0c25bff8fdd886b6e3e9317758a7d75";
Now my question is, who is controlling this PublicKey, why is the whole system depending on the presence of the entity controlling the pubkey? How are you planning to AVOID THE CENTRALIZATION?