-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CHIP suggestion #61
Comments
Thanks for the suggestion. To clarify, the reference wallet that most people use for farming is only one of the possible wallets that could be created. When a wallet reads in plots, this is not done as part of the blockchain's consensus. If we were to change the rules at the reference wallet level (and not at the consensus level), there would be nothing stopping a new wallet from being developed with a different set of rules, while continuing to follow the blockchain's consensus. As for the suggestion of requiring plots to be at least a certain age, what is stopping a computer from generating a plot that appears to be older than it actually is? For example, a plot could include a timestamp from 30 minutes ago. Also, from your suggestion |
Just stop trying to prevent this. You're not going to prevent this. |
@danieljperry
You didn't read my suggestion. BUT: As I wrote CHIA has to monitor the plots for changes in phase 2. THAT is the pivot point. There are various system tools that already provide that. And they come from the system kernel. One would have to examine however, in how far one can manipulate that. Otherwise CHIA itself must write a test routine which ensures that. The CHIA farmer can then certainly shift the timestamp of the plot backwards when generating. But step 2 should then prevent that this plot cannot participate in the current challenge (64-index). Conclusion: If this can be implemented in this way, then "compressed plots" can never be used in the simplest way. They would simply not participate in any challenge. @maxjay Übersetzt mit www.DeepL.com/Translator |
If you write a CHIP with the technical details of your suggestion, we will take a look at it. However, do keep in mind that use of the reference plotters (such as Bladebit) is not required. Other people can write, and have written, their own plotters. If we do accept a CHIP that prevents GPU farming by changing the plot format, you will have to ensure that other people cannot get around this new format by using their own plotter. |
@danieljperry
Already had. Sometimes 2 times. More technical details I can not submit as an end user. Although I am a programmer... But nothing what cryptography is concerned.
With this you can test how CHIA reacts to compressed plots. With it I could write then the extension with "was the Plots changed"-function and test it then whether this all grips. BUT: Even if I am quite capable as a programmer, I see the "responsibility" here rather with the CHIA team.
And again. The proposal is 0% based on plotting. 100%on farming/harvester.
Well... you didn't have to write that note if you had read my CHIP suggestion. Because that is not possible by GPU plotting. |
Follow your own logic. If chia doesn't do compressed plots, then there are people with an inherit advantage over other people, making it an unfair game. At least if everybody gets compressed plots, then nobody actually has compressed plots and its a zero sum game, if only a select few have the (NOSSD, MadMax GigaHorse), then they reap the benefits at the expense of everybody else. The fundamental issue with this is that you can't verify that these plots have not been compressed because the consesus doesn't care. You're asking for a fundamental change to the underlying Proof of Space to make it care, but even then, how do you verify something is "compressed". We've already seen people create their own formats of chia plot files that aren't identical to chia's format but are accepted (MadMax's plots are slightly different than chia's even with the same seed/key/thing). This isn't something you can do. Using your own "method", there is nothing stopping me from adding these fake timestamps after the fact. |
I'm going to address this particular point because I think this is OPs primary motivation:
Chia doesn't "violate" it owns guidelines to be "green" even with GPU farming.
You can't force people to make green choices. You can only educate them. GPU farming may increase electricity costs, this may not be suitable for everybody. Most likely, only those with massive farms are likely to be GPU farming anyways, they have a real cost-benefit to them. At that scale, they'd probably be using renewable energy anyways (like massive bitcoin miners) because their own electricity would be cheaper. I run my farm off a raspberry pi. I'm not going to be GPU farming any time soon because there's no point for me, the added benefit to the cost is marginal if not negative. You can't prevent people from GPU farming if they would see a real benefit. But thankfully, its a choice at the end of the day. We should encourage innovation within this space, not stifle it. Being open source, we should encourage people to find better solutions together, not out right banning choices that people can make. |
I think I'm talking to a tree or a refrigerator. Would someone have the goodness to READ my proposal? Can not be so difficult. I write it already in your language (I speak German). And now a 3rd time. |
The client software could try to enforce unenforceable rules - sure. But the real issue is that the criteria to rule out a plot must be verifiable on computers that have absolutely no view of what happened on the block proposer's machine. 119,999 farmers can calculate whether the plot that a farmer is proposing to complete a block with correctly passed the filter. 0 farmers other than the farmer who made the block know anything about what happened on that farmers computer. You are advocating for a security rule that can not be enforced by others. Those are the only security rules that matter. |
na: Hallelujah. Ok. It is only a suggestion. This will be "checked" in advance and if feasible further discussed as a CHIP proposal. BUT: I still see my proposal as quite feasible.
CHIA already has such checks/exclusions. Wrong key. Wrong plot. Duplicate plots etc. I already mentioned ready tools which work on kernel basis. A write access to a plot can be determined thus with board means. The further handling with it would have to determine then the CHIA makers. |
All every other node can validate is the proof of space and transactions that a farmer sends to the network. Nothing stops a farmer from modifying their own software to not do all of these client software only checks and then get an unfair advantage by sending out proofs that don't meet the local software's rules and will win because everyone else couldn't tell they are cheating. |
Your proposal was read, just the changes that need to be done to even consider achieving what you want are in a much deeper level than you think. I perfectly understood what you want, I'm saying the network currently can't see the difference (nor care) between compressed plots or uncompressed plots, and to change that would need changing at the consensus level (if such a change can even exist). Christ its the exact same discussion around GPU Plotting and banning that, people always thinking "nobody is reading" their argument, when they just don't fully understand the scope of the change they're asking for.
Also, I'm pretty sure not how compressed plots work. They're not expanded on challenges lol (how would that even make them compressed? how would you fill a disk with potentially expanding plots?). Compressed plots just don't complete all the steps, so you do the final step on the fly with a GPU, you're not 'finishing the plot', you're just getting the final answer and submitting that to the network, you're not modifying the plot file. |
This an exclusion for possible answers that obviously won't win. If somebody asks you "Whats 2+2=?", you're not going to reply with "orange" are you, but if you have like a math equation that could potentially equal "4", then that's something to be tried and tested. These exclusions are happening client side only, the network can't see these exclusions, it just cares if an answer provided is right or wrong. Literally nothing stopping people creating their own clients to do something that is """banned""" on the official client. Then we have a problem of unfairness. (Which was my initial reply to your proposal which I supposedly "didn't read"). |
@hoffmang9
@maxjay Under the point of view then my suggestion would be of course invalid {cry}. |
A farmer can only make a plot appear to themselves to pass the plot filter. The entire point of the plot filter is that every other farmer who is running unmodified code will check that the supposedly winning plot does actually pass the plot filter and all of them will reject a plot that a rogue farmer tried to claim passes the filter but does not. As a farmer you want to follow consensus rules - not because you can cheat but because everyone else will reject your attempts to cheat. |
@ hoffmang9
I don't believe that. (but I don't know any better myself). If your (theory) is right, 21.084 farmers should check the submitted plots/parcels of a farmer. Or in other words: my CHIA client should check the plots of 21.084 farmers currently? I hardly believe that this takes place WHAT I could imagine but still: |
Your Chia farmer doesn't need to check all of the plots from all of the other farmers. It only needs to check one plot from one farmer -- the one that created the block. And it doesn't need to check the entire plot, just the winning proof goes with the new block. If a cheater declares a plot as valid when it is not, then the network will reject any blocks that submit an invalid proof from the invalid plot. If what you imagine to be true were actually true, the network would be inundated with invalid blocks. But manipulating the blockchain is not that easy. And for the record, there are currently around 117,000 active Chia farmers. The number you cited is just from Space Pool. |
I have a CHIP suggestion.
If I have understood the procedure correctly, this must first be discussed in advance.
Preventing GPU plotting (compressed plots)
Preface: Since I lack the knowledge how the header+footer of a plot file looks like I can only make assumptions here.
The structure of Chia would have to be rebuilt.
Background:
The GPU farmer would have to finalize all his plots once when starting CHIA.
This alone should discourage the use of compressed plots.
Monitoring of the plots:
By Linux: inotity-ttols or iWatch.
Windows: watchexec/watchman/Fileinfo/glob/
If a file change is detected, this plot must be subject to a lock. Say: Does not participate in the current challenge.
The lock also affects the start. If the plot has been completed "on the fly" it has a challenge lock per se.
Alternative idea:
The size adjustment. If CHIA starts then (I think) all plots are read in anyway. There should certainly be a suitable MB size available.
Compressed plots are not finalized until the challenge query.
Thus, the mere query whether plots are available should not generate a final completion. BUT: I have not yet dealt with GPU plotting. So a little bit of half-knowledge is included.
I find this idea (if you can be implemented so) also very useful for the future.
CHIA does not "violate" its own guidelines to be "green".
GPU plotting (complete plotting) should become official at some point.
The text was updated successfully, but these errors were encountered: