ZCoin/Firo Typographical Error: Difference between revisions
(Created page with "{{Imported Case Study|source=https://www.quadrigainitiative.com/casestudy/zcoinfirotypographicalerror.php}} thumb|ZCoin/FiroThe initial version of ZCoin contained a bug which allowed for the minting of additional coins over time. This was exploited by an attacker, who was smart enough to mint coins very slowly over time, allowing him to convert them into bitcoin using another exchange. No funds were lost, however the value of ZCoin was reduced due to...") |
(COMPLETE 30 Minutes. Information in about section spread to other sections. All sources updated to have good titles and dates of access. Started expanding the timeline with information about events related to the exploit.) |
||
| (2 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
{{ | {{Case Study Under Construction}}{{Unattributed Sources}} | ||
[[File:Zcoin.jpg|thumb|ZCoin/Firo]]The initial version of ZCoin contained a bug which allowed for the minting of additional coins over time. This was exploited by an attacker, who was smart enough to mint coins very slowly over time, allowing him to convert them into bitcoin using another exchange. No funds were lost, however the value of ZCoin was reduced due to the increase in supply. | [[File:Zcoin.jpg|thumb|ZCoin/Firo Logo/Graphic]]The initial version of ZCoin contained a bug which allowed for the minting of additional coins over time. This was exploited by an attacker, who was smart enough to mint coins very slowly over time, allowing him to convert them into bitcoin using another exchange. No funds were lost, however the value of ZCoin was reduced due to the increase in supply. | ||
This is a global/international case not involving a specific country. | This is a global/international case not involving a specific country.<ref name="techstartups-4235" /><ref name="coinchoose-4236" /><ref name="research-4237" /><ref name="businessinsider-4238" /><ref name="ibtimes-4239" /><ref name="zcoinarchive-4240" /><ref name="securityweek-4241" /><ref name="ycombinator-4242" /><ref name="wikipedia-4243" /> | ||
== About ZCoin/Firo == | == About ZCoin/Firo == | ||
| Line 16: | Line 16: | ||
"Zcoin (XZC), worth approximately $2 per unit, is an implementation of the Zerocoin protocol, which aims to provide fully anonymous currency transactions. Zerocoin has also been used to create a new protocol called Zerocash and the ZCash digital currency." | "Zcoin (XZC), worth approximately $2 per unit, is an implementation of the Zerocoin protocol, which aims to provide fully anonymous currency transactions. Zerocoin has also been used to create a new protocol called Zerocash and the ZCash digital currency." | ||
"Yesterday, our team found a bug in our implementation of Zerocoin. A typographical error on a single additional character in code allowed an attacker to create Zerocoin spend transactions without a corresponding mint. We have identified the error and are pushing the fix urgently within the next 24 hours. We urge all pools and exchanges to update once the release is out." | "Yesterday, our team found a bug in our implementation of Zerocoin. A typographical error on a single additional character in code allowed an attacker to create Zerocoin spend transactions without a corresponding mint. We have identified the error and are pushing the fix urgently within the next 24 hours. We urge all pools and exchanges to update once the release is out." | ||
"The still-unidentified attacker was able to steal around 370,000 Zcoins — around $680,000-worth (£546,000) at current exchange rates, according to CoinMarketCap. Almost all of these have already been sold on, netting the attacker a profit of around 410 bitcoin — $437,000 (£351,000) — according to Zcoin." | "The still-unidentified attacker was able to steal around 370,000 Zcoins — around $680,000-worth (£546,000) at current exchange rates, according to CoinMarketCap. Almost all of these have already been sold on, netting the attacker a profit of around 410 bitcoin — $437,000 (£351,000) — according to Zcoin." | ||
== The Reality == | == The Reality == | ||
| Line 63: | Line 31: | ||
== What Happened == | == What Happened == | ||
"On February 17, 20[17], Zcoin (now Firo) reported that a typo had let an attacker cash a profit of around $400,000 at that time." | |||
{| class="wikitable" | {| class="wikitable" | ||
|+Key Event Timeline - ZCoin/Firo Typographical Error | |+Key Event Timeline - ZCoin/Firo Typographical Error | ||
| Line 70: | Line 38: | ||
!Description | !Description | ||
|- | |- | ||
|February 16th, 2017 | |February 16th, 2017 | ||
| | |Main Event | ||
| | |Expand this into a brief description of what happened and the impact. If multiple lines are necessary, add them here. | ||
|- | |- | ||
| | |February 17th, 2017 9:43:21 AM MST | ||
| | |ZeroCoin Posts Announcement | ||
| | |The ZCoin team posts an announcement on their blog<ref name="zcoinarchive-4240" />. The ZCoin team announced a bug in their Zerocoin implementation, caused by a typographical error in the code, which allowed an attacker to create Zerocoin spend transactions without corresponding mints. This led to the creation of around 370,000 Zcoins, most of which were sold for a profit of approximately 410 BTC. The issue was not related to cryptographic weakness, and the anonymity of Zerocoin remained intact. The team is pushing an urgent fix and urges pools and exchanges to update their code. No coins will be forfeited, and trading will resume once the update is complete. Further details will be shared soon<ref name="zcoinarchive-4240" />. | ||
|- | |- | ||
| | |January 22nd, 2021 6:00:24 PM MST | ||
| | |Mentioned In 51% Attack Article | ||
| | |The Firo hack is mentioned in an article put together by Bitcoin News discussing a 51% attack which has recently happened<ref name="newsdotbitcoin-4049" />. | ||
|} | |} | ||
== Technical Details == | |||
A typographical error in the code allowed an attacker to create Zerocoin spend transactions without corresponding mints<ref name="zcoinarchive-4240" />. | |||
"A typographical error on a single additional character in code allowed an attacker to create Zerocoin spend transactions without a corresponding mint." | |||
"Ian Miers, one of the founders of ZCash, has provided a likely explanation for what went wrong. Miers believes it was probably a bug that resulted from copying and pasting code." | |||
"The exploit happened due to the bug in the code and not from any weakness in the cryptography. The bug from the typo error allowed the attacker to reuse his existing valid proofs to generate additional Zerocoin spend transactions," | |||
The attacker evaded detection for weeks by slowly making payments and withdrawals. "From what we can see, the attacker (or attackers) is very sophisticated and from our investigations, he (or she) did many things to camouflage his tracks through the generation of lots of exchange accounts and carefully spread out deposits and withdrawals over several weeks," Yap wrote. | |||
== Total Amount Lost == | == Total Amount Lost == | ||
The | The attacker exploited the bug to generate approximately 370,000 Zcoins, which were largely sold, netting a profit of around 410 BTC<ref name="zcoinarchive-4240" />. | ||
"They managed to create roughly 370,000 coins and sold a majority of it for a profit of approximately 410 bitcoins ($435,000)." | |||
The total amount lost has been estimated at $400,000 USD. | |||
== Immediate Reactions == | == Immediate Reactions == | ||
The team identified the issue and is urgently pushing a fix within 24 hours, urging pools and exchanges to update once the release is available<ref name="zcoinarchive-4240" />. The team clarifies that the exploit was due to the coding error, not a cryptographic weakness, and that the anonymity of Zerocoin was not compromised. They also confirm that no coins will be forfeited or blacklisted, and trading will resume once updates are made<ref name="zcoinarchive-4240" />. | |||
"Prior to this announcement we had disclosed the hack to the exchanges for them to assist in our investigations. We thank you for understanding and apologize for the silence today as we had to make sure we had all the relevant facts before making a statement on the same." | |||
"Prior to this announcement we had disclosed the hack to the exchanges for them to assist in our investigations." | |||
== Ultimate Outcome == | == Ultimate Outcome == | ||
What was the end result? Was any investigation done? Were any individuals prosecuted? Was there a lawsuit? Was any tracing done? | What was the end result? Was any investigation done? Were any individuals prosecuted? Was there a lawsuit? Was any tracing done? | ||
"We estimate the attacker has created about 370,000 Zcoins which has been almost completely sold except for about 20,000+ Zcoin and absorbed on the market with a profit of around 410 BTC. In other words, the damage has already been mostly absorbed by the markets." | |||
"Despite the severity of the hack, we will not be forfeiting or blacklisting any coins. Trading will resume once pools and exchanges have had time to update their code." "We urge all pools and exchanges to update once the release is out." | |||
"We would also like to thank everyone who has assisted on this matter and will be posting further details in a later post." | |||
== Total Amount Recovered == | == Total Amount Recovered == | ||
There do not appear to have been any funds recovered in this case. | |||
What funds were recovered? What funds were reimbursed for those affected users? | What funds were recovered? What funds were reimbursed for those affected users? | ||
| Line 101: | Line 93: | ||
== Ongoing Developments == | == Ongoing Developments == | ||
What parts of this case are still remaining to be concluded? | What parts of this case are still remaining to be concluded? | ||
== Individual Prevention Policies == | |||
{{Prevention:Individuals:Placeholder}} | |||
{{Prevention:Individuals:End}} | |||
== Platform Prevention Policies == | |||
{{Prevention:Platforms:Placeholder}} | |||
{{Prevention:Platforms:End}} | |||
== Regulatory Prevention Policies == | |||
{{Prevention:Regulators:Placeholder}} | |||
{{Prevention:Regulators:End}} | |||
[https://research.binance.com/en/analysis/zerocoin-flaws An examination of the flaws in the Zerocoin protocol | == References == | ||
<references> | |||
[https://www.businessinsider.com/typo-bitcoin-rival-zcoin-attacker-steals-400000-2017-2 Typo in Bitcoin-Rival Zcoin Lets Attacker Steal $400,000] (Dec | <ref name="newsdotbitcoin-4049">[https://news.bitcoin.com/privacy-centric-cryptocurrency-firo-suffers-51-attack-on-its-network/ Privacy-Centric Cryptocurrency Firo Suffers 51% Attack on Its Network – Altcoins Bitcoin News] (Accessed Oct 18, 2021)</ref> | ||
<ref name="techstartups-4235">[https://techstartups.com/2019/12/26/zcoin-privacy-focused-cryptocurrency-startup-launches-decentralized-crowdfunding-platform/ Zcoin, a privacy-focused cryptocurrency startup, launches a decentralized crowdfunding platform - Tech Startups] (Accessed Oct 19, 2021)</ref> | |||
[https://www.ibtimes.co.uk/how-single-typo-let-hacker-steal-over-500000-worth-cryptocurrency-1607531 How a single typo let a hacker steal over £500,000 worth of cryptocurrency] (Dec | <ref name="coinchoose-4236">[https://www.coinchoose.com/news/new-zcoin-xzc-algorithm-to-provide-level-playing-field-for-both-gpu-and-asic-miners/ New Zcoin (XZC) Algorithm to Provide Level Playing Field for Both GPU and ASIC Miners - CoinChoose] (Accessed Oct 19, 2021)</ref> | ||
<ref name="research-4237">[https://research.binance.com/en/analysis/zerocoin-flaws An examination of the flaws in the Zerocoin protocol - Binance Research] (Accessed Dec 5, 2021)</ref> | |||
[https://web.archive.org/web/20170218001121/https://zcoin.io/language/en/important-announcement-zerocoin-implementation-bug/ Important Announcement: Zerocoin implementation bug - Zcoin] (Dec | <ref name="businessinsider-4238">[https://www.businessinsider.com/typo-bitcoin-rival-zcoin-attacker-steals-400000-2017-2 Typo in Bitcoin-Rival Zcoin Lets Attacker Steal $400,000 - Business Insider] (Accessed Dec 5, 2021)</ref> | ||
<ref name="ibtimes-4239">[https://www.ibtimes.co.uk/how-single-typo-let-hacker-steal-over-500000-worth-cryptocurrency-1607531 How a single typo let a hacker steal over £500,000 worth of cryptocurrency - International Business Times] (Accessed Dec 5, 2021)</ref> | |||
[https://www.securityweek.com/bug-allowed-theft-over-400000-zcoins Bug Allowed Theft of Over $400,000 in Zcoins | <ref name="zcoinarchive-4240">[https://web.archive.org/web/20170218001121/https://zcoin.io/language/en/important-announcement-zerocoin-implementation-bug/ Important Announcement: Zerocoin implementation bug - Zcoin Archive February 17th, 2017 5:11:21 PM MST] (Accessed Dec 5, 2021)</ref> | ||
<ref name="securityweek-4241">[https://www.securityweek.com/bug-allowed-theft-over-400000-zcoins Bug Allowed Theft of Over $400,000 in Zcoins - SecurityWeek.Com] (Accessed Dec 5, 2021)</ref> | |||
[https://news.ycombinator.com/item?id=13673214 what went wrong: TLDR probably Ctrl-C,Ctrl-V. (Just to be clear, this is about Z... | <ref name="ycombinator-4242">[https://news.ycombinator.com/item?id=13673214 what went wrong: TLDR probably Ctrl-C,Ctrl-V. (Just to be clear, this is about Z... - YCombinator Hacker News] (Accessed Dec 5, 2021)</ref> | ||
<ref name="wikipedia-4243">[https://en.wikipedia.org/wiki/Firo_(cryptocurrency) Firo (cryptocurrency) - Wikipedia] (Accessed Dec 5, 2021)</ref> | |||
[https://en.wikipedia.org/wiki/Firo_(cryptocurrency) Firo (cryptocurrency) - Wikipedia] (Dec | </references> | ||
Latest revision as of 18:29, 13 February 2025
Notice: This page is a new case study and some aspects have not been fully researched. Some sections may be incomplete or reflect inaccuracies present in initial sources. Please check the References at the bottom for further information and perform your own additional assessment. Please feel free to contribute by adding any missing information or sources you come across. If you are new here, please read General Tutorial on Wikis or Anatomy of a Case Study for help getting started.
Notice: This page contains sources which are not attributed to any text. The unattributed sources follow the initial description. Please assist by visiting each source, reviewing the content, and placing that reference next to any text it can be used to support. Feel free to add any information that you come across which isn't present already. Sources which don't contain any relevant information can be removed. Broken links can be replaced with versions from the Internet Archive. See General Tutorial on Wikis, Anatomy of a Case Study, and/or Citing Your Sources Guide for additional information. Thanks for your help!
The initial version of ZCoin contained a bug which allowed for the minting of additional coins over time. This was exploited by an attacker, who was smart enough to mint coins very slowly over time, allowing him to convert them into bitcoin using another exchange. No funds were lost, however the value of ZCoin was reduced due to the increase in supply.
This is a global/international case not involving a specific country.[1][2][3][4][5][6][7][8][9]
About ZCoin/Firo
"The idea behind Zcoin started way back in 2014 as a simple desire of a young but ambitious developer, to bring privacy and fair mining to a cryptocurrency. Back before privacy on blockchain was a serious topic, Poramin Insom was inspired after coming across the original Zerocoin paper while studying for his masters at John Hopkins University and sought to build a practical implementation of Zerocoin."
"The Zerocoin protocol was one of the first efforts at providing strong anonymity for Bitcoin. Despite not being implemented in the Bitcoin protocol, it was implemented as a stand-alone cryptocurrency in 2015: ZCoin." "[T]he Zerocoin protocol was a break-through contribution to the overall crypto-industry. It was one of the first solutions offering anonymity features to UTXO-based blockchains and paved the way for the growth of all privacy features on blockchain solutions."
"The Zerocoin protocol relies on an initial trusted set-up; i.e., it is required to trust someone to generate initial parameters and then destroy those parameters. For instance, ZCoin relied on RSA accumulators, which need the generation of two large prime numbers. Specifically, it relied on RSA-2048 parameters, generated from the RSA factoring challenge."
"To further fulfill its mission, today, Zcoin announced the launch of Crowdfunding System (ZCS) as a key step in decentralizing funding and decision making of the project. The new ZCS will serve as a transition from funding directly from the block reward to a donation model and shall begin funding ancillary tasks such as non-core development, third party integrations and community management and events."
"Zcoin (XZC), worth approximately $2 per unit, is an implementation of the Zerocoin protocol, which aims to provide fully anonymous currency transactions. Zerocoin has also been used to create a new protocol called Zerocash and the ZCash digital currency."
"Yesterday, our team found a bug in our implementation of Zerocoin. A typographical error on a single additional character in code allowed an attacker to create Zerocoin spend transactions without a corresponding mint. We have identified the error and are pushing the fix urgently within the next 24 hours. We urge all pools and exchanges to update once the release is out."
"The still-unidentified attacker was able to steal around 370,000 Zcoins — around $680,000-worth (£546,000) at current exchange rates, according to CoinMarketCap. Almost all of these have already been sold on, netting the attacker a profit of around 410 bitcoin — $437,000 (£351,000) — according to Zcoin."
The Reality
This sections is included if a case involved deception or information that was unknown at the time. Examples include:
- When the service was actually started (if different than the "official story").
- Who actually ran a service and their own personal history.
- How the service was structured behind the scenes. (For example, there was no "trading bot".)
- Details of what audits reported and how vulnerabilities were missed during auditing.
What Happened
"On February 17, 20[17], Zcoin (now Firo) reported that a typo had let an attacker cash a profit of around $400,000 at that time."
| Date | Event | Description |
|---|---|---|
| February 16th, 2017 | Main Event | Expand this into a brief description of what happened and the impact. If multiple lines are necessary, add them here. |
| February 17th, 2017 9:43:21 AM MST | ZeroCoin Posts Announcement | The ZCoin team posts an announcement on their blog[6]. The ZCoin team announced a bug in their Zerocoin implementation, caused by a typographical error in the code, which allowed an attacker to create Zerocoin spend transactions without corresponding mints. This led to the creation of around 370,000 Zcoins, most of which were sold for a profit of approximately 410 BTC. The issue was not related to cryptographic weakness, and the anonymity of Zerocoin remained intact. The team is pushing an urgent fix and urges pools and exchanges to update their code. No coins will be forfeited, and trading will resume once the update is complete. Further details will be shared soon[6]. |
| January 22nd, 2021 6:00:24 PM MST | Mentioned In 51% Attack Article | The Firo hack is mentioned in an article put together by Bitcoin News discussing a 51% attack which has recently happened[10]. |
Technical Details
A typographical error in the code allowed an attacker to create Zerocoin spend transactions without corresponding mints[6].
"A typographical error on a single additional character in code allowed an attacker to create Zerocoin spend transactions without a corresponding mint."
"Ian Miers, one of the founders of ZCash, has provided a likely explanation for what went wrong. Miers believes it was probably a bug that resulted from copying and pasting code."
"The exploit happened due to the bug in the code and not from any weakness in the cryptography. The bug from the typo error allowed the attacker to reuse his existing valid proofs to generate additional Zerocoin spend transactions,"
The attacker evaded detection for weeks by slowly making payments and withdrawals. "From what we can see, the attacker (or attackers) is very sophisticated and from our investigations, he (or she) did many things to camouflage his tracks through the generation of lots of exchange accounts and carefully spread out deposits and withdrawals over several weeks," Yap wrote.
Total Amount Lost
The attacker exploited the bug to generate approximately 370,000 Zcoins, which were largely sold, netting a profit of around 410 BTC[6].
"They managed to create roughly 370,000 coins and sold a majority of it for a profit of approximately 410 bitcoins ($435,000)."
The total amount lost has been estimated at $400,000 USD.
Immediate Reactions
The team identified the issue and is urgently pushing a fix within 24 hours, urging pools and exchanges to update once the release is available[6]. The team clarifies that the exploit was due to the coding error, not a cryptographic weakness, and that the anonymity of Zerocoin was not compromised. They also confirm that no coins will be forfeited or blacklisted, and trading will resume once updates are made[6].
"Prior to this announcement we had disclosed the hack to the exchanges for them to assist in our investigations. We thank you for understanding and apologize for the silence today as we had to make sure we had all the relevant facts before making a statement on the same."
"Prior to this announcement we had disclosed the hack to the exchanges for them to assist in our investigations."
Ultimate Outcome
What was the end result? Was any investigation done? Were any individuals prosecuted? Was there a lawsuit? Was any tracing done?
"We estimate the attacker has created about 370,000 Zcoins which has been almost completely sold except for about 20,000+ Zcoin and absorbed on the market with a profit of around 410 BTC. In other words, the damage has already been mostly absorbed by the markets."
"Despite the severity of the hack, we will not be forfeiting or blacklisting any coins. Trading will resume once pools and exchanges have had time to update their code." "We urge all pools and exchanges to update once the release is out."
"We would also like to thank everyone who has assisted on this matter and will be posting further details in a later post."
Total Amount Recovered
There do not appear to have been any funds recovered in this case.
What funds were recovered? What funds were reimbursed for those affected users?
Ongoing Developments
What parts of this case are still remaining to be concluded?
Individual Prevention Policies
No specific policies for individual prevention have yet been identified in this case.
For the full list of how to protect your funds as an individual, check our Prevention Policies for Individuals guide.
Platform Prevention Policies
Policies for platforms to take to prevent this situation have not yet been selected in this case.
For the full list of how to protect your funds as a financial service, check our Prevention Policies for Platforms guide.
Regulatory Prevention Policies
No specific regulatory policies have yet been identified in this case.
For the full list of regulatory policies that can prevent loss, check our Prevention Policies for Regulators guide.
References
- ↑ Zcoin, a privacy-focused cryptocurrency startup, launches a decentralized crowdfunding platform - Tech Startups (Accessed Oct 19, 2021)
- ↑ New Zcoin (XZC) Algorithm to Provide Level Playing Field for Both GPU and ASIC Miners - CoinChoose (Accessed Oct 19, 2021)
- ↑ An examination of the flaws in the Zerocoin protocol - Binance Research (Accessed Dec 5, 2021)
- ↑ Typo in Bitcoin-Rival Zcoin Lets Attacker Steal $400,000 - Business Insider (Accessed Dec 5, 2021)
- ↑ How a single typo let a hacker steal over £500,000 worth of cryptocurrency - International Business Times (Accessed Dec 5, 2021)
- ↑ 6.0 6.1 6.2 6.3 6.4 6.5 6.6 Important Announcement: Zerocoin implementation bug - Zcoin Archive February 17th, 2017 5:11:21 PM MST (Accessed Dec 5, 2021)
- ↑ Bug Allowed Theft of Over $400,000 in Zcoins - SecurityWeek.Com (Accessed Dec 5, 2021)
- ↑ what went wrong: TLDR probably Ctrl-C,Ctrl-V. (Just to be clear, this is about Z... - YCombinator Hacker News (Accessed Dec 5, 2021)
- ↑ Firo (cryptocurrency) - Wikipedia (Accessed Dec 5, 2021)
- ↑ Privacy-Centric Cryptocurrency Firo Suffers 51% Attack on Its Network – Altcoins Bitcoin News (Accessed Oct 18, 2021)