Bitcoin Forum
June 28, 2024, 12:43:13 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Warning: One or more bitcointalk.org users have reported that they believe that the creator of this topic displays some red flags which make them high-risk. (Login to see the detailed trust ratings.) While the bitcointalk.org administration does not verify such claims, you should proceed with extreme caution.
Pages: « 1 ... 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 [57] 58 59 60 61 62 63 64 65 »
  Print  
Author Topic: Nxt source code flaw reports  (Read 113312 times)
superresistant
Legendary
*
Offline Offline

Activity: 2142
Merit: 1130



View Profile
January 29, 2014, 11:21:43 AM
 #1121

@perl :

One of the next steps to 100% Transparent Forging will include changes that will lead to "grouping" of forging accounts. The main purpose is to make it impossible to predict who will forge the next block. If Alice, Bob, Charlie and Dan r next candidates to forge a block, then Alice, Bob or Charlie can do it, no matter if Alice would forge the block 5 seconds earlier than Bob or Charlie. The gap between blocks will be exactly 60 seconds and timestamp will be used only to determine an order of events. No sense to wait 93 seconds for the next block if we already know who would forge it. This is what I call "time warp". If Bob's block wins the race then Alice and Charlie will be penalized for 1440 blocks.

Une des prochaines étapes de la forge transparente sera de permettre le regroupement des forgeurs. Le but étant de rendre impossible la prédiction de la génération de blocks. Si Alice, Bob, Charlie et Dan sont les prochains candidats pour la forge d'un block alors Alice, Bob ou Charlie peuvent le faire, peut importe que Alice puisse forger le block 5 secondes avant Bob ou Charlie. L'écart entre les blocks sera exactement 60 secondes et la date ne sera utilisé que pour déterminer l'ordre des événements. Ça n'a pas de sens d'attendre 93 secondes pour le prochain block si l'on sait déjà qui va le forger. C'est ce que j’appelle la "faille temporelle" (espace temps ou déformation temporelle). Si le block de Bob gagne la course alors Alice et Charlie seront pénalisé pour 1440 blocks.

Coz Charlie wasn't the winner in this race. Win or die, no half-measures.
PS: This is an example of dynamical equilibrium that heavily exploited in Nxt concept.

Parce que Charlie n'était pas le vainqueur de la course. Gagne ou crève, pas de demi-mesure.
PS: C'est un exemple de l'équilibre dynamique qui est lourdement exploité dans le concept du Nxt.
Come-from-Beyond (OP)
Legendary
*
Offline Offline

Activity: 2142
Merit: 1009

Newbie


View Profile
January 29, 2014, 11:37:11 AM
 #1122

@superresistant

Thank u you. I completely overlooked that my slang makes it impossible to translate the text via automatic translators.
perl
Legendary
*
Offline Offline

Activity: 1918
Merit: 1190


View Profile
January 29, 2014, 12:17:04 PM
Last edit: January 29, 2014, 12:34:24 PM by perl
 #1123

If you got all blocks, you got all information about the accounts.

Yep , I can know amount of all account connect and notconnect .
I can not know amount of account only connect. ( Principe of P2P )
Your principe is good if person as bad intention.


Believe in miracles all node know sum amount for all account connected.

200 node with 1 Amount ( Power 200 )
and
1 node with 2,000,000 Amount ( Power 2.000.000 )


You accept all devil node with sum account 200 NXT can punish innocent account with 2,000,000 NXT?
If you do not accept this! And make a weight with the sum amount of accounts

The biggest amount group can punish all other node.

P.S: I am very critical, if only to help the NXT and do go in the right direction

All innocents and little account can not forge ( for 2 choice )

Just for the joke:
Your transform exploit of 50% in POW  ( probability on success )
in
Exploit of the 50% (certainty )
alpha_one_x86
Sr. Member
****
Offline Offline

Activity: 281
Merit: 250


Developer of Ultracopier and Supercopier


View Profile WWW
January 29, 2014, 02:39:08 PM
 #1124

Error:
Quote
[2014-01-28 12:34:48.426] DEBUG: Error in block generation thread
java.lang.NullPointerException
        at Nxt$Block.getLastBlocks(Nxt.java:1353)
        at Nxt$Account.getGuaranteedBalance(Nxt.java:579)
        at Nxt$Account.getEffectiveBalance(Nxt.java:516)
        at Nxt$8.run(Nxt.java:6574)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:744)
Code:
  static ArrayList<Block> getLastBlocks(int numberOfBlocks)
  {
    ArrayList<Block> lastBlocks = new ArrayList(numberOfBlocks);
    
    long curBlock = ((Block)Nxt.lastBlock.get()).getId();
    do
    {
      Block block = (Block)Nxt.blocks.get(Long.valueOf(curBlock));
      lastBlocks.add(block);
      curBlock = block.previousBlock;
    } while ((lastBlocks.size() < numberOfBlocks) && (curBlock != 0L));
    return lastBlocks;
  }
You use the return of the function without take care of the return value! Nxt.blocks.get() can return invalid value like here.
Please, be more serious with the code, don't do beginer error like that's. Because do the wallet vulnerability!
No it's because you use an language more resistant that's you can't have security problem. (With gcc 4.8 and modern CPU you can have same security with C++ code).

Developer of Ultracopier/Supercopier and of the game CatchChallenger sold in crypto curency. Include on the nextcoin market.
Come-from-Beyond (OP)
Legendary
*
Offline Offline

Activity: 2142
Merit: 1009

Newbie


View Profile
January 29, 2014, 02:44:43 PM
 #1125

Please, be more serious with the code, don't do beginer error like that's. Because do the wallet vulnerability!

I see that Erlang approach to handle exceptions is not very popular. Ok.
FrictionlessCoin
Legendary
*
Offline Offline

Activity: 868
Merit: 1000


Cryptotalk.org - Get paid for every post!


View Profile
January 29, 2014, 03:20:46 PM
 #1126

Error:
Quote
[2014-01-28 12:34:48.426] DEBUG: Error in block generation thread
java.lang.NullPointerException
        at Nxt$Block.getLastBlocks(Nxt.java:1353)
        at Nxt$Account.getGuaranteedBalance(Nxt.java:579)
        at Nxt$Account.getEffectiveBalance(Nxt.java:516)
        at Nxt$8.run(Nxt.java:6574)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:744)
Code:
  static ArrayList<Block> getLastBlocks(int numberOfBlocks)
  {
    ArrayList<Block> lastBlocks = new ArrayList(numberOfBlocks);
    
    long curBlock = ((Block)Nxt.lastBlock.get()).getId();
    do
    {
      Block block = (Block)Nxt.blocks.get(Long.valueOf(curBlock));
      lastBlocks.add(block);
      curBlock = block.previousBlock;
    } while ((lastBlocks.size() < numberOfBlocks) && (curBlock != 0L));
    return lastBlocks;
  }
You use the return of the function without take care of the return value! Nxt.blocks.get() can return invalid value like here.
Please, be more serious with the code, don't do beginer error like that's. Because do the wallet vulnerability!
No it's because you use an language more resistant that's you can't have security problem. (With gcc 4.8 and modern CPU you can have same security with C++ code).

watching

 
                                . ██████████.
                              .████████████████.
                           .██████████████████████.
                        -█████████████████████████████
                     .██████████████████████████████████.
                  -█████████████████████████████████████████
               -███████████████████████████████████████████████
           .-█████████████████████████████████████████████████████.
        .████████████████████████████████████████████████████████████
       .██████████████████████████████████████████████████████████████.
       .██████████████████████████████████████████████████████████████.
       ..████████████████████████████████████████████████████████████..
       .   .██████████████████████████████████████████████████████.
       .      .████████████████████████████████████████████████.

       .       .██████████████████████████████████████████████
       .    ██████████████████████████████████████████████████████
       .█████████████████████████████████████████████████████████████.
        .███████████████████████████████████████████████████████████
           .█████████████████████████████████████████████████████
              .████████████████████████████████████████████████
                   ████████████████████████████████████████
                      ██████████████████████████████████
                          ██████████████████████████
                             ████████████████████
                               ████████████████
                                   █████████
.CryptoTalk.org.|.MAKE POSTS AND EARN BTC!.🏆
Jean-Luc
Sr. Member
****
Offline Offline

Activity: 392
Merit: 250



View Profile WWW
January 29, 2014, 06:42:37 PM
 #1127

Error:
Quote
[2014-01-28 12:34:48.426] DEBUG: Error in block generation thread
java.lang.NullPointerException
You use the return of the function without take care of the return value! Nxt.blocks.get() can return invalid value like here.
Yes, and I see nothing wrong with that. This is what exceptions are for. If a block that should be in the Nxt.blocks map is no longer there, something is wrong and there is no point in trying to continue. What would you do, ignore the missing block and pretend all is fine?
See that little DEBUG notice on top? If debug output was not enabled, the end user would not even see the exception. Because it is caught at a higher level, and the block generation thread just skips the current iteration and starts over.
Quote
No it's because you use an language more resistant that's you can't have security problem. (With gcc 4.8 and modern CPU you can have same security with C++ code).
Now I see where you are coming from...

lead Nxt developer, gpg key id: 0x811D6940E1E4240C
Nxt blockchain platform | Ardor blockchain platform | Ignis ICO
ZeroTheGreat
Hero Member
*****
Offline Offline

Activity: 644
Merit: 500


View Profile
January 29, 2014, 09:54:01 PM
 #1128

U can. That's why it's called Transparent Forging. Not Opaque, not Semi-Transparent.
)))

Russian: cpaзy нaпoмнилo пpo пoлтopa зeмлeкoпa и 3.5 aнoнимyca ))
ZeroTheGreat
Hero Member
*****
Offline Offline

Activity: 644
Merit: 500


View Profile
January 29, 2014, 09:59:43 PM
 #1129

@superresistant

Thank u you. I completely overlooked that my slang makes it impossible to translate the text via automatic translators.
That's a good thing. Anything'd be thinking-required. Other way of doing things brought us unmeasurable amount of scams and fraudulent today. And so small amount of anyone's base knowledge. Our memory may be unlimited (at least for 90-120 years of functionality for sure), no need to artificially decrease capabilities of it.

For translators: Can't make/update your translator slang-acceptable? Don't use it. Or use it carefully with non-automated corrections.
jettico
Member
**
Offline Offline

Activity: 80
Merit: 10


View Profile
January 30, 2014, 07:50:18 PM
Last edit: January 30, 2014, 08:38:06 PM by jettico
 #1130

I've found a serious flaw in the unpublished part of the source code, in the Transparent Forging algorithm.

Rich people get richer faster than poor.

1 NXT coin forging power depends on the wallet size.

Details here: https://bitcointalk.org/index.php?topic=364218.msg4844888#msg4844888
Come-from-Beyond (OP)
Legendary
*
Offline Offline

Activity: 2142
Merit: 1009

Newbie


View Profile
January 30, 2014, 07:54:45 PM
 #1131

I've found a flaw in the unpublished part of the source code, in the Transparent Forging algorithm.

Rich people get richer faster than poor.

1 NXT coin forging power depends on the wallet size.

Details here: https://bitcointalk.org/index.php?topic=364218.msg4844888#msg4844888

This is not the injected flaw.
opticalcarrier
Full Member
***
Offline Offline

Activity: 238
Merit: 100



View Profile
January 30, 2014, 08:19:54 PM
 #1132

I've found a flaw in the unpublished part of the source code, in the Transparent Forging algorithm.

Rich people get richer faster than poor.

1 NXT coin forging power depends on the wallet size.

Details here: https://bitcointalk.org/index.php?topic=364218.msg4844888#msg4844888

This is not the injected flaw.

CfB, have you verified that it is a flaw?
Come-from-Beyond (OP)
Legendary
*
Offline Offline

Activity: 2142
Merit: 1009

Newbie


View Profile
January 30, 2014, 08:23:50 PM
 #1133

CfB, have you verified that it is a flaw?

Answered in that thread.
opticalcarrier
Full Member
***
Offline Offline

Activity: 238
Merit: 100



View Profile
January 30, 2014, 08:28:18 PM
 #1134

Answered in that thread.

I didnt see a response from you to his description.  You did respond to an earlier message about dice, but not the post here:
https://bitcointalk.org/index.php?topic=364218.msg4844888#msg4844888 or the post right after that one that had a bit more detail.

Or do you refer to the russian thread?
jettico
Member
**
Offline Offline

Activity: 80
Merit: 10


View Profile
January 30, 2014, 08:52:17 PM
 #1135

No, he didn't provide any sensible answer in any thread.
Come-from-Beyond (OP)
Legendary
*
Offline Offline

Activity: 2142
Merit: 1009

Newbie


View Profile
January 30, 2014, 09:15:18 PM
 #1136

No, he didn't provide any sensible answer in any thread.

Repost:

The analogy with throwing dice is for illustrative purposes only.

This is the problem. 100K account does have advantage over 100x 1K accounts. But this advantage is small. In ur example it's noticeable coz u use conventional dice. If u used dice with 2^64 faces u would get other results.
opticalcarrier
Full Member
***
Offline Offline

Activity: 238
Merit: 100



View Profile
January 30, 2014, 09:35:56 PM
 #1137

No, he didn't provide any sensible answer in any thread.

Repost:

The analogy with throwing dice is for illustrative purposes only.

This is the problem. 100K account does have advantage over 100x 1K accounts. But this advantage is small. In ur example it's noticeable coz u use conventional dice. If u used dice with 2^64 faces u would get other results.

thanks for this explanation.  yes, the 'advantage' is extremely small
Come-from-Beyond (OP)
Legendary
*
Offline Offline

Activity: 2142
Merit: 1009

Newbie


View Profile
January 30, 2014, 09:54:46 PM
 #1138

For those who prefer practice, not theory:


Account 4747512364439223888 stats:

Balance = 50'000'000
Number of forged blocks = 7496


Nxt blockchain stats:

Total number of blocks = 54230
Average base target = ~500%


"4747" forged 13.8% of all blocks. Theoretically "4747" should have forged (50M / 1000M) * (500% / 100%) = 5% * 5 = 25% of all blocks if he forged all the time and without orphaned blocks. So we see that jettico's math is proved wrong by what we see in the reality.
jkoil
Hero Member
*****
Offline Offline

Activity: 834
Merit: 524


Nxt NEM


View Profile
January 30, 2014, 11:07:48 PM
 #1139

For those who prefer practice, not theory:


Account 4747512364439223888 stats:

Balance = 50'000'000
Number of forged blocks = 7496


Nxt blockchain stats:

Total number of blocks = 54230
Average base target = ~500%


"4747" forged 13.8% of all blocks. Theoretically "4747" should have forged (50M / 1000M) * (500% / 100%) = 5% * 5 = 25% of all blocks if he forged all the time and without orphaned blocks. So we see that jettico's math is proved wrong by what we see in the reality.

"if he forged all the time "

Is it known how much time he used?
What if he used only half of the time ...
Wouldn't the expected % then be 12.5% < 13.8% ?


More statistics, plz  Smiley  Those I've wanted from the beginning ...
Come-from-Beyond (OP)
Legendary
*
Offline Offline

Activity: 2142
Merit: 1009

Newbie


View Profile
January 30, 2014, 11:34:53 PM
 #1140

For those who prefer practice, not theory:


Account 4747512364439223888 stats:

Balance = 50'000'000
Number of forged blocks = 7496


Nxt blockchain stats:

Total number of blocks = 54230
Average base target = ~500%


"4747" forged 13.8% of all blocks. Theoretically "4747" should have forged (50M / 1000M) * (500% / 100%) = 5% * 5 = 25% of all blocks if he forged all the time and without orphaned blocks. So we see that jettico's math is proved wrong by what we see in the reality.

"if he forged all the time "

Is it known how much time he used?
What if he used only half of the time ...
Wouldn't the expected % then be 12.5% < 13.8% ?


More statistics, plz  Smiley  Those I've wanted from the beginning ...


All the stats r in the blockchain. Some data is not available, for example, rate of orphaned blocks.
Pages: « 1 ... 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 [57] 58 59 60 61 62 63 64 65 »
  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!