For anyone who's interested, a sneak peak at the next release of Darkcoin:
TLDR:
- Next release will go out in the next two days probably, I'm going with the community and calling it "The Onyx Release"
- It features mandatory, non-exploitable Masternode payments.
- Masternode payments are completely predictable now. I.e., if there's 2000 masternodes you can expect 1 payment every 4 days (divide the amount of nodes by the blocks per day to get your ROI).
- Masternode payments will go to 25% one week from release (non-manditory)
- Afterwards I encourage the community to find the pools still paying 20% and contact them to make sure they update their stratum before it's too late
- Masternode payments beyond that will increase to 30% in November, 35% in December and continue on until we get at least 3000 masternodes.
- Huge security updates to Darksend. It's much more robust and can take a beating.
How does the payouts work for new nodes coming online? They won't need to catch up to existing payouts, right?
Also interested in how this is done!
Even if there isn't a minimum 'age' for MNs to start receiving payments, I think the system will be pretty hard to game - you can't launch a thousand MNs without a million DRK, after all.
It's a true proof-of-service setup now. Each new node has a 1 in N (total number of masternodes) chance of receiving a payment each block. After a payment, they must wait N blocks to receive another one (give or take 10%). There's no room for gaming the system because it's using math based off of the proof-of-work to prove the node won, plus you'd have to wait 15 confirmations each time you moved money around and that takes from your profit too.
What do you mean there is no room for gaming the system?
Scenario: 3000 masternodes exist, I have 1. After 500 blocks, I get my payment. At this point I wouldn't be eligible for another payment for 2500 blocks. However, I could send the coins to a new address and restart the masternode, and once its confirmed I'm eligible again immediately, this time it takes say 2000 blocks, but after I do the same, new node. And finally a third time I get my payment after 1000 blocks.
Summary: 3500 blocks have been found. I have gotten 3 payments. Ideally, I should have only gotten 1 payment in this time - 3 would require 9000 blocks.
What am I missing?
Statistically they won't fare any better, actually a bit worse:
from random import randint
s = []
while True:
for i in range(1, 10000): #10000 blocks
if randint(1, 1001) == 1000: #1 in 1000 chance each block
print i+15 #requires 15 confirmations
s.append(i+15) #keep track
break
if len(s) > 1000: break #if we have 1000 simulated results, lets add them up
total = 0
count = 0
for a in s:
total += a
count += 1.0
print total / count
On average, it's about 1015 (1 in N, N=1000, plus 15 required confirmations) which is a tad worse then they'd make just by collecting the earnings
1020.45654346
1009.71328671
1005.93606394
1034.06093906
1084.23576424
1023.8951049
1018.07992008
1024.26173826
Plus check out the blocks between payments, this would drive someone crazy:
2452
3777
1187
351
177
580
1195
952
2270
1083
781
1378
987
1535
2805
425
1092
1890
210
946
953
409
865
56
EDIT: There might be a bias to the newer node based on the fact that the algorithm is skipping nodes that don't qualify. Whenever it hits the newer node it would automatically qualify. In that case I could just introduce a greater minimum amount of confirmations before a payment to cancel out the bias.