Menu
The Chia Plot
  • Blog
  • How-To
  • About
  • Contact
  • Security
  • Discord
The Chia Plot
Hackerman

Chia Network’s response to Chia pool exploit is disappointing, to say the least

Posted on August 8, 2021August 8, 2021 by Chris Dupres

So its been a day of talk about pool exploits for the Chia team, and I have to say their official stance has been disappointing at the very least, and possibly risky to their business at the worst case. The issue at hand is a Chia pool exploit that MaxioPool found in the farmer_api.py code that allows a malicious farmer to refuse to form blocks on behalf of their pool, thus reducing pool rewards for everyone, while continuing to submit partials and receive payouts.

First off, I have not seen evidence that this exploit has been used in the wild. MaxioPool thinks they were attacked, and they might have been – I have no reason to think they are lying. But I have not seen any evidence myself. That being said, I have seen working exploit code and its basically been confirmed by Chia Network as something they have known about for awhile and called a “dead weight” attack. However I cannot find any evidence that they disclosed this possible attack publicly prior to MaxioPool finding it. There is nothing in the Chia Blockchain Greenpaper about it either.

Secondly, I do not think this puts the on-chain pooling protocol at risk. It puts some small pools at risk from malicious actors but as pool size grows the impacts of something like this would shrink. The payment model also matters, as PPLNS pools, that pay out every block win based on your share portion, would be harder to notice something like this than a PPS model where every share gets paid regardless of block wins. In fact, it might make PPS non-viable in Chia because the cost of launching a Lazy Farmer attack is so low. It also is not a risk to individual farmers except for the possibility of slightly lower payouts. I think that’s the perspective

So why is their response disappointing? First, they dismissed this as me blowing it out of proportion because of an axe to grind. That is both untrue, and irrelevant. The only portion of my report they even challenged was the description of the issue as an exploit – which it is, unless this behaviour is intended. Then they dismissed MaxioPool and anyone today who expressed concern over this, and they put out this statement basically saying that it was the pool operators problem to solve.

I just want to sort of share our official position on this, aside from the advice and guidance a few folks like Gene have shared above in efforts to help, so the pool operator community knows where we officially stand on this topic.

Our system is designed a specific way with certain decisions made, and while a pool operator can choose to use it in ways it was not intended for their benefit (like, say FPPS), then they need to own that choice and protect themselves accordingly. (Though we will, and have, help you find those solutions if you want advice.)

Early in pool protocol design, the “dead weight” risk was openly discussed, and we understood this to be a potential risk. Unfortunately we had to make a hard choice between either giving Pools centralized control, or giving Farmers the benefit of the doubt and giving them full decentralization. Ultimately we decided to stick with our vision of true decentralization, and included 0.25 XCH + fees reward to farmers as a counter to this potential attack. In the end of the day, this was a hard decision to make, as every blockchain protocol needs to make a fundamental decision on these kinds of hard choice. Our hope was that most pools wouldn’t be inherently susceptible to this, and ones who were (like for example a FPPS pool), would be able to put the time and resources into developing their own additional controls as part of the their pooling.

We understand and empathize with Maxiopool’s frustration, but this is not a Chia bug or exploit. It is a fundamental piece of the blockchain code working as designed, after a deliberate series of choices were made, in a decision to help ensure full decentralization. Thus, we recommend no pool operator provide PPS payout, unless they are also willing to take on this risk or add monitoring and controls around it of their own design.

Look, saying an problem is core to the design and your users have to just live with it or work against it very bad business. It is very possible that at the end of the day it will always be a risk that a malicious farmer lies to the pool because of the “farmer signs blocks” design. However, they could own the issue a little and make the attack a little more difficult to pull off. I mean, its like a couple of keystrokes to comment out a function, without a single check anywhere else to make sure the client is behaving properly. You can’t say that the whole problem is the people running your code when your code does literally nothing to prevent this issue. Doesn’t even try.

Also, for such an open, decentralized system there are sure a lot of things you have to do exactly Chia’s way or you will have problems. Don’t do this, don’t say that, don’t run your pool this way, etc. I’ve been involved in open source for many, many years and this is not the way. I hope it never will be.

Good software developers don’t just handwave away issues, they don’t point the finger at everyone else for issues, and they don’t refuse to fix issues with their code. They take ownership of the issues, even if they aren’t easily solvable. That was not done here, and that’s why I’m disappointed. Come on guys, refusing to even call this an exploit is childish and silly.

Related

1 thought on “Chia Network’s response to Chia pool exploit is disappointing, to say the least”

  1. morph says:
    August 8, 2021 at 6:01 pm

    You are telling people that designed a client that does not have even a bit of protection against a third party that they are bad developers. The Chia Client still does not even have a password protection against local access. MadMax made a plotter that is alot better than the vanilla one. Everyone can read the mnemonic keys if he googles the commands for a second. My guess is that Chia still and will never give the slightest F about farmers/pool operators. Their plan is do go IPO and make money with shares and other investments. Maybe with software arround the blockchain. They dont care that Chia is worth 1 Cent or 50000$ because they will never touch the prefarm. Maybe just as a plan Z.What they want is a working blockchain and Chialisp to work out. Bram told all of us that he does not care about small farmers.

    Reply

Leave a Reply Cancel reply

Advertisement

Recent Posts

  • Crypto is burning down – Chia seems fine
  • Chia CAT upgrade fiasco part 2 – Was I wrong?
  • WTF just happened?? CAT1 to CAT2 “upgrade”
  • The era of the Chia NFT is upon us
  • Chia Blockchain 1.4.0 released – NFTs and DIDs oh my
  • Discussion
  • Facts About Farmers
  • How-To
  • Information
  • News
  • pools
  • Security
  • Trademark
  • Trading
  • Uncategorized

Dark Mode Switch

©2021 The Chia Plot - Donate XCH / MRMT / SBX @ xch1p4440d6zwu9ryta2vx073lq2ge3s29d37kskz6t34jp085e8srjqnk0gcr
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent.
Cookie SettingsAccept All
Manage consent

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
CookieDurationDescription
cookielawinfo-checkbox-advertisement1 yearThe cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Advertisement".
cookielawinfo-checkbox-analytics11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional11 monthsThe cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
JSESSIONIDsessionUsed by sites written in JSP. General purpose platform session cookies that are used to maintain users' state across page requests.
viewed_cookie_policy11 monthsThe cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
CookieDurationDescription
na_id1 year 1 monthThis cookie is set by Addthis.com to enable sharing of links on social media platforms like Facebook and Twitter
na_rn1 monthThis cookie is used to recognize the visitor upon re-entry. This cookie allows to collect information on user behaviour and allows sharing function provided by Addthis.com
na_sc_e1 monthThis cookie is used to recognize the visitor upon re-entry. This cookie allows to collect information on user behaviour and allows sharing function provided by Addthis.com
na_sr1 monthThis cookie is set by Addthis.com. This cookie is used for sharing of links on social media platforms.
na_srp1 minuteThis cookie is used to recognize the visitor upon re-entry. This cookie allows to collect information on user behaviour and allows sharing function provided by Addthis.com
na_tc1 year 1 monthThis cookie is set by the provider Addthis. This cookie is used for social media sharing tracking service.
ouid1 year 1 monthThe cookie is set by Addthis which enables the content of the website to be shared across different networking and social sharing websites.
Performance
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
CookieDurationDescription
d3 monthsThis cookie tracks anonymous information on how visitors use the website.
Analytics
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
CookieDurationDescription
__gads1 year 24 daysThis cookie is set by Google and stored under the name dounleclick.com. This cookie is used to track how many times users see a particular advert which helps in measuring the success of the campaign and calculate the revenue generated by the campaign. These cookies can only be read from the domain that it is set on so it will not track any data while browsing through another sites.
_ga2 yearsThis cookie is installed by Google Analytics. The cookie is used to calculate visitor, session, campaign data and keep track of site usage for the site's analytics report. The cookies store information anonymously and assign a randomly generated number to identify unique visitors.
_gat_gtag_UA_199099757_11 minuteThis cookie is set by Google and is used to distinguish users.
_gid1 dayThis cookie is installed by Google Analytics. The cookie is used to store information of how visitors use a website and helps in creating an analytics report of how the website is doing. The data collected including the number visitors, the source where they have come from, and the pages visted in an anonymous form.
CONSENT16 years 4 months 5 daysThese cookies are set via embedded youtube-videos. They register anonymous statistical data on for example how many times the video is displayed and what settings are used for playback.No sensitive data is collected unless you log in to your google account, in that case your choices are linked with your account, for example if you click “like” on a video.
Advertisement
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
CookieDurationDescription
advanced_ads_browser_width1 monthThis cookie is set by Advanced ads plugin.This cookie is used to measure and store the user browser width for adverts.
anj3 monthsNo description available.
CMID1 yearThe cookie is set by CasaleMedia. The cookie is used to collect information about the usage behavior for targeted advertising.
CMPRO3 monthsThis cookie is set by Casalemedia and is used for targeted advertisement purposes.
CMPS3 monthsThis cookie is set by Casalemedia and is used for targeted advertisement purposes.
CMRUM31 yearThis cookie is set by Casalemedia and is used for targeted advertisement purposes.
CMST1 dayThe cookie is set by CasaleMedia. The cookie is used to collect information about the usage behavior for targeted advertising.
DSID1 hourThis cookie is setup by doubleclick.net. This cookie is used by Google to make advertising more engaging to users and are stored under doubleclick.net. It contains an encrypted unique ID.
i1 yearThe purpose of the cookie is not known yet.
IDE1 year 24 daysUsed by Google DoubleClick and stores information about how the user uses the website and any other advertisement before visiting the website. This is used to present users with ads that are relevant to them according to the user profile.
KADUSERCOOKIE3 monthsThe cookie is set by pubmatic.com for identifying the visitors' website or device from which they visit PubMatic's partners' website.
KTPCACOOKIE1 dayThis cookie is set by pubmatic.com for the purpose of checking if third-party cookies are enabled on the user's website.
mc1 year 1 monthThis cookie is associated with Quantserve to track anonymously how a user interact with the website.
test_cookie15 minutesThis cookie is set by doubleclick.net. The purpose of the cookie is to determine if the user's browser supports cookies.
uid1 year 1 monthThis cookie is used to measure the number and behavior of the visitors to the website anonymously. The data includes the number of visits, average duration of the visit on the website, pages visited, etc. for the purpose of better understanding user preferences for targeted advertisments.
uuid3 monthsTo optimize ad relevance by collecting visitor data from multiple websites such as what pages have been loaded.
uuid23 monthsThis cookies is set by AppNexus. The cookies stores information that helps in distinguishing between devices and browsers. This information us used to select advertisements served by the platform and assess the performance of the advertisement and attribute payment for those advertisements.
VISITOR_INFO1_LIVE5 months 27 daysThis cookie is set by Youtube. Used to track the information of the embedded YouTube videos on a website.
YSCsessionThis cookies is set by Youtube and is used to track the views of embedded videos.
yt-remote-connected-devicesneverThese cookies are set via embedded youtube-videos.
yt-remote-device-idneverThese cookies are set via embedded youtube-videos.
Others
Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.
CookieDurationDescription
__gpi1 year 24 daysNo description
adImpCountpastNo description
C3UID5 yearsNo description available.
C3UID-9245 yearsNo description
fc5 months 27 daysNo description available.
pfpastNo description
pxs5 months 27 daysNo description available.
SAVE & ACCEPT
Powered by CookieYes Logo