Bitcoin Forum
November 13, 2024, 04:18:22 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 ... 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 [2336] 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 ... 2557 »
  Print  
Author Topic: NXT :: descendant of Bitcoin - Updated Information  (Read 2761606 times)
ChuckOne
Sr. Member
****
Offline Offline

Activity: 364
Merit: 250

☕ NXT-4BTE-8Y4K-CDS2-6TB82


View Profile
March 21, 2014, 04:34:17 PM
 #46701

Can you describe the algorithm of determining the next forgers in terms of the math model? In particular, how exactly this list is updated?

If I read the source correctly, that function will return a sorted list of limit accounts that are able to forge the next block.

In math model:

it is like having not only k0 but also k1 and k2 and ... and klimit-1 representing the next in the what I would call forging queue.

k0 is the best, followed by k1 and so on.
bitcoinpaul
Hero Member
*****
Offline Offline

Activity: 910
Merit: 1000



View Profile
March 21, 2014, 04:36:31 PM
 #46702

But maybe since then it became more clear?..

Do u have any ideas how it's better to implement Transparent Forging? The goal is to find an optimum where we can predict few blocks in advance but noone could game the system by preparing such accounts that he would be able to forge a lot of blocks in the row.

there is 1 really solid solution that you arnt going to want to hear

And that was what again?
bitcoinpaul
Hero Member
*****
Offline Offline

Activity: 910
Merit: 1000



View Profile
March 21, 2014, 04:36:57 PM
 #46703

Nxt Blockchain Explorer is not showing transactions. Does someone know why?
The total balance is correct, but the last three incoming transactions are not showen in the list. http://87.230.14.1/nxt/nxt.cgi?action=3000&acc=14467166339972892265

Often faulty, our old 87.230.14.1
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1086


Ian Knowles - CIYAM Lead Developer


View Profile WWW
March 21, 2014, 04:38:21 PM
 #46704

If I read the source correctly, that function will return a sorted list of limit accounts that are able to forge the next block.

I think that the idea for TF (maybe not as so far currently has been implemented) is that at least 2 or 3 accounts should have "the same value" (so there isn't a *best* one).

The purpose of that idea is to *inject randomness* that might otherwise mean you could predict too many blocks ahead (it of course results in more forks with latency and network topology being the final "deciding" factors).

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
mthcl
Sr. Member
****
Offline Offline

Activity: 376
Merit: 300


View Profile
March 21, 2014, 04:40:47 PM
 #46705

But still, an attacker could create raw transactions at will to create new accounts that might lead to a block that he has the highest cummulativeDifficulty of. He could include these txs into blocks that favor him most. So, it will be self-inducing.
Can you explain the last sentence to me, having in mind that I wrote my last program 20 years ago?  In particular, how this cummulativeDifficulty is computed in the math model?

Sure.

raw = to-be-verified aka to-be-agreed-on

The problem with raw transactions are: they are the things we need to find consensus about. That is why we need blocks. Blocks represent the consensus on which transactions occured.

But: since we have not found any consensus about these raw transactions they can be added or removed at will. Why? Because we have not agree on them yet, because there is no block verifying them. I hope that is clear.

So, an attacker could add raw transactions into his pool of available raw transactions and therefore increase his probability of bundling them into a block that one of his accounts can forge.

A new forging account F is created by at least two transactions (3 NXT need in total):
1) funding (2 NXT to F)
2) public key creation (1 NXT form F to somewhere else)
=> F still holds 1 NXT and is able to forge in 1440 block from 2)

Because of that, an attacker could carefully design transactions that create accounts that will forge in the future.

So, this attacker could design raw transactions and shuffling existing ones and his artificial ones until he can a row of blocks that is long enough for his purpose.

But I still don't understand, what advantage the attacker obtains by creating these smaller accounts? Why not just sit on his big account and wait?
ChuckOne
Sr. Member
****
Offline Offline

Activity: 364
Merit: 250

☕ NXT-4BTE-8Y4K-CDS2-6TB82


View Profile
March 21, 2014, 04:42:01 PM
 #46706

But I still don't understand, what advantage the attacker obtains by creating these smaller accounts? Why not just sit on his big account and wait?

Creating blocks in a row is the major threat, if I understand it correctly.
ChuckOne
Sr. Member
****
Offline Offline

Activity: 364
Merit: 250

☕ NXT-4BTE-8Y4K-CDS2-6TB82


View Profile
March 21, 2014, 04:42:55 PM
 #46707

If I read the source correctly, that function will return a sorted list of limit accounts that are able to forge the next block.

I think that the idea for TF (maybe not as so far currently has been implemented) is that at least 2 or 3 accounts should have "the same value" (so there isn't a *best* one).

The purpose of that idea is to *inject randomness* that might otherwise mean you could predict too many blocks ahead (it of course results in more forks with latency and network topology being the final "deciding" factors).


Yes, I know.
Nevertheless, you could use the implemented function for both scenarios.
L5Society
Newbie
*
Offline Offline

Activity: 56
Merit: 0


View Profile
March 21, 2014, 04:43:17 PM
 #46708

Nxt Blockchain Explorer is not showing transactions. Does someone know why?
The total balance is correct, but the last three incoming transactions are not showen in the list. http://87.230.14.1/nxt/nxt.cgi?action=3000&acc=14467166339972892265

use this instead http://www.mynxt.info/blockexplorer/
Come-from-Beyond
Legendary
*
Offline Offline

Activity: 2142
Merit: 1010

Newbie


View Profile
March 21, 2014, 04:43:29 PM
 #46709

So, that attack would go this way:

1) attacker creates N accounts

2) attacker receives M raw transactions

3) attacker tries to find a row of blocks by:

 3.0) do until no raw transactions are available
 3.1) choose X raw transactions
 3.2) is the account forging this block one of the N accounts?
 3.3) if yes, go to 3.1) and remove X transactions
 3.4) if no, go to 3.1) and choose another selection of raw transactions

4) if no combination will lead to the desired output => attacker creates his own raw transactions, go back to 3)

5) choose longest row and submit it to the network

Is that the attack vector you have in mind?

Something like that. Different variations r possible.
mthcl
Sr. Member
****
Offline Offline

Activity: 376
Merit: 300


View Profile
March 21, 2014, 04:43:54 PM
 #46710

Can you describe the algorithm of determining the next forgers in terms of the math model? In particular, how exactly this list is updated?

If I read the source correctly, that function will return a sorted list of limit accounts that are able to forge the next block.

In math model:

it is like having not only k0 but also k1 and k2 and ... and klimit-1 representing the next in the what I would call forging queue.

k0 is the best, followed by k1 and so on.
But at the next moment (when the next block is forged) you decide on only one new entry to the queue? Or you wait until the queue is empty and decide on the whole queue then again?
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1086


Ian Knowles - CIYAM Lead Developer


View Profile WWW
March 21, 2014, 04:44:34 PM
 #46711

Yes, I know.
Nevertheless, you could use the implemented function for both scenarios.

But I think whether we treat that list as "ordered" or not *could* make a difference (so that needs to be considered).

This ends up being important to the "lottery" AT (and others that might follow it) as we need to be confident of the "randomness" of "tickets".

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
2gen
Newbie
*
Offline Offline

Activity: 3
Merit: 0


View Profile
March 21, 2014, 04:44:41 PM
 #46712

suddenly much buying power wazup?

why is nxt going up so much on bter, is there something comming up, NEWS?

NXT will break 0.7 soon.?? Huge lift of
Come-from-Beyond
Legendary
*
Offline Offline

Activity: 2142
Merit: 1010

Newbie


View Profile
March 21, 2014, 04:45:22 PM
 #46713

there is 1 really solid solution that you arnt going to want to hear

What is it?
ChuckOne
Sr. Member
****
Offline Offline

Activity: 364
Merit: 250

☕ NXT-4BTE-8Y4K-CDS2-6TB82


View Profile
March 21, 2014, 04:46:08 PM
 #46714

Can you describe the algorithm of determining the next forgers in terms of the math model? In particular, how exactly this list is updated?

If I read the source correctly, that function will return a sorted list of limit accounts that are able to forge the next block.

In math model:

it is like having not only k0 but also k1 and k2 and ... and klimit-1 representing the next in the what I would call forging queue.

k0 is the best, followed by k1 and so on.
But at the next moment (when the next block is forged) you decide on only one new entry to the queue? Or you wait until the queue is empty and decide on the whole queue then again?

That is yet to be decided. Smiley

EDIT:
possibilities if could come up with:

1) each block has its own forging queue
2) the network draws from the queue until it is depleted and creates a new one
3) the network considers all accounts of the queue as equally good

EDIT 2:
Why do we it at all?
Because not every account will forge, so we need a buffer I a forger is absent.
mthcl
Sr. Member
****
Offline Offline

Activity: 376
Merit: 300


View Profile
March 21, 2014, 04:47:18 PM
 #46715

But I still don't understand, what advantage the attacker obtains by creating these smaller accounts? Why not just sit on his big account and wait?

Creating blocks in a row is the major threat, if I understand it correctly.
Then there is no point in creating new accounts.
punkrock
Hero Member
*****
Offline Offline

Activity: 808
Merit: 1011



View Profile
March 21, 2014, 04:47:47 PM
 #46716

Nxt Blockchain Explorer is not showing transactions. Does someone know why?
The total balance is correct, but the last three incoming transactions are not showen in the list. http://87.230.14.1/nxt/nxt.cgi?action=3000&acc=14467166339972892265

use this instead http://www.mynxt.info/blockexplorer/

Thanks!
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1086


Ian Knowles - CIYAM Lead Developer


View Profile WWW
March 21, 2014, 04:48:44 PM
 #46717

Then there is no point in creating new accounts.

Yes - that was my understanding from my own modelling.

Still the issue of "randomness" is a key point that I would like to have checked (i.e. how "random" is the block # 1440 blocks in the future).

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
ChuckOne
Sr. Member
****
Offline Offline

Activity: 364
Merit: 250

☕ NXT-4BTE-8Y4K-CDS2-6TB82


View Profile
March 21, 2014, 04:49:55 PM
 #46718

But I still don't understand, what advantage the attacker obtains by creating these smaller accounts? Why not just sit on his big account and wait?

Creating blocks in a row is the major threat, if I understand it correctly.
Then there is no point in creating new accounts.

Creating blocks in a row that YOU as an attacker control.
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1086


Ian Knowles - CIYAM Lead Developer


View Profile WWW
March 21, 2014, 04:51:09 PM
 #46719

Creating blocks in a row that YOU as an attacker controls.

Yes - this is basically what I modeled in code and mthcl in math (not considering the proposed TF but just the existing approach).

Of course any *model* is just that (so it may not be "good enough" to reflect the *reality*).

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
mthcl
Sr. Member
****
Offline Offline

Activity: 376
Merit: 300


View Profile
March 21, 2014, 04:51:32 PM
 #46720

Can you describe the algorithm of determining the next forgers in terms of the math model? In particular, how exactly this list is updated?

If I read the source correctly, that function will return a sorted list of limit accounts that are able to forge the next block.

In math model:

it is like having not only k0 but also k1 and k2 and ... and klimit-1 representing the next in the what I would call forging queue.

k0 is the best, followed by k1 and so on.
But at the next moment (when the next block is forged) you decide on only one new entry to the queue? Or you wait until the queue is empty and decide on the whole queue then again?

That is yet to be decided. Smiley

EDIT:
possibilities if could come up with:

1) each block has its own forging queue
2) the network draws from the queue until it is depleted and creates a new one
3) the network considers all accounts of the queue as equally good
Then, if we decide on all queue at once, the algorithm should be changed, because this way you'll not obtain the "correct" forging probabilities (all ki's are different, right?). Think of a situation when there is an account with 50% of all NXT, and limit=100.  Normally this account would forge every second block, but under this approach, it will only forge every 100th.
Pages: « 1 ... 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 [2336] 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 ... 2557 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!