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

WTF just happened?? CAT1 to CAT2 “upgrade”

Posted on July 27, 2022July 27, 2022 by Chris Dupres

Jesus Christ, Chia Network. Jesus Christ. This is a bad one. Chia Network has, in a very rapid turn of events, eliminated an entire asset class from their blockchain (CAT1) and replaced it an entirely new asset class (CAT2), removed the original from the client and caused a ton of chaos with a short notice change to their Chia Asset Token standard. All from an extremely centralized position. Projects had about 24 hours on a Monday morning to reissue all their tokens or they would be useless.

But if that’s all it was, then cool. But the real problem here is a development attitude that prioritizes cool features and rapid deployment over actually testing to make sure stuff works properly. The issue at play here is that offer files between a CAT1 token and XCH were exploitable. And have been the whole time. Chia Network even decided to use this exploit in order to close offers and return transactions to people causing everyone with an open offer a tax nightmare. As well, because they didn’t do so instantly but set a “final block” for everyone, some offers were just plain accepted for ridiculous prices to get XCH out of people not paying attention, knowing that overspending the USDS after the cutoff block would be inconsequential.

reddit user loses 2xch for worthless usds because of CAT1 bug
reddit user claims loss of 2xch for worthless usds because of CAT1 bug

Because of the way they did this, they guaranteed that people could be robbed because of it. Guaranteed it. They also guaranteed that any projects using CAT1s would be scrambling to change over their infrastructure and update code and that projects like Space Marmots in the process of using offer files to accept SM1 tokens now have to do a complete audit and will likely face user complaints about missing tokens. There is no possible way this is acceptable under Stably’s terms of service, and I don’t see how they aren’t going to suffer either a loss of confidence here or an actual loss of funds. If I have USDS in CAT1 form that i got after the cutoff block what legal recourse does Stably have to refuse me my return? I think the user above should take his 100 USDS in CAT1 and make Stably exchange it, then let them sue Chia Network for the difference. Regardless if his claims are true or not.

I don’t know what clogged brain came up with the idea of giving people 24 hours notice on this, just enough time to for malicious actors to create a plan of action but not enough time for anybody else to come up with a way to handle this exchange properly. There are, of course, idiots online who are defending Chia Network and this clusterfuck of a decision saying that “wow doing all this in 24 hours is amazing, what an amazing company”. No. Stop. This was a stupid decision made to fix a stupid mistake caused by stupidly not going through the rigorous testing process that financial exchange protocols should go through. Over and over and over again I have railed at this company for not following financial industry best practices when developing and releasing software. Did they get an audit? Yeah. After they had rolled the software into production and real businesses were using it for real work.

And to use the exploit they discovered against their own users? Wow. I understand the technical reasoning behind it, closing out open offers before they can be used against people in the way described above. But its a bad look. And they didn’t do that!!! They started after the cutoff block passed and took their sweet time on it. There was a window of opportunity there that malicious actors could exploit open offers of XCH for CATs. Unless there were only a few open offers total and they could do them all in one block then there was no possibility of doing it all with no exploitable window. The right way to do this, if you were going to force it down on everyone, would be to do it all as a “surprise, motherfuckers!” moment and cut off offers, freeze the chain and use the exploit to close every open offer in the system all at once. And announce it at the same time. The way they “planned” this the exploit didn’t even need to leak for people to use the chaos in order to steal from others.

Furthermore, they also lifted the thin veil of decentralization away from their company and network. This may be the most long term harmful result of this decision. First the decision to release a brand new financial exchange protocol into production pre-audit was made top down from Chia Network. (Edit: it was audited, just not enough apparently) Then the decision to just flip the table and break everything was also made top down by Chia Network. Nobody has a choice, there is no option. There is only “do what we say because we said it” both times. Nobody but Chia Network has any visibility or insight into the blockchain. Despite being open source and freely licensed it might as well be a Microsoft project for all the say the community has in the direction of the project. They parcel out some crumbs here or there, but at the end of the day Chia Network Inc is a private company and chia-blockchain is a software package designed explicitly to meet the goals and needs of that private company, and nobody else. This must change.

My instinct on how to start fixing that is that the Chia Blockchain needs a CAB (Change Advisory Board) to review all major updates to the chain absent the business needs of Chia Network. It is obvious in hindsight that the decision to launch offer files and CATs was made too soon in order to hit release windows rather than properly based on best practice Release Management for such critical software. A CAB filled up with people both internal to Chia Network and external would have a more diverse set of incentives and would not be so quick to approve changes without proper audits complete. Chia Network would be required to defend their procedures and those defenses would be recorded for post-mortem review. In theory there would be someone like me on that board whose first instinct for every release is “No. Why do you think this is a good idea, and do you think you have done your due diligence on it yet?”. That would definitely slow down development but at this point its clear that would be beneficial to everyone, including Chia Network.

If Chia Network really does want to set itself apart from Ethereum as a decentralized smart platform, they need to start soon. We have an XCH Foundation (although completely dissimilar to the Ethereum Foundation) and I think it is perfectly reasonable to ask that Chia Network strongly consider bringing in them or an outside board of stakeholders to tell them “No” when they need to be told no without a paycheck hanging over their heads. Its hard to tell your boss he’s making a mistake, even after the fact during a review. I strongly recommend that Chia Network approach the people at XCH Foundation, or someone else who isn’t directly associated with Chia Network, to assist with making these decisions. Or create an adversarial change management system internal to the company like other enterprises servicing the financial services sector do it, but that option is much more expensive.

Now, I don’t know what kind of liability Chia Network has created for themselves by bragging about how secure offer files are and how secure Chialisp is and advertising themselves on that fact. But the next time they market something as “secure” they should make goddamn sure it is first.

Oh yeah, go download Chia Blockchain 1.5.0 I guess.

Related

16 thoughts on “WTF just happened?? CAT1 to CAT2 “upgrade””

  1. Riyad Kalla says:
    July 27, 2022 at 8:38 am

    Harsh, fair. Thanks for covering this in more detail.

    Reply
  2. willphule 🌱🌱🌱 (@willphule) says:
    July 27, 2022 at 9:43 am

    What the reddit OP states in their thread makes no sense. You can’t have a debit for an offer, then two days later receive the credit side.

    Reply
    1. Chris Dupres says:
      July 27, 2022 at 9:44 am

      Just because that person is lying, it’s still a viable problem.

      Reply
      1. Anonymous says:
        July 27, 2022 at 9:48 am

        Sure, but using them as an example to illustrate seems like an odd choice.

        Reply
        1. Chris Dupres says:
          July 27, 2022 at 9:49 am

          They outlined the exact issue very well.

          Reply
          1. DJHorse says:
            July 30, 2022 at 12:57 pm

            That user doesn’t even exist on Reddit…

  3. wolfgt says:
    July 27, 2022 at 9:50 am

    Space Marmots = “real businesses were using it for real work.” ….. give me a break.

    Reply
  4. wolfgt says:
    July 27, 2022 at 10:00 am

    If there was a CAB in place the same exact thing would have played out. You said yourself an audit was done. Yeh, at this point it is easy to see the audit missed something. But at the time the due diligence was done and the update would have been approved (CAB or not). As with all of your articles for quite a while now, this one is totally biased and obviously shaded by the work you need to do to fix your system after their sudden change.

    I used to enjoy your views on the Chia ecosystem but ever since you started work on the Marmot crap this blog has been very limited on scope and very biased. I hope you see this soon. It’s getting old.

    Reply
    1. DJHorse says:
      July 30, 2022 at 1:01 pm

      Agreed, my visits to this site are much less frequent now and when I do visit, I’m usually disappointed (i.e. this article). It’s a shame, when this site first started it was a great resource for the Chia community.

      Reply
  5. Ealrann says:
    July 27, 2022 at 10:35 am

    That’s it, I stop reading your blog.
    It was good last year, but now there are too many wrong information.
    1. The cat issuers didn’t have 24 hours to migrate from Monday morning as you say, they had to reissue the coins after the 1.5.0 release (tuesday), whenever they can. No 24h hurry or whatever
    2. This issue wasn’t due to a lack of testing, seriously. This is a security issue, that even the first audit didn’t manage to find. All the chia code is covered by auto tests now…
    3. Chia made one of the best crisis management I saw for a long time. It’s a big crisis, as it happen in every projects. They handled it as good as it’s possible, providing update/scripts/documentation/video and the cat1 website to make this transition as smooth as it’s humanly possible. Maybe you’d have preferred a Solana solution : we stop the blockchain few hours/days?

    When I see the horrible technical solution of the Space Marmots, I understand were all your indulgence went…

    Reply
    1. Anonymous says:
      July 27, 2022 at 12:27 pm

      erbarr from keybase here. Yup agree, I smell the salt: https://twitter.com/hoffmang/status/1550893928718557185

      Reply
  6. humanburritoperson says:
    July 27, 2022 at 10:45 am

    The security audits sound (rightfully) ongoing, bugs exist in software and have for all time. It’s not fair to hold that against them as something that should have been “perfected” beforehand. It sounds like Chia team’s fast action here was just to ensure that they got rid of the exploit before it was exploited. Like you said, there is a lot of money on the line, and their actions could have been performed by someone malicious instead of themselves, and we’d be having an entirely different conversation.

    Also Chia’s blockchain IS open source, it’s not the community’s problem that we need to wait for them to explain to us what the fix or exploit is. If we as a community were “smarter” (or there were even more money on the line) there’d be another conversation happening here. Maybe you could argue in this context, Chia team did not need to act as fast as they did. However, as an employee at a third party auditing firm, information about the exploit has a monetary value attached to it, and is really a ticking time bomb no matter how you look at it.

    Reply
  7. Anonymous says:
    July 27, 2022 at 11:33 pm

    The lesser of the two evils

    Reply
  8. Nemo says:
    July 28, 2022 at 3:47 am

    Your article is too emotional. We aren’t getting things up to speed if we keep on throwing mud at each other. Yes you can disagree that’s your right but don’t see what we prove with slinging mud to the XCH team.

    Reply
  9. Anonymous says:
    July 28, 2022 at 4:08 am

    what an absolute piece of garbage blog, but this is what to expect come from you, with your “write blog without the proper research, then backpedal later when you are wrong” style

    Reply
  10. Anonymous says:
    July 28, 2022 at 5:37 pm

    We were told that chialisp would prevent this kind of shit.
    Fucking cunts

    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