Show Posts - mthcl
Please login or register.

Login with username, password and session length
Advanced search  


Latest Stable Nxt Client: Nxt 1.12.2

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - mthcl

Pages: 1 2 [3] 4 5 ... 21
Nxt Improvement Proposals / Fixing the blocktimes
« on: August 29, 2015, 10:37:07 pm »
Well, I think it's really time to solve this problem. What I propose, is to adopt a (strongly) modified version of the algorithm described here: https://nxtforum.org/proof-of-stake-algorithm/basetarget-adjustment-algorithm/. Namely:

1. Introduce the interval of values the BaseTarget may assume. Say, [90%; 3000%].

2. BaseTarget changes only at blocks that are multiple of 10.

3. Let T be the mean blocktime of last 10 blocks (in minutes). Then

 3.1 If T<0.9, set New_BaseTarget=Old_BaseTarget*0.93
 3.2 If T>1.1, set New_BaseTarget=Old_BaseTarget*1.1
 3.3 If 1<T<1.1, set New_BaseTarget=Old_BaseTarget*T
 3.4 If 0.9<T<1, New_BaseTarget=Old_BaseTarget*(1-0.7*(1-T))

Of course, if the New_BaseTarget tries to go out of the above interval, just set it to the limiting value.

The above values can be changed, of course, but I think it should be along these lines: we shouldn't allow the BaseTarget to change very quickly, while still allowing it to be adjusted. When doing the hard fork, set Initial_BaseTarget = 300%, say.

An algorithm like this should solve the problem of large blocktimes for good.  Also, it is more secure than the current one, exactly since the blocktime will become more "concentrated" (i.e., the variance will decrease) with it.

Goods / Re: NXT bracelet
« on: August 29, 2015, 09:55:47 pm »
very pretty! Good promotional idea. Nxt jewels! I like it

looping the loop: It would be possible to add a QR? ::)
2500Nxt excluding shipping charges not?


Sorry, what is QR?  Anyhow, if it can be made of beads, she can make it!

Shipping where?

When is the next hard fork, by the way?   If it's not very soon, we have time to make a definitive solution.
i think at least some weeks out, so yes. I just dont want to miss this next hardfork due to unresolved issues, so can we just pick a fallback hardcoded basetarget to use in case an elegant solution is not ready?
Yes, just set it to (say) 300% and enjoy the ride. But is there anyone who volunteer to do the simulations (for the definitive algorithm)?

When is the next hard fork, by the way?   If it's not very soon, we have time to make a definitive solution.

NXT is hardforking several times per year.

That's not something we should be proud of, I suppose.

I suggest just to adjust the basetarget to match the most recent time period's staking level

This is simple, adaptable and even if there is a massive change in forging percentage we could always hardfork to just change that if it is really a bad situation, but this seems quite unlikely.

This would work for now, but... see above.

The big problem now with the variance in blocktimes from 3 seconds to 2 hours is that it is a BIG problem. especially for things like instantdex that need to make assumptions about the number of blocks that will occur within the deadline
My point is that we can fix this problem for good. Just change the basetarget adjustment algorithm accordingly. In particular, I think we should allow the basetarget to change only slightly each time, not like now, when it can change really a lot in just a few blocks.

come-from-beyond [3:33 AM]
Due to a lot of misunderstandings caused by quoting of my words without the proper context I asked jl777 to re-post the following:

Basically, forging algorithm of Nxt has 2 main parts:
1. "Lottery" algorithm that is used to pick the next forger. It's called Blind Shooter.
2. Base target adjustement algorithm. It doesn't have a name because it was supposed to be removed within the first year of Nxt existence, I'll be calling it BTAA for short.

BTAA's main contract is to prevent a guy with a lot of computing power to replace last N blocks with his own blocks that have a higher "weight" and lead to blockchain reorganization. Unlike Bitcoin, Nxt forging "power" is pretty limited on the both ends. It can't be higher than 1 billion coins nor it can be lower than 100 million coins, because in the latter case the security of the blockchain is very low and such a coin can be easily attacked (so this situation won't last long anyway). Taking this into account we see that if the marketcap is not high and incentive to spend resources of a supercomputer is very low we can safely get rid of BTAA.

Capping *min* base target at 300% was a fast fix. Now after mthcl suggested to cap *max* base target too, it seems to me it's a good moment to remove BTAA completely. Just set a constant base target at some level, say 500% (rough estimate).

the above is from CfB via slack

We can as well set the basetarget to a constant level, say, 300-500%, as CfB suggests. This will stabilize the block times even more, and everything would work as a charm. For now.

However, this would only work as long as the proportion of the active stake remains virtually unaltered (for long time it was fluctuating around 38%). Because with this solution the mean blocktime would be simply proportional to the active stake. When the Nxt conquers the world, blocks will be full of transactions, so everybody would care about forging; the proportion of active stake would be, say, 90%, and the mean blocktime would go to, say, 15 seconds. Do we need it really? More syncro issues, heavier blockchain...

So, I would still let the basetarget fluctuate (probably, not so rapidly), but would modify the adjustment algorithm. There is a need for simulations, though, to determine the "better" parameters. Anybody wants to do the simulations?

OK, so, after a long conversation with CfB, I'm pretty sure that:

1. it would be OK to set the minimum basetarget to some reasonable value, say, 30-50% or so. That would indeed help a lot against bad blocks.   

2. additionally, the modified algorithm described in https://nxtforum.org/proof-of-stake-algorithm/basetarget-adjustment-algorithm/ with some γ<1 (say, 0.5-0.7) would further improve the things;

3. additionally, we can also set the maximal basetarget, say, to 3000% (to avoid VERY fast blocks). This will spoil the average blocktime in the event when the active stake is less than 3% of the total stake, but if such a thing happens, Nxt would be considered dead anyway  :)

So, I would definitely vote for implementing the changes in this direction with the next hard fork.

On the first point:
ok. if u don't allow base target to go below 100% then u may break protection against a supercomputer

come-from-beyond [1:47 PM]
a guy with supercomputer may recombine blocks and cancel last N blocks replacing them with his own ones

come-from-beyond [1:48 PM]
if he has 2 accounts he has 1 billion variants to reorg 30 blocks back

come-from-beyond [1:48 PM]

come-from-beyond [1:48 PM]
if he has 10 accounts then he has 1000000000000000000000000000000 variants

This is still equally unclear, but maybe I should discuss that directly with CfB (will have time to do that tomorrow at night).

On the second point, all nodes are already calculating how much time to the next block, right?

The nodes are doing that only for "their" accounts. To rescale that way, you need to calculate for all accounts at once. Also, mind that some of those accounts might be offline...

so this time is known, and in any case the winner of the block is independent of the time to the next block
so no need to do any scaling, just set time for next block at (prev block timestamp + 60)

The problem with messing around with basetarget is that it is used in other areas, not just the time to the next block. From my understanding if the time to next block is set to be 60 seconds (or whatever) from previous block, we can get a precise block timing without breaking any dependencies on base target.


Preventing base target to go below 100% creates an attack vector,
This is not clear. Why? Which attack vector?

I would prevent the basetarget to go, say, below 50% or so, though (so that we can speed up the things a bit after a longer blocktime).

so the better solution is to keep the base target mechanism as is. However, the time to next block can adjust the time so it ends up at a consistent time, while keeping the base target mechanism the way it is.

A more surgical change relating just to the time to next block calculation should be safer. So if it calculates to 2 seconds, multiply by 30, if it calculates to 2 hours, divide by 120
That's also unclear. Does "...it calculates to 2 hours..." mean that everybody must calculate the time to next block for all accounts?

Goods / NXT bracelet
« on: August 17, 2015, 09:51:02 pm »
Let me show you what my wife just made:

Anybody can have it for, say, 2500 NXT.

In general, she is very good at beading, making jewellery, etc. See http://www.ataridel.com/ and also http://www.asasdebeleza.com.br/home.html. She (and her friends) can basically make whatever you want (as long as you can describe it sufficiently precisely) in the spirit of things you see on those sites. So, customized orders are accepted   :)

Nxt General Discussion / Re: [CORE] White Label Blockchain
« on: May 16, 2015, 11:35:04 pm »
Hello! I see this only now. I voted, and I put here my 5 (NXT) cents:


White labelling is not only a necessary choice, it is an intelligent choice. Money and fortune will come along as a consequence, and we will have an army of pro developers. A bank must have their own IT people to deploy something, they can't outsource to a 3rd party. we will create opportunities for many to learn Nxt!

Roberto, +1440

Nxt General Discussion / Re: Price speculation
« on: May 16, 2015, 11:21:22 pm »
And NEM released their technical paper/WhitePaper


We need Come-from-Beyond

What does NEM's whitepaper have to do with CFB?  His work on Jinn will benefit Nxt.  I do miss him  :'(

I'm just interested to read his opinion about PoI
If you want my opinion, it looks quite good and serious. But I don't have time to analyze it now.

2- Anyone want to leave it can leave it. (we will buy his assets)
At which price?

Nxt General Discussion / Re: Price speculation
« on: April 03, 2015, 05:06:28 pm »

Percent of NEM harvesting done by Top 50 accounts

April 2, 23:00 -  75.6
April 3, 11:00 -  69.1

Wow! Someone harvested 48 blocks and is still unlucky!..

Alternate Cryptocurrencies / Re: NEMstake discussion
« on: April 02, 2015, 04:11:41 pm »
CfB (or anyone), did you look at the POI algorithm already?

I vote for returning the investments to the investors.

Nxt General Discussion / Re: BTER
« on: March 10, 2015, 08:25:42 pm »
I don't think I would do anything on their site yet.

I tried to withdraw my NXT, it showed my balance, let me, and said processing. 
Now it says NXT withdrawal is disabled and my NXT balance shows 0NXT and nothing is processing.
Same story here   :(

Testnet / Re: NXT security audit / attack simulations on TestNet
« on: February 23, 2015, 06:05:55 pm »
Moreover, thanks to TF, I may even be able to predict exactly when I'll succeed because it's deterministic!
This is, actually, a very important detail: one thing is when you just spend 1000 times before you double-spend (it will be not easy to gain a lot of money this way), and the other thing is to be (almost) sure you can double-spend (so you can gain a lot).  This can be defeated by that randomization algorithm with hash chains, where the forgers become completely unpredictable after K steps (just set the confirmation height to, say, 2K).

Pages: 1 2 [3] 4 5 ... 21