Author

Topic: NXT :: descendant of Bitcoin - Updated Information - page 217. (Read 2761645 times)

newbie
Activity: 56
Merit: 0
we are trying to make 10 or so blocks reliably predictable and 1440 blocks reliably unpredictable at the same time.

So wouldn't a POW block break this? Say POW block is in 3 blocks, but we want the 10th block to be predictable?
sr. member
Activity: 364
Merit: 250
☕ NXT-4BTE-8Y4K-CDS2-6TB82
This thread has so much information, I'm going to try and catch up to it all Smiley

Good luck, my dear.
member
Activity: 66
Merit: 10
This thread has so much information, I'm going to try and catch up to it all Smiley
sr. member
Activity: 364
Merit: 250
☕ NXT-4BTE-8Y4K-CDS2-6TB82
[...]

So, if there will every be a row of 1440 blocks, it is over.

Regarding the probability for that scenario:

Pn = 0.5^(1443)*0.5*n

n=number of blocks


Problem: my calculator says 0 Cheesy

0.5^14 ~ 0.000061
0.5^144 ~ 4.5^-44
0.5^-1440 ~ http://www.wolframalpha.com/input/?i=0.5%5E1440
member
Activity: 84
Merit: 10
Hi mikesbmw, that is too bad Cryptsy is not promptly managing NXT deposits.  I have been emailing them for weeks (multiple attempts) to have them display correct NXT information at https://www.cryptsy.com/currencies/view/118 with no success. Maybe someone else here would like to follow up with Cryptsy regarding listed NXT information.

EDIT: Cryptsy changed most of the information, but still lists NXT as closed source on the third bullet point, referencing January 2014.

Hmmm, Cryptsy is at it again...

Deposited 7500 NXT, 22 hours ago and it is still not added to my balance.
It arrived, minutes after sending, at the correct address. After some e-mails back and forth this was their final response:

------
Thank you for providing the information needed.

NXT deposits and withdraws are delayed. NXT is a new coin that we have introduced. There will be some delays as our technical team along with the developers of this coin are working hard to make this new coin run smoothly. Please bear with us as we work to improve your trading experience.

Thank you for your patience and understanding.
------

 Angry
newbie
Activity: 20
Merit: 0
Do I understand correctly that there is concern about the fact that the "randomness" is actually pseudorandomness (i.e., it is deterministic, but not predictable)?

In this case, we can just put some "true randomness from the real world" in: take some parameter which is rapidly changing in time and is not controlled by one person or entity, and use it as an additional randomizer. For instance, total amount of all transactions (and/or fees) in the previous block could act as this randomizer.

I was wondering if in some cases the participants couldn't include a number that would be one of the factors contributing to the "randomness".  I've wondered about a decentralized heads up poker table, and if it could take some stats in the blockchain, combined with a number that each player may include before "shuffling".  I don't know if it would be necessary, but if each player could throw a factor in, I assume that could only help faith in it.


On a separate note, I am currently listening to the latest Sex & Science Hour on LTB!, and they mentioned how it seems there is nothing that can't be done on Nxt!  Just wanted to thank all you magicians hard at work here.  Your efforts are appreciated!
sr. member
Activity: 364
Merit: 250
☕ NXT-4BTE-8Y4K-CDS2-6TB82
Do I understand correctly that there is concern about the fact that the "randomness" is actually pseudorandomness (i.e., it is deterministic, but not predictable)?

Yes. It is determistic and can be pre-computed till the end of the universe.

In this case, we can just put some "true randomness from the real world" in: take some parameter which is rapidly changing in time and is not controlled by one person or entity, and use it as an additional randomizer. For instance, total amount of all transactions (and/or fees) in the previous block could act as this randomizer.

Yes. As could network topology.
legendary
Activity: 2142
Merit: 1010
Newbie
Ok, not this. But maybe there are other parameters of the network that change rapidly and that no one can effectively control (number of forging nodes, ..., whatever)?

Network topology, but we r already going to use it.
sr. member
Activity: 338
Merit: 250
Hmmm, Cryptsy is at it again...

Deposited 7500 NXT, 22 hours ago and it is still not added to my balance.
It arrived, minutes after sending, at the correct address. After some e-mails back and forth this was their final response:

------
Thank you for providing the information needed.

NXT deposits and withdraws are delayed. NXT is a new coin that we have introduced. There will be some delays as our technical team along with the developers of this coin are working hard to make this new coin run smoothly. Please bear with us as we work to improve your trading experience.

Thank you for your patience and understanding.
------

 Angry
sr. member
Activity: 376
Merit: 300
Do I understand correctly that there is concern about the fact that the "randomness" is actually pseudorandomness (i.e., it is deterministic, but not predictable)?

In this case, we can just put some "true randomness from the real world" in: take some parameter which is rapidly changing in time and is not controlled by one person or entity, and use it as an additional randomizer. For instance, total amount of all transactions (and/or fees) in the previous block could act as this randomizer.

We can't coz an entity with a lot of computing power will be able to game the system.
Ok, not this. But maybe there are other parameters of the network that change rapidly and that no one can effectively control (number of forging nodes, ..., whatever)?
sr. member
Activity: 364
Merit: 250
☕ NXT-4BTE-8Y4K-CDS2-6TB82
Nevertheless, it is trading not transferring. You cannot transfer 1 BTC to 10 NXT. That makes no sense (at least not for me.)

It isn't applying to "other block chains" but just Assets within the NXT block chain.

If you created an Asset called BTC and an Asset called NXT (just to confuse everyone) then actually *you could* trade 1 BTC for 10 NXT.

Grin


I do not understand. I trade a thing for another thing. In what physical modes the first thing and the second thing are, is not relevant. It is still trading, right?

Trading = 2 Transfers (1 on BTC chain and 1 on NXT chain; both need to be synchronized and secured against each other etc. etc.)

Well, at least, it does not confuse people. Some of them think, we can manage bitcoin on the NXT chain, because we transfer BTC on NXT.
legendary
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
Do I understand correctly that there is concern about the fact that the "randomness" is actually pseudorandomness (i.e., it is deterministic, but not predictable)?

In this case, we can just put some "true randomness from the real world" in: take some parameter which is rapidly changing in time and is not controlled by one person or entity, and use it as an additional randomizer. For instance, total amount of all transactions (and/or fees) in the previous block could act as this randomizer.

We'd have to carefully consider whether that is possible but as CfB points out because nodes "choose" which txs to include gaming is always something that could be a problem.
legendary
Activity: 2142
Merit: 1010
Newbie
Do I understand correctly that there is concern about the fact that the "randomness" is actually pseudorandomness (i.e., it is deterministic, but not predictable)?

In this case, we can just put some "true randomness from the real world" in: take some parameter which is rapidly changing in time and is not controlled by one person or entity, and use it as an additional randomizer. For instance, total amount of all transactions (and/or fees) in the previous block could act as this randomizer.

We can't coz an entity with a lot of computing power will be able to game the system.
sr. member
Activity: 364
Merit: 250
☕ NXT-4BTE-8Y4K-CDS2-6TB82
So, it comes down to: do we need an x > 1 and what for do we need that?

Yup - that's it in a nutshell - the two reasons we might need that are:

1. To help prevent "flood attacks" (by making the flooder have to attack more than one IP address)

2. To help improve "randomness" so things like the "lottery" (and other similar things) are viewed as "statistically fair".

As my attack vector above makes no sense due to false assumptions I made, let me correct it:

1) pre-calculates generationSignatures until he founds that he has control over then next 1442 blocks, let's say that might be at block X

(he now tries to lengthen his row bit by bit by simulating the following steps)

2) he funds an account by transferring (a+1) NXT to it at block X+1
3) he creates the account's key by sending 1 NXT back to him at block X+2

(that account can now forge with balance of a NXT at block X+1443)

4) he calculates the hit for that very block X+1443 and determines how much a is needed to be the best forger
 4.1) if the hit is too big, he chooses a different account and start again at 2)
 4.2) if the hit is appropriately low, he really performs 2) and 3)

5) go back to 2) and create forging account for block X+1444

This way, the attacker can lengthen his row bit by bit.

So, if there will every be a row of 1440 blocks, it is over.
sr. member
Activity: 376
Merit: 300
Do I understand correctly that there is concern about the fact that the "randomness" is actually pseudorandomness (i.e., it is deterministic, but not predictable)?

In this case, we can just put some "true randomness from the real world" in: take some parameter which is rapidly changing in time and is not controlled by one person or entity, and use it as an additional randomizer. For instance, total amount of all transactions (and/or fees) in the previous block could act as this randomizer.
legendary
Activity: 1722
Merit: 1217
For that matter isn't the whole idea of waiting 1440 blocks that there is no way of predicting what every single person involved will do?  This works right?

That works and doesn't cause any issues, we're just trying to shorten this time right?

we are trying to make 10 or so blocks reliably predictable and 1440 blocks reliably unpredictable at the same time.
legendary
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
For that matter isn't the whole idea of waiting 1440 blocks that there is no way of predicting what every single person involved will do?  This works right?

We're just trying to shorten this time right?

It would be perhaps useful to shorten the time but also to have some "math" to show that our "lottery" is "fair" (at least to a statistically acceptable level).

Shortening might be useful to other types of "gambling" games I guess (although I am not so interested in working on that stuff myself).
hero member
Activity: 527
Merit: 503
For that matter isn't the whole idea of waiting 1440 blocks that there is no way of predicting what every single person involved will do?  This works right?

That works and doesn't cause any issues, we're just trying to shorten this time right?
hero member
Activity: 574
Merit: 500
Nevertheless, it is trading not transferring. You cannot transfer 1 BTC to 10 NXT. That makes no sense (at least not for me.)

It isn't applying to "other block chains" but just Assets.

If you created an Asset called BTC and an Asset called NXT (just to confuse everyone) then actually *you could* trade 1 BTC for 10 NXT.

Grin



I'm gonna get this wrong...  Roll Eyes

But that is part of the fun!  We all learn together (except CIYAM who knows everything already!)  Grin
hero member
Activity: 527
Merit: 503
Grin

we could just do 1 pow block every 24 hours and extend the active stake holding time out from 1 day to 3-7 days. (which it always should have been imo anyway). 1 pow block per day isnt that bad is it? and it would give us soooo much extra security.

Doesn't this ruin "transparency" of forging for blocks that r close to a moment when a PoW block to be generated?

not necessarily. first you decide how many blocks into the future it is ideal for people to be able to predict. lets say 10 as an offhand example. once someone submits a valid pow block you could record it then but not have it effect the process of deduction until 10 blocks after its submission. so for example say it was submitted as block 100,000. you could make it so that that hashing this block isnt part of the generation sigature perramiter until block 100,010.

its actually a really really solid solution the only drawback is that everyone will say "na na na boo boo we told you so" Tongue

*edit* also i need to give credit to my uncle, it may actually be his idea, we arnt sure who thought of it first.

The idea is that you need to prevent people from manipulating accounts so that the hash ends up just right to ensure that they are chosen as the next account to forge, correct?

Maybe this isn't completely right but I feel like there is something to the idea of all forgers passing around tiny transactions every block.  Am I misunderstanding something?

Small tweak to the sending small amounts around idea. It's sort of proof of burn like but not quite. How about this, give everyone another tiny record, say 1 byte, to specifically to be used for  this purpose.  If you would like to forge, and this record shows that you are ahead, then you have to pay the minimum transaction fee in order to do it and we increment this account to say that you are at -0.03 Nxt.  If you get to be at -0.1 Nxt, you are allowed to forge without paying a fee.

Who do you pay this minimum transaction fee to?  Every forging machine randomly picks someone else who is negative and they send their small transaction fees to that machine.  Some people will get out of the hole at which point they are not allowed to forge, until they pay enough transaction fees to other random miners.  Or something along those lines, maybe they can forge if they are 1 transaction fee ahead, just in case somehow every forger's balance out there balances out to be even.  You would have to worry that people would forge just long enough to be ahead then transfer their stop forging, transfer their Nxt to another account and start up again but that's why you use tiny transaction fees.

So it it proof of burn like, except that you get paid back and all it does is ensure that a whole bunch of forgers will be randomly passing Nxt around between each other, therefore randomizing the account balances to be used for choosing who forgers next.
Jump to: