Pages:
Author

Topic: Vertcoin - First Scrypt N | First Stealth Address - Privacy without mixer - page 36. (Read 1232734 times)

hero member
Activity: 556
Merit: 501
Hi vertans:

I want to share a new paper wallet design, hope you like it.

[img width=500]https://i.imgur.com/F3gVKTg.jpg[ /img]           [img width=500]https://i.imgur.com/SIf6O3b.jpg[ /img]


High resolution files: https://drive.google.com/folderview?id=0B-xG8_wDY16pSjJPeV9PV25qMWc&usp=sharing

Donations are welcome: Va6Jj1MZAB8BpcQ8v55JsKJhjNbNmKJAir

Very nice design!

Thanks!
sr. member
Activity: 392
Merit: 250
DEV,i found a bug in lyra2.c
please check this code

   //================================ Setup Phase =============================//
    //Absorbing salt, password and basil: this is the only place in which the block length is hard-coded to 512 bits
    ptrWord = &wholeMatrix[0];
    for (i = 0; i < nBlocksInput; i++) {
      absorbBlockBlake2Safe(state, ptrWord); //absorbs each block of pad(pwd || salt || basil)
      ptrWord += BLOCK_LEN_BLAKE2_SAFE_BYTES; //goes to next block of pad(pwd || salt || basil)
      -------------------------------------------------------
BLOCK_LEN_BLAKE2_SAFE_BYTES is 64
the problem is
ptrWord is a 64 bit pointer,but the line ,it add 64,means it add 64*64=4096 bit=512 byte,
so ,the next round ,all ptrWord is zero,
that means Concatenates the basil and padding are not used!!!!!!

you must change BLOCK_LEN_BLAKE2_SAFE_BYTES to BLOCK_LEN_BLAKE2_SAFE_INT64


Surely though, "absorbBlockBlake2Safe" absorbs an entire block of 64 bytes (512 bits). ptrWord is then pushed forward by another 512 bits since +=ing a pointer pushes it forward in multiples of bytes. So on line "ptrWord += BLOCK_LEN_BLAKE2_SAFE_BYTES;", the pointer is pushed forward by 64 bytes (512 bits), and the process is repeated for the next block.


No, pointers work in chunks the same as their variable size.

Code:
uint64_t *ptr;
ptr += 1; // Advances ptr by 8 bytes

uint32_t *ptr2;
ptr2 += 1; // Advances ptr2 by 4 bytes

Indeed... not much we can do now though. Not that it really makes a difference to the end user.
legendary
Activity: 1551
Merit: 1002
♠ ♥ ♣ ♦ < ♛♚&#
Hi vertans:

I want to share a new paper wallet design, hope you like it.

[img width=500]https://i.imgur.com/F3gVKTg.jpg[ /img]           [img width=500]https://i.imgur.com/SIf6O3b.jpg[ /img]


High resolution files: https://drive.google.com/folderview?id=0B-xG8_wDY16pSjJPeV9PV25qMWc&usp=sharing

Donations are welcome: Va6Jj1MZAB8BpcQ8v55JsKJhjNbNmKJAir

Very nice design!
newbie
Activity: 20
Merit: 0
what are the features of this alg to combat muitipoll?
sr. member
Activity: 285
Merit: 250
at this rate, is the fork 2 days aaway?
legendary
Activity: 1120
Merit: 1000
Hello

Somebody asked yesterday if Vertigo - Vertcoin Lightweight Wallet will be updated for the Vertcoin fork.

Vertigo is going to be updated to the recent Vertcoin fork.

However some technical information details for implementation is needed to know, what needs to be updated, implemented to make the update.

Could somebody from Vertcoin developers provide details about the fork what needs to be updated and or possibly provide updated VertcoinJ library, please?

PS: VertcoinJ library is also used in Android Wallet.

Regards

Thanks
hero member
Activity: 556
Merit: 501
Hi vertans:

I want to share a new paper wallet design, hope you like it.

         


High resolution files: https://drive.google.com/open?id=0B-xG8_wDY16pSjJPeV9PV25qMWc&authuser=1

Edit: new links.

Donations are welcome: Va6Jj1MZAB8BpcQ8v55JsKJhjNbNmKJAir
sr. member
Activity: 392
Merit: 250
the ptrWord  is used in tow place
 
 ptrWord += ROW_LEN_INT64;

and

 ptrWord += BLOCK_LEN_BLAKE2_SAFE_BYTES; //goes to next block of pad(pwd || salt || basil),


ROW_LEN_INT64 is 12

BLOCK_LEN_BLAKE2_SAFE_BYTES is 64

This is a contradiction, one must be incorrect.
if this code not change ,the miner and the wallet will work  with no problem.
but the hash function may have some optimization

I think we shall have to leave it how it is as there is not enough time before the fork to make the change. As you say though, it will have little to no impact.
sr. member
Activity: 392
Merit: 250
Can someone explain what's going to happen when the hard fork occurs?
I assume that I will need to manually switch my miner to using Lyra2RE and point it at a pool or p2pool that's running the right algorithm. How will I know when to do that/how do I check when block 208301 is mined?
thx
getmininginfo from the wallet, or just watch the thread

Or use http://explorer.vertcoin.org/
nov
sr. member
Activity: 433
Merit: 251
Independent crypto developer
Hello

Somebody asked yesterday if Vertigo - Vertcoin Lightweight Wallet will be updated for the Vertcoin fork.

Vertigo is going to be updated to the recent Vertcoin fork.

However some technical information details for implementation is needed to know, what needs to be updated, implemented to make the update.

Could somebody from Vertcoin developers provide details about the fork what needs to be updated and or possibly provide updated VertcoinJ library, please?

PS: VertcoinJ library is also used in Android Wallet.

Regards
legendary
Activity: 1400
Merit: 1050
Can someone explain what's going to happen when the hard fork occurs?
I assume that I will need to manually switch my miner to using Lyra2RE and point it at a pool or p2pool that's running the right algorithm. How will I know when to do that/how do I check when block 208301 is mined?
thx
getmininginfo from the wallet, or just watch the thread
newbie
Activity: 14
Merit: 0
Can someone explain what's going to happen when the hard fork occurs?
I assume that I will need to manually switch my miner to using Lyra2RE and point it at a pool or p2pool that's running the right algorithm. How will I know when to do that/how do I check when block 208301 is mined?
thx
hero member
Activity: 609
Merit: 500
DMD,XZC
the ptrWord  is used in tow place
 
 ptrWord += ROW_LEN_INT64;

and

 ptrWord += BLOCK_LEN_BLAKE2_SAFE_BYTES; //goes to next block of pad(pwd || salt || basil),


ROW_LEN_INT64 is 12

BLOCK_LEN_BLAKE2_SAFE_BYTES is 64

This is a contradiction, one must be incorrect.
if this code not change ,the miner and the wallet will work  with no problem.
but the hash function may have some optimization
legendary
Activity: 1551
Merit: 1002
♠ ♥ ♣ ♦ < ♛♚&#
Are there dedicated thread for new algo?
legendary
Activity: 1400
Merit: 1050
a new version based on the latest sgminer5 version is coming, these problems should be fixed (can't test it though, I have only one amd card)

djm34, could you please work with Slix (ystarnaud) to include Lyra2RE into https://github.com/sgminer-dev/sgminer once is stable?
ok, will do
hero member
Activity: 609
Merit: 500
DMD,XZC
the origin
wholeMatrix= (uint64_t*)malloc(i);
i replace it with   uint64_t wholeMatrix[768] ;
so no malloc need.
both code,the ptrWord have the same situation.add 512 byte per block

another place, the code is

    //Places the pointers in the correct positions
    uint64_t *ptrWord = wholeMatrix;
    for (i = 0; i < nRows; i++) {
      memMatrix = ptrWord;
      ptrWord += ROW_LEN_INT64;//ROW_LEN_INT64 is 12
    }

so ,the ptrWord  add ROW_LEN_INT64,it is correct.


The code is correct. This is the block of code from master-0.9.0.1 and from latest out of Lyra2's github.

    //================================ Setup Phase =============================//
    //Absorbing salt, password and basil: this is the only place in which the block length is hard-coded to 512 bits
    ptrWord = wholeMatrix;
    for (i = 0; i < nBlocksInput; i++) {
      absorbBlockBlake2Safe(state, ptrWord); //absorbs each block of pad(pwd || salt || basil)
      ptrWord += BLOCK_LEN_BLAKE2_SAFE_BYTES; //goes to next block of pad(pwd || salt || basil)
    }

So, ptrWord moves to a new 64byte block of the wholeMatrix which gets XORd against state in absorbBlockBlake2Safe.

I'm not sure where you got this code: ptrWord = &wholeMatrix[0]; but that is not what is implemented.

a432511

We are looking into this and evaluating the impact. This was written by the authors of the Lyra2 algorithm, so we are trying to contact them as well.

Cheers,

a432511

DEV,i found a bug in lyra2.c
please check this code

   //================================ Setup Phase =============================//
    //Absorbing salt, password and basil: this is the only place in which the block length is hard-coded to 512 bits
    ptrWord = &wholeMatrix[0];
    for (i = 0; i < nBlocksInput; i++) {
      absorbBlockBlake2Safe(state, ptrWord); //absorbs each block of pad(pwd || salt || basil)
      ptrWord += BLOCK_LEN_BLAKE2_SAFE_BYTES; //goes to next block of pad(pwd || salt || basil)
      -------------------------------------------------------
BLOCK_LEN_BLAKE2_SAFE_BYTES is 64
the problem is
ptrWord is a 64 bit pointer,but the line ,it add 64,means it add 64*64=4096 bit=512 byte,
so ,the next round ,all ptrWord is zero,
that means Concatenates the basil and padding are not used!!!!!!

you must change BLOCK_LEN_BLAKE2_SAFE_BYTES to BLOCK_LEN_BLAKE2_SAFE_INT64






newbie
Activity: 5
Merit: 0
The code is correct. This is the block of code from master-0.9.0.1 and from latest out of Lyra2's github.

    //================================ Setup Phase =============================//
    //Absorbing salt, password and basil: this is the only place in which the block length is hard-coded to 512 bits
    ptrWord = wholeMatrix;
    for (i = 0; i < nBlocksInput; i++) {
      absorbBlockBlake2Safe(state, ptrWord); //absorbs each block of pad(pwd || salt || basil)
      ptrWord += BLOCK_LEN_BLAKE2_SAFE_BYTES; //goes to next block of pad(pwd || salt || basil)
    }

So, ptrWord moves to a new 64byte block of the wholeMatrix which gets XORd against state in absorbBlockBlake2Safe.

I'm not sure where you got this code: ptrWord = &wholeMatrix[0]; but that is not what is implemented.

a432511

We are looking into this and evaluating the impact. This was written by the authors of the Lyra2 algorithm, so we are trying to contact them as well.

Cheers,

a432511

DEV,i found a bug in lyra2.c
please check this code

   //================================ Setup Phase =============================//
    //Absorbing salt, password and basil: this is the only place in which the block length is hard-coded to 512 bits
    ptrWord = &wholeMatrix[0];
    for (i = 0; i < nBlocksInput; i++) {
      absorbBlockBlake2Safe(state, ptrWord); //absorbs each block of pad(pwd || salt || basil)
      ptrWord += BLOCK_LEN_BLAKE2_SAFE_BYTES; //goes to next block of pad(pwd || salt || basil)
      -------------------------------------------------------
BLOCK_LEN_BLAKE2_SAFE_BYTES is 64
the problem is
ptrWord is a 64 bit pointer,but the line ,it add 64,means it add 64*64=4096 bit=512 byte,
so ,the next round ,all ptrWord is zero,
that means Concatenates the basil and padding are not used!!!!!!

you must change BLOCK_LEN_BLAKE2_SAFE_BYTES to BLOCK_LEN_BLAKE2_SAFE_INT64






hero member
Activity: 609
Merit: 500
DMD,XZC
DEV,i found a bug in lyra2.c
please check this code

   //================================ Setup Phase =============================//
    //Absorbing salt, password and basil: this is the only place in which the block length is hard-coded to 512 bits
    ptrWord = &wholeMatrix[0];
    for (i = 0; i < nBlocksInput; i++) {
      absorbBlockBlake2Safe(state, ptrWord); //absorbs each block of pad(pwd || salt || basil)
      ptrWord += BLOCK_LEN_BLAKE2_SAFE_BYTES; //goes to next block of pad(pwd || salt || basil)
      -------------------------------------------------------
BLOCK_LEN_BLAKE2_SAFE_BYTES is 64
the problem is
ptrWord is a 64 bit pointer,but the line ,it add 64,means it add 64*64=4096 bit=512 byte,
so ,the next round ,all ptrWord is zero,
that means Concatenates the basil and padding are not used!!!!!!

you must change BLOCK_LEN_BLAKE2_SAFE_BYTES to BLOCK_LEN_BLAKE2_SAFE_INT64


Surely though, "absorbBlockBlake2Safe" absorbs an entire block of 64 bytes (512 bits). ptrWord is then pushed forward by another 512 bits since +=ing a pointer pushes it forward in multiples of bytes. So on line "ptrWord += BLOCK_LEN_BLAKE2_SAFE_BYTES;", the pointer is pushed forward by 64 bytes (512 bits), and the process is repeated for the next block.
in windows and  vs2010,i debug and trace,the pointer is truly add 512 byte,not 64 byte
Pages:
Jump to: