With respect: this is a glib, bullshit answer, and you can't prove the "most of us" part any more than you can prove the "BCNext did math analysis" part.
Three months in and we have no Whitepaper, no documentation of algorithms, and no modelling or statistical analysis.
The greatest irony of the great decentralized Nxt Ecosystem is that its core is centralized in an opaque, anonymous identity who only communicates to the world through a Belarusan Java programmer on contract.
One day soon, Nxt will be called out for this. It is Nxt's biggest flaw.
He found the fatal flaw and he is right.
Wrt "Three months in and we have no Whitepaper, no documentation of algorithms, and no modelling or statistical analysis"...
U have source code. It's enough to get the rest. Don't u think that one needs IQ > 200 to do the analysis?
The problem is
communication, my friend. What's not in the source code is WHY things were built the way they were, or what BCNext's expectations are for the community, or a plan that isn't communicated in one-line forum posts once every 20 forum pages.
What's missing from BCNext is a commitment to
communication and transparency towards the very community that have turned his 6000 lines of Java into actual potential.
There is no such thing as too much communication. BCNext is a fine example of the opposite.
I think (this "think" is speculative) that BCNext (and CfB) are very concerned about centralization, that of expertise and authority, in the minds of too few people whom others look up to too much.
Since I'm talking about proof and independent verification tonight, let me help start the discussion going:
Consider the algo BCNext chose for how TF selects the next block forger. It's
described in the wiki. We know that BCNext wanted your probability of forging to be proportional to your effective stake, i.e. the amount of nxt in your account that's been there for at least 1440 blocks. So why did he choose that algo, instead of simply:
1) Strictly order all accounts with >0 effective stake
2) Roll a deterministic die from 0 to sum_of_all_effective_stakes
3) See which interval [ sum_of_all_previous_effective_stakes, sum_of_all_previous_effective_stakes + effective_stake_k ) it lands in, where effective_stake_k is the effective stake of account k.
4) If account k is online and forging, pick k as the next forger. If not, goto 2, rolling further along the sequence of deterministic rolls until you land on such an account.
This algo would be the most direct way to ensure such proportionality. So why did BCNext not choose this, and instead go for something that a priori would seem to have different behaviour?
I thought about this a couple weeks back, and I think I have some answers. Math/CS guys, think about the following:
1) Let's say you're not satisfied with just running sims. How would you prove that for each account k, p(chosen by BCNext's algo)/p(chosen by my algo) approaches 1 as the # of accounts with an effective stake approaches infinity? This statement isn't mathematically complete: what exactly would you mean by # of accounts approaches infty? Wouldn't more accounts mean smaller stakes and hence change the effective stake of each k as you increase the #? How would you modify this statement to something that you could prove or disprove?
2) Compare the performance of BCNext's algo with my algo under different conditions: different # of accounts with an effective stake, different # of such accounts that are online and forging. When would you choose one over the other?
I can reveal my own answers in a week if folks are interested, just ask
But I'm guessing that BCNext (and CfB) want more people to think through all this, as well as other parts of the code.
I teach olympiad (competition) math for a living. Not just the "calculate answers" kind of math, but also the "reason through" and "prove" kind of math. I can't see how to teach this well by prescribing how-tos, going through working, or even proving theorems and formulas that my students may use. All that teaches "how" and "what", but not "why". The way I teach "why" is by getting students to explore, with some guidance. That means to get them to try different methods, and also to examine their own reasoning. Maybe they will find that their methods are wrong. Maybe they can fix their errors. Maybe they will discover other ways of solving the problems that I did not think of.
I'm guessing that this is what BCNext and CfB are trying to do.
CfB, is this the case? Was this part of your contract with BCNext?EDIT: Woohoo, just in time for 2000!