My analysis so far:
Below u'll find a short description of Nxt mining system. The description is based on text written by BCNext, I paraphrase it in my own words to protect BCNext's real identity against text style analysis (as was agreed).I want u to pay attention to a paper titled
Decentralised Currencies Are Probably Impossible But Let’s At Least Make Them Efficient.
The author writes:
To match this to the notion of “decentralised” (i.e. lacking central authority), the consensus group must be, at least, all participants in the currency. This does not present any real problem when that group is known. For example, it would be possible to define the group as “all people currently in the United States”– where the currency would be something akin to the US Dollar. Assuming the majority decide to behave honestly (as seems likely, after all, that is what happens now), then they should have no difficulty in forming consensus on who has how much money at what time. However, the most general notion of decentralisation does not admit such re-strictions. After all, in some sense, placing any such restriction simply pushes the central authority back a layer: instead of controlling the currency, the authority controls membership of the consensus group. A system like this must allow any entity to participate, and to join and leave the scheme at will. And here lies the problem. If you can never know who is in the scheme (bear in mind that knowing who is in is also a consensus problem!), then you can never get agreement.
In Nxt this problem doesn't arise coz all participants (miners) r known.
I agree.
This is a side-effect of 100% proof-of-stake currency. [...]
It is like 'PPC in its completed form'. Its contributors are going to eventually dismiss PoW. Right now it's a hybrid system with declining PoW part. In the end, it will become 100% PoS as well. PoS is like recycling the already-mined resources and by doing so, receiving a bounty for recycling and therefore maintaining the resource flow.
As u may know, Bitcoin et al. can be attacked by an entity that possesses 51% of hashing power. 2 main scenarios r possible:
1. Part of the miners leave the "legit" branch of the blockchain and start mining their own branch.
2. Someone buys/produces mining equipment and starts mining secret branch.
It even leads to centralization as the ghash.io case showed. NXT could have a lower centralization because of it energy-efficient nature.
HOWEVER, have a look at
http://www.nxtio.org/. Unfortunately, at first, people will resist; they don't want to give away their money. But in the end, they will contribute therefore increasing the accounts of nxtio.org further and further.
I as much as I value TF, I think one issue of it is driving many small shareholders into such pools aka centralization.
The 2nd scenario can't be applied to Nxt, coz no NXTs exist outside the network. [...]
To speak in the words of the author of the paper above, buying/producing mining equipment is therefore equivalent to buying NXTs: it is acquiring consensus power.
In case of NXT, the maximum consensus power is known in advance. That power can be distributed but in total it will never change.
[...]
BCNext is satisfied with the results shown during last 2 weeks and now is going to adjust the mining algo a little bit to make it transparent.
What does this transparency mean? It means that anyone can predict (with very high probability) who and when will generate next block(s). And this gives us superior advantages:
1. Transactions can be sent directly to the miner who will mine the next block (if he decides to reveal his location on the Internet), thus saving traffic and coming much closer to VISA/MasterCard processing volumes.
I cannot see a flaw in that.
I would request some background data here: which nodes had a node sent its transactions to before TF was introduced? To each it is connected to or was there a special selection of nodes?
2. Blocks can be generated in advance and sent to most of the miners before they become valid (timestamp validation), thus greatly reducing rate of orphaned blocks.
So, when does this process happen?
When there are more transactions to be included in the current block than the block's maximum number of transactions would allow, right?
3. Due to ability to predict timestamps of future blocks (rate of blocks) it becomes possible to set appropriate fees to assure quick confirmations for important transactions (without paying too much for inclusion into a block).
That relates to my question about 2. How is consensus reached on which transactions are included when there are more than the block's max would allow?
Couldn't it be possible that nodes simply agree on not verifying a specific transaction and therefore excluding accounts from transferring NXT.
It has a certain similarity to OS scheduling (processor = block and has limited capacity to handle ops). Some processes are indeed more important and deserve more processing time but starving processes should be avoided as well no matter how small its priority is.
My conclusion here in case of TF, higher fee = higher priority and greedy behavior of forgers:
Bad Trudy knows the forgers in advance. So, it sends her big priority transactions to these nodes and therefore preventing the verification of other transactions.
One solution is therefore to increase the block's maximum number of transactions so far that makes it practically impossible to incent a forger to only forge Trudy's transactions.
And the most important feature:
The network can detect which miners don't take part in block generation and act accordingly.
The last point deserves to be described with more details.
Imagine someone is going to do a "51%" attack against Nxt and he owns 90% of all coins. The adversary must stop generating blocks for legit branch coz he won't be able to compete against 100% mining power with his 90%.
I don not understand that. If he has 90%, why does he need to compete against 100% and not 10%?
So he decides to "skip" his turn to generate a block. The rest 10% of the network detects this and penalizes the adversary by setting his mining power to 0 and distributing it among other miners. Now the network is back to 100% power coz everyone got 10-fold increase. The adversary can mine other branch in a secret place but it won't be able to replace the legit branch. Of course, the 2nd branch will have 100% "hashing" power tied to it as well, coz the attacker will get his 90% bumped to 100% but this can be counteracted by some mechanisms of advanced consensus (still not revealed).
Why just skipping? Couldn't a 90%-forger do much more evil things? Why not rejecting some transactions? Or verifying only its own?
Maybe, you can elaborate more one this.
As a 100% PoS currency Nxt is protected against a government wealthy entity that could buy/produce a lot of ASICs, with the transparent mining it's protected even against someone buying most of the coins.
Protected against not-creating a block.
So, what does make Nxt a really next-gen currency? Not those nice features like decentralized exchange, or decentralized DNS, or decentralized app store. The transparent mining algo does, and this is only the 1st part of BCNext's plan...
Edit: BCNext pointed out that I forgot to mention Selfish Mining. Sorry. Transparent mining solves the selfish mining issue completely. Dixi.
Let me get this straight:
Every account (call it X) in the network is able to determine which other account (call it Y) in the visible network should forge the next block, right? If Y refuses to do so, X will penalize Y as that, X won't consider Y forging the next 1440 blocks. I think I got that.
What about accounts outside of the perspective of X? They are practically not forging from the perspective of X.
There could be an account (call it Z) X have no awareness of and will get the forged block of Z via its peers. Because the peers P are trustworthy, X will only get a block from Z if Z forged a block when it was supposed to in the eyes of P. So far, so good.
What if, the peers aren't trustworthy? What if Z is only visible to its fellow peers and the peers function as a intermediate to Z?
Like in "I am sorry, I am late, but Z forged its block on time. I mean all this network latency and the intermediate nodes between Z and me. Took some time, but we finally managed to get the block to me and NOW you get it, too, my dear X."