Search content
Sort by

Showing 20 of 49 results by Epictetus
Post
Topic
Board Development & Technical Discussion
Re: A Two-Round Proof of Work instead of PoW
by
Epictetus
on 23/11/2021, 04:18:04 UTC
Quote
A_hash = Hash(Block Head + sign(Block Head))
You don't have to add signatures to the block header. You can add them to the coinbase transaction, like it is done in signet, in this way you can make it backward-compatible. You can find all technical details in BIP-325: https://github.com/bitcoin/bips/blob/master/bip-0325.mediawiki.

In general, to start your network, all you need is constructing signet challenge to allow signing blocks only by those miners, which passed the initial selection. By default, signet challenge is set to 1-of-2 multisig, so only two miners can produce blocks (because it is needed to test things in more stable way than in testnet). You can change that signet challenge, just to allow only signatures that passed the first round and you will get your coin.

Thank you very much Garlonicon for the link. Yea. You are absolutely right on A_hash. It was my first intuition and then I switched to B_hash to avoid congesting the network as every miner can do all the B_hash calculation by itself. Your remark on backward-compatibility is brilliant.
Post
Topic
Board Development & Technical Discussion
Re: A Two-Round Proof of Work instead of PoW
by
Epictetus
on 22/11/2021, 08:18:36 UTC
Quote
And Everyone will broadcast its A_hash and everyone will know that this A_hash can be produced only by the miner itself and no one else.
You know that miners in pools are mining on pool's address? If you force them to mine on their own addresses, then they will include a transaction sending coins back to the pool (or even directly distributing rewards to previous miners, selected by the pool).
True. True.
Post
Topic
Board Development & Technical Discussion
Re: A Two-Round Proof of Work instead of PoW
by
Epictetus
on 22/11/2021, 07:55:15 UTC
for example, only let each miner perform one hash. whichever miner comes closest to the target is the winner. and they get to mine the block.

This idea you can implement it easily. Just ask everyone to calculate their A_hash: hash = Hash(Block Head + sign(Block Head))
And Everyone will broadcast its A_hash and everyone will know that this A_hash can be produced only by the miner itself and no one else.

Now the issue is how to find the consensus:
1- The closest to the target like in PoW.
2- The closest to the arithmetic average mod a Big N of all the A_hash of the network.
3- The closest to the geometric average mod a Big N of all the A_hash of the network.
4- Others

And the idea is how to make sure that everyone is OK on the outcome? Bitcoin PoW proposed the criteria of the fastest miner which push people to invest heavily in CPU.
Post
Topic
Board Development & Technical Discussion
Re: A Two-Round Proof of Work instead of PoW
by
Epictetus
on 22/11/2021, 07:33:39 UTC
They can't pretend simply because it's "one cpu one vote". Unless they go and buy alot of cpus they won't get but one vote. they can knock themself out on getting more cpus though. But I don't think that would scale very well. which is good. Cheesy now of course, you do run up against the issue of how do you make sure that each cpu is only submitting a single hash. i haven't figured that out yet.
The idea has a lot of merit. But we need to find a way to implement it in such a way that most of honest players comply with it. Because as said by Vjudeu, miners can always create N sub-miners etc.

The other idea that I suggested along side with JPoW was to create a Placebo Proof-of-Work (PPoW): a group of miners unknowingly run the real PoW and another group of miners unknowingly run only a placebo PoW, a PoW with no hashing computation at all. And we adjust the seize of each group accordingly to get the desired number of miners to run the hash competition. But the issue again is that miners can still ignore the Placebo PoW and just use the traditional PoW disregarding the rules to win the block reward. So, I need to find a way to stop such behavior which I haven't figured that out yet.

Post
Topic
Board Development & Technical Discussion
Re: A Two-Round Proof of Work instead of PoW
by
Epictetus
on 22/11/2021, 04:05:55 UTC
But I still dont see how you are stopping individual miners. I guess you're just focused on controlling mining pools.

We are not stopping individual miners but only limiting the hash computation to a group of miners at each block.

Quote
You didn't address the question about what is stopping an individual miner from just setting up a bunch of private keys and doing that hash on each one to guarantee they get a favorable hash result from at least one of them. They would most likely do that. So you must not be worried about them cheating the system in that way. Grin
If individual miners would do that then you can get dollars to donuts that larger miners would too somehow.
They can do that. But it will create for them the issue of managing a long list of addresses and keys. And that each time they will need to spend time calculating the signatures and the hashes. Which at the end may not worth it.

Quote
Which is why I doubt we would ever see something like this in bitcoin. Miners control the game. And they seem pretty happy with the way things are.
Yea. But this is NOT a desired outcome. Because we have a system that was supposed to be decentralized became de facto centralized in the hands of few miners. What if these few miners decided to engage in 51% attack without announcing it and steal people money.

Quote
Well I wouldn't know that I agree with you that miners would be forced to share their private keys with each other to work your system. For example, what's stopping a group of miners from creating a multisignature taproot public key? i guess it's a theoretical work around but maybe not so doable in practice hopefully for your sake!
The idea is to create a system that is as decentralized as possible. The current state of affaires is not at the best interest of Bitcoin ideologically. Today, we have few miners running the show and they can create a monopoly whenever they want to. Just another Banking system with a different name.
Post
Topic
Board Development & Technical Discussion
Re: A Two-Round Proof of Work instead of PoW
by
Epictetus
on 21/11/2021, 09:19:19 UTC
Quote
If (hash mod N > K), then the miner will move to the next block without calculating any hash.
It is impossible in any decentralized system. You could have some difficulty and accept only blocks with hash modulo 2 equal to zero, that would be as hard as mining with doubled difficulty, you cannot expect that people will stop mining just because your official mining software is doing that. If N is some natural power of two, then it is the same as taking some last bits of the hash. By checking blocks for the classical Proof of Work and some condition with hash modulo N, you are just rising the difficulty in some obscured way.
Yes. But like in Bitcoin, we bet that the network will be controlled by honest miners who will play by the rules. And even if they don't, their work will be simply ignored by the honest nodes and hence waste of money for the miners involved in such practice. 

Quote
Quote
the policy stipulates that cars whose license plate ends in an odd number are only allowed to circulate on odd-numbered dates and vice versa
It works, because license plates are distributed in centralized way.
Yes. There is no way to stop a miner from hashing if he want to launch his machine. But technically his hash work will go to dustbin.


Quote
Quote
The replacement of $nonce$ in PoW by $sign(nonce)$ will force the miner to either share its private key with the mining pool or calculate the hash itself.
No, it won't change anything. Miners will share their private keys with mining pools. Today they are mining directly to the pool's address, so sharing the key requires the same level of trust as today. But that's just one option. In any useful coin you can still make transactions. That means you can mine a block where you send your reward to yourself, but you can include a transaction sending some older coins to the pool. Then, the pool can accept your shares only if you paid them first, in this way you can reach the same system as you have today, but just with more transactions to obfuscate what is going on (if for example you will find a way to punish miners for sharing keys).
Indeed. But it reduces pool mining to be only between miners who can share their private keys with each others. A total trust is required. Which means that there a is large number of miners who won't be able to create pools unless they trust each other 100%. And this in itself will create a limitation in the pool formation. It won't stop it.
Post
Topic
Board Development & Technical Discussion
Re: A Two-Round Proof of Work instead of PoW
by
Epictetus
on 21/11/2021, 09:05:41 UTC

Maybe I'm ignorant about how bitcoin mining works but it seems like a miner could just compute the above hash for multiple public keys they own so as to guarantee one of them hashes out to the desired constraint (less than K, I believe??)
Indeed. You are right. This is why we proposed equation (2) and (3)

Quote
Once again, if a miner has multiple private keys they'll just compute the above hash for each one.
If i was a miner, that's what I would do. Unless it was computationally too expensive.
Indeed. But it reduces mining only between miners who can share their private keys with each other. Which means that there a large number of miners won't be able to create pools unless they trust each other 100%.
Post
Topic
Board Development & Technical Discussion
Re: Brute-forcing Bitcoin private keys
by
Epictetus
on 20/11/2021, 19:32:29 UTC
In my opinion we have around 150+ millions crypto addresses. And the market cap is 2 trillions USD.
Plus miners are ready to run their machines for any job be it mining or hacking. With Amazon AWS / Google Cloud machines ready to be used by anyone. Personally, I think it is just a question of time. I was thinking about of this issue a long while. The person / groups who will crack an address, they will most likely not announcing it.   
Post
Topic
Board Development & Technical Discussion
Re: A Two-Round Proof of Work instead of PoW
by
Epictetus
on 20/11/2021, 18:54:22 UTC
Quote
Now the question what is the fraction of non-pooled miners in Bitcoin network?
You can see for example here: https://github.com/taprootactivation/Taproot-Activation. As far as I know, only the biggest pools were contacted for taproot support, there were no solo miners having some significant power. That means even if your proposal would be backward-compatible, you would ask big mining pools for support, not some independent solo miners. Of course you can rely on solo miners, but then I expect you wouldn't get more than few percent of the mining power supporting your version.
So True. Pool domination is a reality. Now we need a way to complicate life for mining pools.
So I got this new idea that I called: Jakarta Proof of Work. Instead of running a Two-Round PoW, we just directly limit the miners that are going to participate in the hash competition for a block.
Read article here:
or here:
==============Begin==============
The other simple idea is to do like Jakarta’s odd-even traffic policy to limit the number of cars entering Jakarta: the policy stipulates that cars whose license plate ends in an odd number are only allowed to circulate on odd-numbered dates and vice versa. So, like in the case of Jakarta, we don't want every miner to participate in the hash computation all the time. So, we propose a Jakarta PoW (JPoW) where only miners with (hash mod N < K) where, for each block, for each miner with its public key $PublicKey$:
Equation (1):  hash = Hash(Block Head + Public Key)
If (hash mod N < K), then the miner will go for the traditional Bitcoin PoW.  If (hash mod N > K), then the miner will move to the next block without calculating any hash. $N$ and $K$ are parameters to adjust to determine the number of miners participating in the hash competition. To get a similar model like Jakarta odd-even policy, we can just choose $N=2$ and $K=1$.  When a miner receives an $nonce$ from another miner, it can easily verify that the sender is authorized to participate in the hash computation. If all is fine, it accepts the $nonce$ and moves to the next block competition. If the miner sending the $nonce$ is not authorized to participate in the hash computation, the miner receiving the $nonce$ will ignore what it received and continue solving for its own $nonce$ and listening to the network like in Bitcoin. In JPoW, if a miner ignores the rules and just go for the hash calculation, such miner will be ignored by the honest nodes in the network.
With equation (1), it will be still possible for miners that cannot participate in a hash computation to rent their machines to miners that are authorized to hash as the public keys information is available to all miners. So, to resolve this issue, we replace $Public Key$ by $sign(Block Head)$:
Equation(2): hash = Hash(Block Head + sign(Block Head))
The $sign(Block Head)$ can be produced by the miner only. And it is not available to all the miners at the time of the block creation. If a miner wants to participate in a pool, it will need to send its $sign(Block Head)$ to its pool. The pool will still be able to help on the hash calculation.
Even though $sign(Block Head)$ will slow down the process as the pool will still need to wait for its arrival before starting looking for the nonce while hashing for $Hash(Block Head + sign(Block Head) +  nonce)$. To complicate the problem further for the pool, we slightly modify the PoW and search for a nonce while hashing the following equation (3):  PoW hash = Hash(Block Head + sign(Block Head) +  sign(nonce))
The replacement of $nonce$ in PoW by $sign(nonce)$ will force the miner to either share its private key with the mining pool or calculate the hash itself. Sharing one's private key is a significant constraint and it is expected to complicate mining pool formation.
===============End====

 

 
Post
Topic
Board Development & Technical Discussion
Re: A Two-Round Proof of Work instead of PoW
by
Epictetus
on 20/11/2021, 14:58:17 UTC
The OP appears to be proposing something that will result in only 0.1% of the miners using their equipment in the second round of mining, and the remaining 99.9% of miners will turn off their equipment during the second round.

The above is not possible due to pool mining. As an example:
If there were 10,000 pools participating in the 1st round, only 10 would make it to the second round. Once the second round starts, the miners who were mining for the 9,990 pools that are not participating in the second round would switch to one of the 10 remaining pools.

There are currently 4 major mining pools (with the likelihood of there being more that are not public). Most likely, they would all be able to participate in the second round of mining, however in the event that one pool is unable to participate in the second round, the miners mining for that pool will switch to one of the remaining pools. If a "solo miner" would be able to make it to the second round, it would make financial sense for them to "sell" the ability for others to "mine in their name" and if no pools are able to participate in the second round, all of the pool miners would "buy" the ability to mine in one of the solo miners who are participating.

tl;dr - total electric consumption will not be reduced by implementing the OP's proposal.
It is true that miners can/will organize themselves in pools and participate in the hash calculation all the time. TRPoW can still be able to reduce the total energy consumption in the network thanks to the non-pooled miners.
Now the question what is the fraction of non-pooled miners in Bitcoin network?
Post
Topic
Board Development & Technical Discussion
Re: A Two-Round Proof of Work instead of PoW
by
Epictetus
on 19/11/2021, 11:34:46 UTC

Satoshi first did a lot of coding and testing, and then wrote the whitepaper. I think in many coins, things are going backwards: first there is some unchecked idea with some whitepaper, then there is some coding and testing, and later there are many big surprises, because some things were not checked before releasing the whitepaper and they are getting out of control.

Thank you very much Vjudeu for your time and your great sharing and all the links. Much appreciated Bro. I learned a lot from you.
Post
Topic
Board Development & Technical Discussion
Re: A Two-Round Proof of Work instead of PoW
by
Epictetus
on 19/11/2021, 08:51:29 UTC
What would be the costs of a “two-round” Proof of Work algorithm compared to regular POW? More or less, for the same level of security? More or less, for the same incentives? What feature would make it more attractive for the mining cartel?

TRPoW does not affect the competition edge of a miner. So If everything stays the same, a miner will have a lower electricity bill with more or less the same earning potential.  So, it will reduce the miners business cost and increase their profit.

The mining cartel will make more money with less running cost.  


Have you received some feeback from a Core Developer, or from someone who is not a pleb? No offense to the members of this forum. Plus no offense to you, but how can we know that your proposal isn’t like the Space Ghost meme that says, “I am new to Bitcoin, and I am here to fix it”?
Be cool baby. Things will come in their due time. Stay tuned.
Post
Topic
Board Development & Technical Discussion
Re: A Two-Round Proof of Work instead of PoW
by
Epictetus
on 19/11/2021, 06:51:09 UTC
What would be the costs of a “two-round” Proof of Work algorithm compared to regular POW? More or less, for the same level of security? More or less, for the same incentives? What feature would make it more attractive for the mining cartel?
TRPoW does not affect the competition edge of a miner. So If everything stays the same, a miner will have a lower electricity bill
with more or less the same earning potential.  So, it will reduce the miners business cost and increase their profit.
The mining cartel will make more money And with less running cost. 
Post
Topic
Board Development & Technical Discussion
Re: A Two-Round Proof of Work instead of PoW
by
Epictetus
on 18/11/2021, 10:13:07 UTC

I think it's great just how it is regarding Proof of work. But I'm always interested to learn of other blockchains using alternatives to pure proof of work. Like chiacoin.  Grin

Proof of Space is driving the hard disk drive market crazy I read in the news. 
Post
Topic
Board Development & Technical Discussion
Re: A Two-Round Proof of Work instead of PoW
by
Epictetus
on 18/11/2021, 10:07:55 UTC
Which will help the environment by reducing the machines production

On the contrary. Even if your scheme worked, and you could force miners to sit idle 80% of the time,
that means they'll reinvest the saved electricity costs into buying MUCH MORE hardware to stay competitive.

As long as Bitcoin issues $50M dollar's worth every day, we can expect miners to collectively spend nearly that much money in competing for it.

All you achieve is a shift from electricity costs to hardware costs.


Good point.  High prices will drive competition crazy and we can expect miners to do whatever needed to make more money.
Post
Topic
Board Development & Technical Discussion
Re: A Two-Round Proof of Work instead of PoW
by
Epictetus
on 18/11/2021, 04:19:49 UTC


I don't think TRPoW is a recipe for disaster. Far from it. Keep in mind that Bitcoin worked with small group of miners for many years.


that was before bitcoin exploded onto the world scene. the whole world depends on it now and i dont know if there's any justification for trying to reduce energy consumption. for example, do you think bitcoin miners are just going to let their hardware sit idle for 8 minutes? or however long the 2nd round lasts? they'll divert their hashing power to something else for that amount of time and then bring it back when the next round 1 starts. so all you're really accomplishing is weakening your own network by letting go of some of its hashing power which will get used somewhere else. it's not a net gain for the environment. it's neutral.

the hardware is there. it's going to be running and hashing something. you might as well take advantage of it fully, which is what bitcoin currently does. thats how i see it anyway. Grin we don't care about cardona or ethereum here. so we dont want bitcoin hardware being diverted to strengthen those networks.

Hi Harry,

I do see your point very well.
But I think the question is a bit more philosophical: Just because we have a machine does this means that we need to use it at all cost and all the time?
We don't use our Laptop / Car all the time just because we bought them. We only use them when we need them.
Although the mining hardware is there, we still need Electricity to make it work. So the question now what is the tradeoff between electricity consumption and the hardware usage over a long run ?
It is known that the intensive usage of a hardware make it wear quickly.
So We can see TRPoW as way of reducing usage of mining machines which will make them last longer.

What do you thing?         
Post
Topic
Board Development & Technical Discussion
Re: A Two-Round Proof of Work instead of PoW
by
Epictetus
on 17/11/2021, 07:08:38 UTC
Quote
I don't think TRPoW is a recipe for disaster.
Then go for it, release just another altcoin and see how it will turn out. You can release some kind of test network first, just to check if your theory works in practice.

Totally agreed with you. I think the idea needs to be tested. At least for the sake of the experiment. 

Quote
You can also see Bitcoin with PoW as Bitcoin with TRPoW where N2 = N1.
You can make it backward-compatible, just by producing first-phase blocks as today and adding some rules to enforce second-phase for these blocks. The simplest way to do that could be using difficulty to decide, how long the second nonce should be. Then you have previous block hash with some zeros, you can place your second-phase nonce there, then taking a single 80-byte block header is enough.

For example:
Code:
FirstRoundHeader {
  version=01000000
  previousBlockHash=6fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000
  merkleRoot=982051fd1e4ba744bbbe680e1fee14677ba1a3c3540bf7b1cdb606e857233e0e
  time=61bc6649
  difficulty=ffff001d
  nonce=01e36299
}

SecondRoundHeader {
  version=01000000
  previousBlockPartialHash=6fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000
  secondNonce=000000
  merkleRoot=982051fd1e4ba744bbbe680e1fee14677ba1a3c3540bf7b1cdb606e857233e0e
  time=61bc6649
  difficulty=ffff001d
  nonce=01e36299
}
Because you can see 0x1d value in the difficulty, you know that you can take three bytes from the previous block hash and there must be zeroes to be valid. Also, there is no need for adding any public key to the block header, because it is already calculated in the merkle root. Also, you can add more fields to each header in the coinbase transaction if you really need them, there is no need to add them directly to your headers.

Thank you Garlonicon for these great and precious ideas/suggestions. Much appreciated. Let's me think of it. I will update you here in all cases.
Post
Topic
Board Development & Technical Discussion
Re: A Two-Round Proof of Work instead of PoW
by
Epictetus
on 17/11/2021, 04:30:07 UTC

It's not even necessarily economical. People will just ramp up their hashing power for round 1 to try and get into round 2 so the energy expenditure over those 2 minutes would rise way above normal.

And then for the other 8 minutes, they got the bitcoin network by the balls so to speak. Relying on a small subset of miner hashing power. Sounds like a recipe for disaster. But I do admire the OP for defending his proposal and taking the time and effort to discuss it here.


I don't think TRPoW is a recipe for disaster. Far from it. Keep in mind that Bitcoin worked with small group of miners for many years.

As I wrote to you previously. We can find an optimal value of N2 that does not undermine the security of Bitcoin with TRPoW. Intuitively an upper bound of such value is O(SquareRoot N1). Assuming that the winner of Second Round is among N2 List of N2 miners instead of only N2 first miners. I think an optimal value of N2 could be in O(Log(N1)) based on a similar calculation done by EPFL Distributed Algo team: https://arxiv.org/abs/1908.01738

You can also see Bitcoin with PoW as Bitcoin with TRPoW where N2 = N1.

If we assume for the sake of argument that N1 = 1000000 and N2 = Square Root of N1 = 1000.
The reduction of energy can go drastically because we will have 1000 000  - 1000 = 999 000 miners (99.9% of the network) not doing the Second Round. We will save huge amount of electricity without undermining the security of the blockchain.
Post
Topic
Board Development & Technical Discussion
Re: A Two-Round Proof of Work instead of PoW
by
Epictetus
on 17/11/2021, 04:14:45 UTC
I don't think TRPoW is a recipe for disaster. Far from it. Keep in mind that Bitcoin worked with small group of miners for many years.

As I wrote to you previously. We can find an optimal value of N2 that does not undermine the security of Bitcoin with TRPoW. Intuitively an upper bound of such value is O(SquareRoot N1). Assuming that the winner of Second Round is among N2 List of N2 miners instead of only N2 first miners. I think an optimal value of N2 could be in O(Log(N1)) based on a similar calculation done by EPFL Distributed Algo team: https://arxiv.org/abs/1908.01738

You can also see Bitcoin with PoW as Bitcoin with TRPoW where N2 = N1.

If we assume for the sake of argument that N1 = 1000000 and N2 = Square Root of N1 = 1000.
The reduction of energy can go drastically because we will have 1000 000  - 1000 = 999 000 miners (99.9% of the network) not doing the Second Round. We will save huge amount of electricity without undermining the security of the blockchain.

Post
Topic
Board Development & Technical Discussion
Re: A Two-Round Proof of Work instead of PoW
by
Epictetus
on 16/11/2021, 15:22:36 UTC
Quote
You would need a way to prevent the knowledge of the winner for 8 minutes so that nobody can start on the next block before the 10 minutes have past.
Even if you can successfully prevent that knowledge for 8 minutes, someone can still start working on some randomly chosen block and have hope it will give some boost on average, where other miners will be idle. Also, you need at least two candidates, in other case any obfuscation of the winner is pointless. Does it mean that nobody can start the chain alone by using the official miner?

Another thing is getting the right to mine: one miner can pretend to be N miners or can just own many mining machines and assign different keys to each of them. Then, if the list of participants is known, any miner can try to extend any block, just by checking each of them sequentially, or even assigning different threads to different blocks. Extending one of N blocks has the same probability as extending some chosen block. Because having a chance to mine the right block is better than having no chances by being idle, people will run their machines all the time.

Great point indeed.