Bitcoin Forum
May 17, 2024, 07:33:36 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 ... 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 [129] 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 »
  Print  
Author Topic: [ANN][GRA] Graincoin - New PoW/PoS coin | Fast, secure | Version 1.5 Released!  (Read 176974 times)
bee7
Hero Member
*****
Offline Offline

Activity: 574
Merit: 523


View Profile
February 03, 2014, 09:45:43 PM
 #2561

I have an Idea for a random source:

Lets take the previous blockhash and the Grain adress of the miner and hash it.

something like this: hash(previous_block_hash + Grain_adress).

The greedy miner would first have to search for a proper Grain adress for his miner in order to receive the nex superblock.
Maybe you can design it to be very difficult to find the next proper adress for the superblock, like:

if hash(previous_block_hash + Grain_adress) contains "99999" = superblock

You could also add a superblock difficulty:
if no superblocks are found for a long time, the superblockdifficulty goes down, lets say from must_contain = "99999" to must_contain to "9999".

You could make it very very hard for a block to be a superblock, but every single block could be a superblock and the greedy miner would be fucked.

lets call it: "Proof of luck".

You can't do this, as the computation needs to be exactly the same for all clients, that's where the network agree and form the blockchain. So you can't take Grain address into it.


Every client in the network can read the adress of the blockfinder from the transaction in the block or not?
You would verify a block by checking the adress of the blockfinder from the coinbase transaction and not by your own adress.

And you need to check the transactions. If not, then a miner could add any amount of coins to the coinbase transaction.

You can do that with the last transaction, related to the block creation. But there's no diff than you do it with last block hash. It's just a random number hash, you combine different values or not, no difference there. Anyone who want to write a program to check that can do exactly what you do in the client. No additional protection or encryption.


There is a difference, vecause every miner has a different adress.
The greedy miner cant just start to mine, if the last block was lucky, because the blocks are no longer lucky, the miner adress is now lucky or unlucky.
He must have a lucky adress in order to generate a valid coinbase transaction with x64 amount of coins.
In order to to generate a valid x64 coinbase transaction everytime, he first needs to search for a lucky adress.
The normal miner will just mine with the same adress everytime and be hoping to get lucky.
If you made it very hard to find a valid proof of luck, then the greedy miner cant profit from his permanent search for the lucky adress.
If searching for a adress, that can solve if hash(previous_block_hash + Grain_adress) contains "99999" = superblock (or something like this) would take longer, than the average block time, then the search for the lucky adress would be pointless.

The verificaton could work like this:


0. Current block is #230000.
1. Miner has adress 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj
2. Miner generates his proof of luck: proof_of_luck_hash = hash(hash of block_#23000 + 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj)
3. Miner checks for superblock: if proof_of_luck_hash contains "99999" = superblock // in this case the proof_of_luck_hash containes the string "99999" so the proof of luck is valide, if not, then the miner can only create a valid transaction with 1x amount of coins, not x64 to the adress 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj.
4. Miner makes coinbase transaction with 64x amount coins to adress 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj and generates PoW.
5. Miner finds block #230001 and broadcasts it.
6. Client A receives the block #230001.
7. Client A generates the proof of luck for the block #23001 to be verified: proof_of_luck_hash = hash(hash of block_#23000 + adress of coinbase transaction_of_block_#230001) // adress of coinbase transaction is 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj
8. Client A verifies the superblock: if proof_of_luck_hash contains "99999" = superblock // the proof_of_luck_hash containes the string "99999", so it is verified as a superblock and the transaction is valid.
If the coinbase transaction would have only the normal 1x amount of coins and proof_of_luck_hash would not cointain "99999" (proof of work invalid), then the block would be also valid.
If proof_of_luck_hash would not cointain "99999" and the coinbase transaction would have 64x amount of coins (superblock), then the block would be invalid.

I am not a mathematician in a pure meaning of this term, so I might be mistaken but I see no statistical difference between the present algorithm and the one proposed by you. In your proposal the greedy miner need to do only two extra computations per block: the addition and hashing. He need not to find any lucky address but he would use the same address all the time. Then he get the same number of bonus blocks as he has now.

bobbyb
Member
**
Offline Offline

Activity: 109
Merit: 10


View Profile
February 03, 2014, 10:23:48 PM
Last edit: February 03, 2014, 11:01:31 PM by bobbyb
 #2562

I have an Idea for a random source:

Lets take the previous blockhash and the Grain adress of the miner and hash it.

something like this: hash(previous_block_hash + Grain_adress).

The greedy miner would first have to search for a proper Grain adress for his miner in order to receive the nex superblock.
Maybe you can design it to be very difficult to find the next proper adress for the superblock, like:

if hash(previous_block_hash + Grain_adress) contains "99999" = superblock

You could also add a superblock difficulty:
if no superblocks are found for a long time, the superblockdifficulty goes down, lets say from must_contain = "99999" to must_contain to "9999".

You could make it very very hard for a block to be a superblock, but every single block could be a superblock and the greedy miner would be fucked.

lets call it: "Proof of luck".

You can't do this, as the computation needs to be exactly the same for all clients, that's where the network agree and form the blockchain. So you can't take Grain address into it.


Every client in the network can read the adress of the blockfinder from the transaction in the block or not?
You would verify a block by checking the adress of the blockfinder from the coinbase transaction and not by your own adress.

And you need to check the transactions. If not, then a miner could add any amount of coins to the coinbase transaction.

You can do that with the last transaction, related to the block creation. But there's no diff than you do it with last block hash. It's just a random number hash, you combine different values or not, no difference there. Anyone who want to write a program to check that can do exactly what you do in the client. No additional protection or encryption.


There is a difference, vecause every miner has a different adress.
The greedy miner cant just start to mine, if the last block was lucky, because the blocks are no longer lucky, the miner adress is now lucky or unlucky.
He must have a lucky adress in order to generate a valid coinbase transaction with x64 amount of coins.
In order to to generate a valid x64 coinbase transaction everytime, he first needs to search for a lucky adress.
The normal miner will just mine with the same adress everytime and be hoping to get lucky.
If you made it very hard to find a valid proof of luck, then the greedy miner cant profit from his permanent search for the lucky adress.
If searching for a adress, that can solve if hash(previous_block_hash + Grain_adress) contains "99999" = superblock (or something like this) would take longer, than the average block time, then the search for the lucky adress would be pointless.

The verificaton could work like this:


0. Current block is #230000.
1. Miner has adress 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj
2. Miner generates his proof of luck: proof_of_luck_hash = hash(hash of block_#23000 + 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj)
3. Miner checks for superblock: if proof_of_luck_hash contains "99999" = superblock // in this case the proof_of_luck_hash containes the string "99999" so the proof of luck is valide, if not, then the miner can only create a valid transaction with 1x amount of coins, not x64 to the adress 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj.
4. Miner makes coinbase transaction with 64x amount coins to adress 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj and generates PoW.
5. Miner finds block #230001 and broadcasts it.
6. Client A receives the block #230001.
7. Client A generates the proof of luck for the block #23001 to be verified: proof_of_luck_hash = hash(hash of block_#23000 + adress of coinbase transaction_of_block_#230001) // adress of coinbase transaction is 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj
8. Client A verifies the superblock: if proof_of_luck_hash contains "99999" = superblock // the proof_of_luck_hash containes the string "99999", so it is verified as a superblock and the transaction is valid.
If the coinbase transaction would have only the normal 1x amount of coins and proof_of_luck_hash would not cointain "99999" (proof of work invalid), then the block would be also valid.
If proof_of_luck_hash would not cointain "99999" and the coinbase transaction would have 64x amount of coins (superblock), then the block would be invalid.

I am not a mathematician in a pure meaning of this term, so I might be mistaken but I see no statistical difference between the present algorithm and the one proposed by you. In your proposal the greedy miner need to do only two extra computations per block: the addition and hashing. He need not to find any lucky address but he would use the same address all the time. Then he get the same number of bonus blocks as he has now.



Every miner has a different adress, but the hash of the last block is the same for everybody.
Lets take these two adresses 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj and 9ECPZJBtbMHyfGikdUzQuf9Z8t6gGbWh5s.
If we compute hash(previous_block_hash + Grain_adress) with each of them, we get a different result (hash) for every single adress.
If we define a requirement for the proof of luck like: result hash must contain seven "9" or result hash must contain five "9" in a row ("99999"), then only a few adresses can generate a hash with a valid proof of luck.
Lets say 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj would have a valid proof of luck hash from hash(previous_block_hash + Grain_adress) for the upper requirement and 9ECPZJBtbMHyfGikdUzQuf9Z8t6gGbWh5s not, only the miner with the adress 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj woulb be able to create a superblock with a x64 amount of coins transaction, the miner with the adress 9ECPZJBtbMHyfGikdUzQuf9Z8t6gGbWh5s could only create a transaction with x1 amount for this round. Other clients could verify this.
This means, that each miner can generate a normal block with any adress, but only a few miner with a lucky adress can generate a superblock for a round.
The hash of the last block differs with each round (block), because the last block is differnt, so that in the next round a different adress may be lucky.

We can check the coinbase transaction to verify the miner adress.
And you cant just easiely generate a adress that is lucky (valid proof of luck) for the current round, because:
- You first have to generate a private key in order to generate a public key (grain adress)
- You cant generate a lucky public key first (you could, the you dont have the private key to acces this adress)
- You cant know if proof of luck is valid for this adress for this round, before you hash it with hash(previous_block_hash + Grain_adress) and test the result.

The difference to the current algorithm:
current algorithm: if the last blockhash was lucky and you find the nex block, then you find a superblock -> depends only on the previous blockhash
my algorithm: each round a few miners (or none) can get a superblock, if they mine with a adress that solves proof of luck -> depends on the previous hash and the adress in the coinbase of the current block.

With proof of luck, a miner cant just start to mine, after the last blockhash was lucky in order to find a superblock.
Every round can result with a superblock, if the miner with the lucky adress finds the adress, but it would be unlikely, that a adress would be lucky for several round.

A greedy miner could try two things:
- test each round if his adress is lucky and only PoW mine if this happens
- each round try to find a lucky adress by generating new adresses and only PoW mine if he finds one

I think, that Grain with proof of luck would be very less profitable for miners, that only PoW mine in order to get the superblocks.
bee7
Hero Member
*****
Offline Offline

Activity: 574
Merit: 523


View Profile
February 03, 2014, 10:54:35 PM
 #2563


Every miner has a different adress, but the hash of the last block is the same for everybody.
Lets take these two adresses 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj and 9ECPZJBtbMHyfGikdUzQuf9Z8t6gGbWh5s.
If we compute hash(previous_block_hash + Grain_adress) with each of them, we get a different result (hash) for every single adress.
If we define a requirement for the proof of luck like: result hash must contain seven "9" or result hash must contain five "9" in a row ("99999"), then only a few adresses can generate a hash with a valid proof of luck.
Lets say 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj would have a valid proof of luck hash from hash(previous_block_hash + Grain_adress) for the upper requirement and 9ECPZJBtbMHyfGikdUzQuf9Z8t6gGbWh5s not, only the miner with the adress 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj woulb be able to create a superblock with a x64 amount of coins transaction, the miner with the adress 9ECPZJBtbMHyfGikdUzQuf9Z8t6gGbWh5s could only create a transaction with x1 amount for this round. Other clients could verify this.
This means, that each miner can generate a normal block with any adress, but only a few miner with a lucky adress can generate a superblock for a round.
The hash of the last block differs with each round (block), because the last block is differnt, so that in the next round a different adress may be lucky.

We can check the coinbase transaction to verify the miner adress.
And you cant just easiely generate a adress that is lucky (valid proof of luck) for the current round, because:
- You first have to generate a private key in order to generate a public key (grain adress)
- You cant generate a lucky public key first (you could, the you dont have the private key to acces this adress)
- You cant know if proof of luck is valid for this adress for this round, before you hash it with hash(previous_block_hash + Grain_adress) and test the result.

I got your idea from the original explanation. But really, the outcome will be the same using just one address, no need to search for some lucky address. The adding some constant (the address) to the previous block hash and then rehashing the sum just makes it a small bit harder to determine if the block is lucky or not. The distribution of the prev block hash and distribution of your function output for some fixed address is the same, so the probability to find a lucky block is the same. Moreover, we will have as many separate 'sequences' of lucky blocks as we have miners, so the number of lucky blocks will increase.

If anyone knows some mathematician who could confirm or refute my conclusion I will appreciate his attention.
bobbyb
Member
**
Offline Offline

Activity: 109
Merit: 10


View Profile
February 03, 2014, 11:03:07 PM
 #2564


Every miner has a different adress, but the hash of the last block is the same for everybody.
Lets take these two adresses 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj and 9ECPZJBtbMHyfGikdUzQuf9Z8t6gGbWh5s.
If we compute hash(previous_block_hash + Grain_adress) with each of them, we get a different result (hash) for every single adress.
If we define a requirement for the proof of luck like: result hash must contain seven "9" or result hash must contain five "9" in a row ("99999"), then only a few adresses can generate a hash with a valid proof of luck.
Lets say 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj would have a valid proof of luck hash from hash(previous_block_hash + Grain_adress) for the upper requirement and 9ECPZJBtbMHyfGikdUzQuf9Z8t6gGbWh5s not, only the miner with the adress 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj woulb be able to create a superblock with a x64 amount of coins transaction, the miner with the adress 9ECPZJBtbMHyfGikdUzQuf9Z8t6gGbWh5s could only create a transaction with x1 amount for this round. Other clients could verify this.
This means, that each miner can generate a normal block with any adress, but only a few miner with a lucky adress can generate a superblock for a round.
The hash of the last block differs with each round (block), because the last block is differnt, so that in the next round a different adress may be lucky.

We can check the coinbase transaction to verify the miner adress.
And you cant just easiely generate a adress that is lucky (valid proof of luck) for the current round, because:
- You first have to generate a private key in order to generate a public key (grain adress)
- You cant generate a lucky public key first (you could, the you dont have the private key to acces this adress)
- You cant know if proof of luck is valid for this adress for this round, before you hash it with hash(previous_block_hash + Grain_adress) and test the result.

I got your idea from the original explanation. But really, the outcome will be the same using just one address, no need to search for some lucky address. The adding some constant (the address) to the previous block hash and then rehashing the sum just makes it a small bit harder to determine if the block is lucky or not. The distribution of the prev block hash and distribution of your function output for some fixed address is the same, so the probability to find a lucky block is the same. Moreover, we will have as many separate 'sequences' of lucky blocks as we have miners, so the number of lucky blocks will increase.

If anyone knows some mathematician who could confirm or refute my conclusion I will appreciate his attention.

I edited my post.
kovand11
Member
**
Offline Offline

Activity: 61
Merit: 10


View Profile
February 03, 2014, 11:06:33 PM
 #2565

I have an Idea for a random source:

Lets take the previous blockhash and the Grain adress of the miner and hash it.

something like this: hash(previous_block_hash + Grain_adress).

The greedy miner would first have to search for a proper Grain adress for his miner in order to receive the nex superblock.
Maybe you can design it to be very difficult to find the next proper adress for the superblock, like:

if hash(previous_block_hash + Grain_adress) contains "99999" = superblock

You could also add a superblock difficulty:
if no superblocks are found for a long time, the superblockdifficulty goes down, lets say from must_contain = "99999" to must_contain to "9999".

You could make it very very hard for a block to be a superblock, but every single block could be a superblock and the greedy miner would be fucked.

lets call it: "Proof of luck".

You can't do this, as the computation needs to be exactly the same for all clients, that's where the network agree and form the blockchain. So you can't take Grain address into it.


Every client in the network can read the adress of the blockfinder from the transaction in the block or not?
You would verify a block by checking the adress of the blockfinder from the coinbase transaction and not by your own adress.

And you need to check the transactions. If not, then a miner could add any amount of coins to the coinbase transaction.

You can do that with the last transaction, related to the block creation. But there's no diff than you do it with last block hash. It's just a random number hash, you combine different values or not, no difference there. Anyone who want to write a program to check that can do exactly what you do in the client. No additional protection or encryption.


There is a difference, vecause every miner has a different adress.
The greedy miner cant just start to mine, if the last block was lucky, because the blocks are no longer lucky, the miner adress is now lucky or unlucky.
He must have a lucky adress in order to generate a valid coinbase transaction with x64 amount of coins.
In order to to generate a valid x64 coinbase transaction everytime, he first needs to search for a lucky adress.
The normal miner will just mine with the same adress everytime and be hoping to get lucky.
If you made it very hard to find a valid proof of luck, then the greedy miner cant profit from his permanent search for the lucky adress.
If searching for a adress, that can solve if hash(previous_block_hash + Grain_adress) contains "99999" = superblock (or something like this) would take longer, than the average block time, then the search for the lucky adress would be pointless.

The verificaton could work like this:


0. Current block is #230000.
1. Miner has adress 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj
2. Miner generates his proof of luck: proof_of_luck_hash = hash(hash of block_#23000 + 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj)
3. Miner checks for superblock: if proof_of_luck_hash contains "99999" = superblock // in this case the proof_of_luck_hash containes the string "99999" so the proof of luck is valide, if not, then the miner can only create a valid transaction with 1x amount of coins, not x64 to the adress 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj.
4. Miner makes coinbase transaction with 64x amount coins to adress 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj and generates PoW.
5. Miner finds block #230001 and broadcasts it.
6. Client A receives the block #230001.
7. Client A generates the proof of luck for the block #23001 to be verified: proof_of_luck_hash = hash(hash of block_#23000 + adress of coinbase transaction_of_block_#230001) // adress of coinbase transaction is 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj
8. Client A verifies the superblock: if proof_of_luck_hash contains "99999" = superblock // the proof_of_luck_hash containes the string "99999", so it is verified as a superblock and the transaction is valid.
If the coinbase transaction would have only the normal 1x amount of coins and proof_of_luck_hash would not cointain "99999" (proof of work invalid), then the block would be also valid.
If proof_of_luck_hash would not cointain "99999" and the coinbase transaction would have 64x amount of coins (superblock), then the block would be invalid.

I am not a mathematician in a pure meaning of this term, so I might be mistaken but I see no statistical difference between the present algorithm and the one proposed by you. In your proposal the greedy miner need to do only two extra computations per block: the addition and hashing. He need not to find any lucky address but he would use the same address all the time. Then he get the same number of bonus blocks as he has now.



Every miner has a different adress, but the hash of the last block is the same for everybody.
Lets take these two adresses 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj and 9ECPZJBtbMHyfGikdUzQuf9Z8t6gGbWh5s.
If we compute hash(previous_block_hash + Grain_adress) with each of them, we get a different result (hash) for every single adress.
If we define a requirement for the proof of luck like: result hash must contain seven "9" or result hash must contain five "9" in a row ("99999"), then only a few adresses can generate a hash with a valid proof of luck.
Lets say 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj would have a valid proof of luck hash from hash(previous_block_hash + Grain_adress) for the upper requirement and 9ECPZJBtbMHyfGikdUzQuf9Z8t6gGbWh5s not, only the miner with the adress 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj woulb be able to create a superblock with a x64 amount of coins transaction, the miner with the adress 9ECPZJBtbMHyfGikdUzQuf9Z8t6gGbWh5s could only create a transaction with x1 amount for this round. Other clients could verify this.
This means, that each miner can generate a normal block with any adress, but only a few miner with a lucky adress can generate a superblock for a round.
The hash of the last block differs with each round (block), because the last block is differnt, so that in the next round a different adress may be lucky.

We can check the coinbase transaction to verify the miner adress.
And you cant just easiely generate a adress that is lucky (valid proof of luck) for the current round, because:
- You first have to generate a private key in order to generate a public key (grain adress)
- You cant generate a lucky public key first (you could, the you dont have the private key to acces this adress)
- You cant know if proof of luck is valid for this adress for this round, before you hash it with hash(previous_block_hash + Grain_adress) and test the result.

The difference to the current algorithm:
current algorithm: if the last blockhash was lucky and you find the nex block, then you find a superblock -> depends only on the previous blockhash
my algorithm: each round a few miners (or none) can get a superblock, if they mine with a adress that solves proof of luck -> depends on the previous hash and the adress in the coinbase of the current block.

With proof of luck, a miner cant just start to mine, after the last blockhash was lucky in order to find a superblock.
Every round can result with a superblock, if the miner with the lucky adress finds the adress, but it would be unlikely, that a adress would be lucky for several round.

A greedy miner could try two things:
- test each round if his adress is lucky and only PoW mine if this happens
- each round try to find a lucky adress by generating new adresses and only PoW mine if he finds one

I think, that Grain with proof of luck would be very less profitable for miners, that only PoW mine in order to get the superblocks.

1% chance to superblock means, that every 100th address must be "lucky". Its easy to check 100 address, if they are lucky.
bobbyb
Member
**
Offline Offline

Activity: 109
Merit: 10


View Profile
February 03, 2014, 11:17:14 PM
 #2566

I have an Idea for a random source:

Lets take the previous blockhash and the Grain adress of the miner and hash it.

something like this: hash(previous_block_hash + Grain_adress).

The greedy miner would first have to search for a proper Grain adress for his miner in order to receive the nex superblock.
Maybe you can design it to be very difficult to find the next proper adress for the superblock, like:

if hash(previous_block_hash + Grain_adress) contains "99999" = superblock

You could also add a superblock difficulty:
if no superblocks are found for a long time, the superblockdifficulty goes down, lets say from must_contain = "99999" to must_contain to "9999".

You could make it very very hard for a block to be a superblock, but every single block could be a superblock and the greedy miner would be fucked.

lets call it: "Proof of luck".

You can't do this, as the computation needs to be exactly the same for all clients, that's where the network agree and form the blockchain. So you can't take Grain address into it.


Every client in the network can read the adress of the blockfinder from the transaction in the block or not?
You would verify a block by checking the adress of the blockfinder from the coinbase transaction and not by your own adress.

And you need to check the transactions. If not, then a miner could add any amount of coins to the coinbase transaction.

You can do that with the last transaction, related to the block creation. But there's no diff than you do it with last block hash. It's just a random number hash, you combine different values or not, no difference there. Anyone who want to write a program to check that can do exactly what you do in the client. No additional protection or encryption.


There is a difference, vecause every miner has a different adress.
The greedy miner cant just start to mine, if the last block was lucky, because the blocks are no longer lucky, the miner adress is now lucky or unlucky.
He must have a lucky adress in order to generate a valid coinbase transaction with x64 amount of coins.
In order to to generate a valid x64 coinbase transaction everytime, he first needs to search for a lucky adress.
The normal miner will just mine with the same adress everytime and be hoping to get lucky.
If you made it very hard to find a valid proof of luck, then the greedy miner cant profit from his permanent search for the lucky adress.
If searching for a adress, that can solve if hash(previous_block_hash + Grain_adress) contains "99999" = superblock (or something like this) would take longer, than the average block time, then the search for the lucky adress would be pointless.

The verificaton could work like this:


0. Current block is #230000.
1. Miner has adress 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj
2. Miner generates his proof of luck: proof_of_luck_hash = hash(hash of block_#23000 + 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj)
3. Miner checks for superblock: if proof_of_luck_hash contains "99999" = superblock // in this case the proof_of_luck_hash containes the string "99999" so the proof of luck is valide, if not, then the miner can only create a valid transaction with 1x amount of coins, not x64 to the adress 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj.
4. Miner makes coinbase transaction with 64x amount coins to adress 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj and generates PoW.
5. Miner finds block #230001 and broadcasts it.
6. Client A receives the block #230001.
7. Client A generates the proof of luck for the block #23001 to be verified: proof_of_luck_hash = hash(hash of block_#23000 + adress of coinbase transaction_of_block_#230001) // adress of coinbase transaction is 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj
8. Client A verifies the superblock: if proof_of_luck_hash contains "99999" = superblock // the proof_of_luck_hash containes the string "99999", so it is verified as a superblock and the transaction is valid.
If the coinbase transaction would have only the normal 1x amount of coins and proof_of_luck_hash would not cointain "99999" (proof of work invalid), then the block would be also valid.
If proof_of_luck_hash would not cointain "99999" and the coinbase transaction would have 64x amount of coins (superblock), then the block would be invalid.

I am not a mathematician in a pure meaning of this term, so I might be mistaken but I see no statistical difference between the present algorithm and the one proposed by you. In your proposal the greedy miner need to do only two extra computations per block: the addition and hashing. He need not to find any lucky address but he would use the same address all the time. Then he get the same number of bonus blocks as he has now.



Every miner has a different adress, but the hash of the last block is the same for everybody.
Lets take these two adresses 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj and 9ECPZJBtbMHyfGikdUzQuf9Z8t6gGbWh5s.
If we compute hash(previous_block_hash + Grain_adress) with each of them, we get a different result (hash) for every single adress.
If we define a requirement for the proof of luck like: result hash must contain seven "9" or result hash must contain five "9" in a row ("99999"), then only a few adresses can generate a hash with a valid proof of luck.
Lets say 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj would have a valid proof of luck hash from hash(previous_block_hash + Grain_adress) for the upper requirement and 9ECPZJBtbMHyfGikdUzQuf9Z8t6gGbWh5s not, only the miner with the adress 9T5x6h164qpqk3s3Lunq7uAVLapQNCF7wj woulb be able to create a superblock with a x64 amount of coins transaction, the miner with the adress 9ECPZJBtbMHyfGikdUzQuf9Z8t6gGbWh5s could only create a transaction with x1 amount for this round. Other clients could verify this.
This means, that each miner can generate a normal block with any adress, but only a few miner with a lucky adress can generate a superblock for a round.
The hash of the last block differs with each round (block), because the last block is differnt, so that in the next round a different adress may be lucky.

We can check the coinbase transaction to verify the miner adress.
And you cant just easiely generate a adress that is lucky (valid proof of luck) for the current round, because:
- You first have to generate a private key in order to generate a public key (grain adress)
- You cant generate a lucky public key first (you could, the you dont have the private key to acces this adress)
- You cant know if proof of luck is valid for this adress for this round, before you hash it with hash(previous_block_hash + Grain_adress) and test the result.

The difference to the current algorithm:
current algorithm: if the last blockhash was lucky and you find the nex block, then you find a superblock -> depends only on the previous blockhash
my algorithm: each round a few miners (or none) can get a superblock, if they mine with a adress that solves proof of luck -> depends on the previous hash and the adress in the coinbase of the current block.

With proof of luck, a miner cant just start to mine, after the last blockhash was lucky in order to find a superblock.
Every round can result with a superblock, if the miner with the lucky adress finds the adress, but it would be unlikely, that a adress would be lucky for several round.

A greedy miner could try two things:
- test each round if his adress is lucky and only PoW mine if this happens
- each round try to find a lucky adress by generating new adresses and only PoW mine if he finds one

I think, that Grain with proof of luck would be very less profitable for miners, that only PoW mine in order to get the superblocks.

1% chance to superblock means, that every 100th address must be "lucky". Its easy to check 100 address, if they are lucky.

1% is way too high, each round could result in a superblock, so the chance must be a lot lower for a adress to be lucky.
But I agree with bee7, this is just an idea and we need a mathematician to check it.

I just read your idea and I think that yours is better  Cheesy
kovand11
Member
**
Offline Offline

Activity: 61
Merit: 10


View Profile
February 03, 2014, 11:22:42 PM
 #2567

But the fair miner, with const address, has to have 1%. How is it works with your algo?
bobbyb
Member
**
Offline Offline

Activity: 109
Merit: 10


View Profile
February 03, 2014, 11:34:03 PM
Last edit: February 03, 2014, 11:46:27 PM by bobbyb
 #2568

But the fair miner, with const address, has to have 1%. How is it works with your algo?


Hmm not so well Embarrassed
My idea sucks, its only resulting in PoW of generating adresses.
I focused only on the greedy miner problem and forgot the fair miners.
Sorry for wasting your time.
timerland
Hero Member
*****
Offline Offline

Activity: 1526
Merit: 596


View Profile
February 04, 2014, 06:31:20 AM
 #2569

still like this coin, but price going down lately. I think we need to be on cryptsy

Smiley
mkimid
Sr. Member
****
Offline Offline

Activity: 336
Merit: 250

Have A Nice Day


View Profile
February 04, 2014, 08:08:09 AM
 #2570

Simply, just use the generated/found hash as the random seed to get the reward and super block.

QT a : found a block, generate reward using the found/completed hash
QT a : broadcast the reward and the found block information
QT b : receive the new block information
QT b : check the reward using the received block/hash information
QT b : check the validity of found hash
QT b : return a confirmation ~
QT x : same as QT x
QT a : notification the found of block to user
QT a : ~

Just simply use the current (broadcasted) block information to verify the reward,

Is it difficult technically ?
And than, need to find the way to overcome the difficulty,

Have a nice day
mkimid
Sr. Member
****
Offline Offline

Activity: 336
Merit: 250

Have A Nice Day


View Profile
February 04, 2014, 08:17:54 AM
 #2571

still like this coin, but price going down lately. I think we need to be on cryptsy

Even this coin is going to the cryptsy, it can not hold its price without values, but, if this coin has a value, it can hold its price wherever.

Just we need to think about

What is the attractive points ?

- there are many PoS/PoW coins, when I concern a problem, i just heard "every coins are same", and than, i want to ask how this coin can be better ?

After 4 weeks, the reward will become half,
Simply, profitability will become half ~

Guess what will happen ?


Have a nice day
Nullu
Hero Member
*****
Offline Offline

Activity: 532
Merit: 500


View Profile
February 04, 2014, 09:26:31 AM
 #2572

Grain is here to stay. Everyone seems to want to get rich quick, in other words pump and dump crapcoins. Don't be fooled into thinking that's a sustainable model. I'm holding Grain long term. No hype or rhetoric. It just makes sense to.

BTC - 14kYyhhWZwSJFHAjNTtyhRVSu157nE92gF
bondi
Sr. Member
****
Offline Offline

Activity: 347
Merit: 250


View Profile
February 04, 2014, 11:58:46 AM
 #2573

Grain is here to stay. Everyone seems to want to get rich quick, in other words pump and dump crapcoins. Don't be fooled into thinking that's a sustainable model. I'm holding Grain long term. No hype or rhetoric. It just makes sense to.

I agree with you. People should not only hold but also trade some... We need volume...
YoyodyneSystems
Legendary
*
Offline Offline

Activity: 1386
Merit: 1023



View Profile
February 04, 2014, 12:00:59 PM
 #2574

Time to freshen up this coin and get this thing on Cryptsy.
Do a mini-relaunch or rebrand. You guys can get this on cryptsy in a week to two I am sure.
You already have tons of votes and this coin has been on coinedup for awhile as well as
having votes on cryptsy freshdesk.

Come up with a plan and execute and the market will reward you with higher prices and attention.
A fork. Some new logos. New promotions...

DIME is already working on their move on up. Grain time soon!
mkimid
Sr. Member
****
Offline Offline

Activity: 336
Merit: 250

Have A Nice Day


View Profile
February 04, 2014, 12:33:06 PM
 #2575

Grain is here to stay. Everyone seems to want to get rich quick, in other words pump and dump crapcoins. Don't be fooled into thinking that's a sustainable model. I'm holding Grain long term. No hype or rhetoric. It just makes sense to.

Seriously, Good Luck ~

Have a nice day
bee7
Hero Member
*****
Offline Offline

Activity: 574
Merit: 523


View Profile
February 04, 2014, 01:12:29 PM
 #2576

Grain is here to stay. Everyone seems to want to get rich quick, in other words pump and dump crapcoins. Don't be fooled into thinking that's a sustainable model. I'm holding Grain long term. No hype or rhetoric. It just makes sense to.

Seriously, Good Luck ~

Thank you. We are working on making it more attractive for you.
DAoneNonlyG
Sr. Member
****
Offline Offline

Activity: 453
Merit: 250



View Profile
February 04, 2014, 04:30:06 PM
 #2577

Grain is here to stay. Everyone seems to want to get rich quick, in other words pump and dump crapcoins. Don't be fooled into thinking that's a sustainable model. I'm holding Grain long term. No hype or rhetoric. It just makes sense to.

I agree with you. People should not only hold but also trade some... We need volume...

dito...

@ all

the 1k harvest bounty @ www.grainers.net is still on... we´ve found 140 blocks(!) so far, but only 20 blocks were eligible (rest of the blocks are not counted, cause they´re "adminblocks")...
bondi
Sr. Member
****
Offline Offline

Activity: 347
Merit: 250


View Profile
February 04, 2014, 04:31:12 PM
 #2578

Grain is here to stay. Everyone seems to want to get rich quick, in other words pump and dump crapcoins. Don't be fooled into thinking that's a sustainable model. I'm holding Grain long term. No hype or rhetoric. It just makes sense to.

Seriously, Good Luck ~

What's your take on this?
Turbosx50
Newbie
*
Offline Offline

Activity: 15
Merit: 0


View Profile
February 04, 2014, 08:21:39 PM
 #2579

Can you guys please help me configure my grain coin wallet? I don't know
How to unlock it. I sent a quantity of grain coin from coinedup to my
Receiving address and have not had anything post.

This is my first attempt at mining, I've stuck with trading only for six months.
I don't have much expierence with command prompts or code.

I appreciate you taking the time to ready post.
scabbyb
Member
**
Offline Offline

Activity: 111
Merit: 10


View Profile
February 04, 2014, 08:55:05 PM
 #2580

Grain is here to stay. Everyone seems to want to get rich quick, in other words pump and dump crapcoins. Don't be fooled into thinking that's a sustainable model. I'm holding Grain long term. No hype or rhetoric. It just makes sense to.

I agree with you. People should not only hold but also trade some... We need volume...

Imo we need more people holding.  The sell orders on coinedup are driving the price down considerably right now.  I know because my lower buy orders are continually getting filled.  The last few days there has been only 1 - 2btc bid volume on coined up (sometimes lower). 

Also, where else is there any news/information on grain besides this thread? Whats the point of having 4 websites that all have the same identical information on them? Why are the subreddit's of newer coins growing considerably faster than this one? 

The constant selling and lack of any new information (or a growing community) are eroding my initial impression of grain as a good long term investment.  I honestly don't know how to help besides buying lower and lower priced grain.  If anyone has any suggestions, please let me know

Pages: « 1 ... 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 [129] 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 »
  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!