Distributed systems are genuinely hard. What Satoshi did was genuinely new and that's why it has had such an impact.
I believe what I want to do is genuinely new, as new as PoS was to PoW.
People seem to think that it is easy because he made it look easy. It isn't. And there is also a huge difference between coming up with a bunch of ideas -- like that paper has-- and actually producing a secure, scalable, reliable distributed system.
Put another way, every feature means more work and more risk-- every feature reduces security, scalability, reliability and coherence in the distributed system.
One of key fundamentals is that any requirements for synchrony make it very complicated to realize a robust design.
So actually the care put into the design can make a huge difference in how difficult it is to implement it in reality.
And that's still at the theoretical level. Actually putting things into production is another matter. When you're writing code you have inadvertent bugs to contend with as well.
K.I.S.S.
I am one of top fixers of bugs historically when I worked for others.
Bugs finding and fixing do slow everything down. And blockchains must not have irrevocable errors. I agree it is a major challenge.
DPoS was able to simplify matters significantly by making the witness set permissioned (instead of unbounded as is the case for PoW miners).
Cloning bitcoin and making a few small key changes is a reasonable approach-- because a lot of work went into bitcoin.
I've never looked at the Bitcoin code and I never intend to (well heck I might look, in fact I just did for example glance at merkle.cpp).
I'd lose more time messing with that fragile C++ codebase, than I would writing from scratch. Perhaps there are some aspects I could extract from the code base, if I find it helps. But as for working from the code base as whole and trying to modify it, no chance I will follow that strategy.
All the other ideas can be done later, on other alts, or whatever.
I do agree with getting the most rudimentary functionality working before trying to add more features.
I think that's what I'm trying to say. Aim low, and achieve it, before aiming high. It's harder than it looks. ;-)
Yes of course. Don't bite off more than you can chew.
If you are writing something new, however, from scratch, with several key changes it will take you a long time. As an individual developer, at least 3-4 years.
Not just a few changes. No code has yet been borrowed from any other altcoin project, other than perhaps cryptographic and networking libraries. We'll see going forward though...
3 - 4 years? Yes if you are trying to write bitcoin-qt node. But I'll find a way to cut corners so that only rudimentary capabilities are achieved quickly and incremental improvements can be added ongoing.