Loopring Design Defect: Difference between revisions

From Quadriga Initiative Cryptocurrency Hacks, Scams, and Frauds Repository
Jump to navigation Jump to search
No edit summary
No edit summary
 
Line 1: Line 1:
{{Imported Case Study|source=https://www.quadrigainitiative.com/casestudy/loopringdesigndefect.php}}
{{Imported Case Study 2|source=https://www.quadrigainitiative.com/casestudy/loopringdesigndefect.php}}
{{Unattributed Citations}}
{{Unattributed Sources}}


[[File:Loopring.jpg|thumb|Loopring]]Loopring is a decentralized trading platform. The Loopring protocol involves keys to manage transactions. These keys were based on password input provided by the user, which often had a low entropy and was poorly protected.
[[File:Loopring.jpg|thumb|Loopring]]Loopring is a decentralized trading platform. The Loopring protocol involves keys to manage transactions. These keys were based on password input provided by the user, which often had a low entropy and was poorly protected.
Line 8: Line 8:
The Loopring platform vulnerability was fixed  with no funds lost.
The Loopring platform vulnerability was fixed  with no funds lost.


This is a global/international case not involving a specific country.
This is a global/international case not involving a specific country.<ref name="slowmisthacked-1160" /><ref name="kraken-2153" /><ref name="loopringexchange-2154" /><ref name="loopring-2155" /><ref name="loopringorgtwitter-2156" /><ref name="loopringorgtwitter-2157" /><ref name="loopringprotocolmedium-2158" /><ref name="vitalikbuterintwitter-2159" /><ref name="loopringorgtwitter-2160" /><ref name="bneilujtwitter-2161" /><ref name="loopringorgtwitter-2162" /><ref name="loopringorgtwitter-2163" /><ref name="kriptomat-2164" /><ref name="dyorcrypto-2165" /><ref name="weusecoins-2166" /><ref name="defiprime-2167" />
<ref name="slowmisthacked-1160" /><ref name="kraken-2153" /><ref name="loopringexchange-2154" /><ref name="loopring-2155" /><ref name="loopringorgtwitter-2156" /><ref name="loopringorgtwitter-2157" /><ref name="loopringprotocolmedium-2158" /><ref name="vitalikbuterintwitter-2159" /><ref name="loopringorgtwitter-2160" /><ref name="bneilujtwitter-2161" /><ref name="loopringorgtwitter-2162" /><ref name="loopringorgtwitter-2163" /><ref name="kriptomat-2164" /><ref name="dyorcrypto-2165" /><ref name="weusecoins-2166" /><ref name="defiprime-2167" />


== About Loopring ==
== About Loopring ==
Line 86: Line 85:
!Description
!Description
|-
|-
|May 7th, 2020 12:00:00 AM
|May 7th, 2020
|Main Event
|Main Event
|Expand this into a brief description of what happened and the impact. If multiple lines are necessary, add them here.
|Expand this into a brief description of what happened and the impact. If multiple lines are necessary, add them here.
Line 94: Line 93:
|
|
|}
|}
== Technical Details ==
This section includes specific detailed technical analysis of any security breaches which happened. What specific software vulnerabilities contributed to the problem and how were they exploited?


== Total Amount Lost ==
== Total Amount Lost ==
Line 113: Line 115:
== 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?
== General Prevention Policies ==
No user funds were lost.
== 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 Policies ==
{{Prevention:Regulators:End}}
No user funds were lost.


== References ==
== References ==
<references><ref name="slowmisthacked-1160">[https://hacked.slowmist.io/en/?c=Exchange SlowMist Hacked - SlowMist Zone] (Jun 25, 2021)</ref>
<references><ref name="slowmisthacked-1160">[https://hacked.slowmist.io/en/?c=Exchange SlowMist Hacked - SlowMist Zone] (Jun 26, 2021)</ref>


<ref name="kraken-2153">[https://www.kraken.com/en-gb/learn/what-is-loopring-lrc What is Loopring? (LRC) - Kraken] (Aug 2, 2021)</ref>
<ref name="kraken-2153">[https://www.kraken.com/en-gb/learn/what-is-loopring-lrc What is Loopring? (LRC) - Kraken] (Aug 3, 2021)</ref>


<ref name="loopringexchange-2154">[https://exchange.loopring.io/swap Loopring Exchange (DEX)] (Aug 2, 2021)</ref>
<ref name="loopringexchange-2154">[https://exchange.loopring.io/swap Loopring Exchange (DEX)] (Aug 3, 2021)</ref>


<ref name="loopring-2155">[https://loopring.io/#/ Loopring] (Aug 2, 2021)</ref>
<ref name="loopring-2155">[https://loopring.io/#/ Loopring] (Aug 3, 2021)</ref>


<ref name="loopringorgtwitter-2156">[https://twitter.com/loopringorg/status/1256306702917517313 @loopringorg Twitter] (Aug 2, 2021)</ref>
<ref name="loopringorgtwitter-2156">[https://twitter.com/loopringorg/status/1256306702917517313 @loopringorg Twitter] (Aug 3, 2021)</ref>


<ref name="loopringorgtwitter-2157">[https://twitter.com/loopringorg/status/1260939644293677057 @loopringorg Twitter] (Aug 2, 2021)</ref>
<ref name="loopringorgtwitter-2157">[https://twitter.com/loopringorg/status/1260939644293677057 @loopringorg Twitter] (Aug 3, 2021)</ref>


<ref name="loopringprotocolmedium-2158">[https://medium.com/loopring-protocol/looprings-new-approach-to-generating-layer-2-account-keys-4a16cc334906 Looprings New Approach To Generating Layer 2 Account Keys] (Aug 2, 2021)</ref>
<ref name="loopringprotocolmedium-2158">[https://medium.com/loopring-protocol/looprings-new-approach-to-generating-layer-2-account-keys-4a16cc334906 Looprings New Approach To Generating Layer 2 Account Keys] (Aug 3, 2021)</ref>


<ref name="vitalikbuterintwitter-2159">[https://twitter.com/VitalikButerin/status/1258382081417187331 @VitalikButerin Twitter] (Aug 2, 2021)</ref>
<ref name="vitalikbuterintwitter-2159">[https://twitter.com/VitalikButerin/status/1258382081417187331 @VitalikButerin Twitter] (Aug 3, 2021)</ref>


<ref name="loopringorgtwitter-2160">[https://twitter.com/loopringorg/status/1258183635338854403 @loopringorg Twitter] (Aug 2, 2021)</ref>
<ref name="loopringorgtwitter-2160">[https://twitter.com/loopringorg/status/1258183635338854403 @loopringorg Twitter] (Aug 3, 2021)</ref>


<ref name="bneilujtwitter-2161">[https://twitter.com/bneiluj/status/1258352272926539777 @bneiluj Twitter] (Aug 2, 2021)</ref>
<ref name="bneilujtwitter-2161">[https://twitter.com/bneiluj/status/1258352272926539777 @bneiluj Twitter] (Aug 3, 2021)</ref>


<ref name="loopringorgtwitter-2162">[https://twitter.com/loopringorg/status/1258196874403516417 @loopringorg Twitter] (Aug 2, 2021)</ref>
<ref name="loopringorgtwitter-2162">[https://twitter.com/loopringorg/status/1258196874403516417 @loopringorg Twitter] (Aug 3, 2021)</ref>


<ref name="loopringorgtwitter-2163">[https://twitter.com/loopringorg/status/1258304824384389120 @loopringorg Twitter] (Aug 2, 2021)</ref>
<ref name="loopringorgtwitter-2163">[https://twitter.com/loopringorg/status/1258304824384389120 @loopringorg Twitter] (Aug 3, 2021)</ref>


<ref name="kriptomat-2164">[https://kriptomat.io/loopring/ What is Loopring? And how does LRC work? (2023 edition)] (Aug 2, 2021)</ref>
<ref name="kriptomat-2164">[https://kriptomat.io/loopring/ What is Loopring? And how does LRC work? (2023 edition)] (Aug 3, 2021)</ref>


<ref name="dyorcrypto-2165">[https://dyor-crypto.fandom.com/wiki/Loopring_(LRC) Loopring (LRC) | DYOR Crypto Wiki | Fandom] (Aug 2, 2021)</ref>
<ref name="dyorcrypto-2165">[https://dyor-crypto.fandom.com/wiki/Loopring_(LRC) Loopring (LRC) | DYOR Crypto Wiki | Fandom] (Aug 3, 2021)</ref>


<ref name="weusecoins-2166">[https://www.weusecoins.com/what-is-loopring/ What Is Loopring?] (Aug 2, 2021)</ref>
<ref name="weusecoins-2166">[https://www.weusecoins.com/what-is-loopring/ What Is Loopring?] (Aug 3, 2021)</ref>


<ref name="defiprime-2167">[https://defiprime.com/loopring-protocol Interview with Daniel Wang CEO and Founder of Loopring Foundation] (Aug 2, 2021)</ref></references>
<ref name="defiprime-2167">[https://defiprime.com/loopring-protocol Interview with Daniel Wang CEO and Founder of Loopring Foundation] (Aug 3, 2021)</ref></references>

Latest revision as of 13:31, 1 May 2023

Notice: This page is a freshly imported case study from the original repository. The original content was in a different format, and may not have relevant information for all sections. Please help restructure the content by moving information from the 'About' and 'General Prevention' sections to other sections, and add any missing information or sources you can find. 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!

Loopring

Loopring is a decentralized trading platform. The Loopring protocol involves keys to manage transactions. These keys were based on password input provided by the user, which often had a low entropy and was poorly protected.

As a result, it was possible for an attacker to interfere with ongoing trades or create unintended trades.

The Loopring platform vulnerability was fixed with no funds lost.

This is a global/international case not involving a specific country.[1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16]

About Loopring

"Loopring is a software running on Ethereum that aims to incentivize a global network of users to operate a platform that enables the creation of new types of crypto asset exchanges."

High transaction fees are "exactly what Loopring aims to remedy, by delivering a digital economy that empowers its users while still giving them complete control over their assets. With Loopring, people no longer have to sacrifice efficiency and affordability to take advantage of Ethereum’s network security."

"Loopring (LRC) is an Ethereum Layer-2 scaling protocol that enables the building of decentralized exchanges which rival centralized exchanges in terms of performance. The network can handle up to 1,000 times more trades per second than Ethereum with each one costing a mere fraction of a cent."

"Loopring's zkRollup L2 solution offers the same security guarantees as Ethereum mainnet, with a big scalability boost: throughput increased by 1000x, and cost reduced to just 0.1% of L1. Ethereum is now unleashed. One year ago, we launched the first zkRollup on Ethereum - now we put its power in your pocket. Smooth orderbook trading, AMMs, and global payments, right from the Loopring wallet."

"Most notably, Loopring claims its platform will allow exchanges built on top of it to sidestep the slow speeds and high costs associated with decentralized exchanges on Ethereum through the use of a newer type of cryptography called zero-knowledge rollups, or zkRollups."

"Check out the Loopring Exchange new dark theme. When you're trading this weekend, keep your ETH and your eyes safe." "Loopring Monthly Update, April 2020 Protocol: more features packed into v3.5. Product: exchange API & referral program released, UI update. Relayer: maxed out optimization with 1024-trade settlement blocks, deposit/withdraw times halved."

"Each account on Loopring Exchange needs an EdDSA private key (the account key) to sign off-chain (aka layer-2) requests. Our frontend used to generate these account keys based on users’ passwords, but as pointed out by StarkWare and other friends on Twitter, such brain-password based solutions are bad."

"Loopring has appeared a serious front-end error, the private key material is set within a range of 32-bit integer, you can find all user private key pairs by brute force method, due to the user's EdDSA key pair is actually limited to a space of 32-bit integer, the hacker can find out the EdDSA key pair of all users by brute force method. Affected by this, Loopring Exchange shut down for half a day for maintenance and upgrade."

"A critical frontend bug has been identified, we will stop our relayer service and and put Loopring Exchange into maintaince mode. Stay tuned for more update."

"More details on the @loopringorg situation from yesterday. Loopring users need to reset their passwords. TLDR: Funds are safe. Bug in password hash made it so an attacker could potentially break passwords and start trading with funds. Withdrawals only possible to user wallets."

"I wouldn't call a frontend bug when you ask your user to type a password (very likely to be something like 1234) and mix it with your user's ethereum address to derive your user account key... It's a very bad implementation."

"We are still verifying the bug report. In the meanwhile order submission has been suspended, deposits and withdrawals still work as expected. Your asset on Loopring is secure even if the bug is confirmed positive. We will release more update."

"#Loopring implemented a new approach to generating layer-2 account keys [with n]o more passwords, [u]pdatable/revokable, [n]o account keys will ever be the same, [f]ully compatible with smart wallet, [and d]ecoupled from the Loopring protocol."

"Our frontend used to generate these account keys based on users’ passwords, but as pointed out by StarkWare and other friends on Twitter, such brain-password based solutions are bad. We have implemented a new approach to generating and managing account keys on the client-side"

"The web app shall allow users to change the account keys for the same Ethereum addresses, so they can export and share their account keys to third parties (such as market makers) and later revoke the account keys. This means the mapping between Ethereum addresses and account keys has to be one-to-many, not one-to-one. The seed for generating an account key shall contain the entropy of a valid ECDSA signature from the corresponding Ethereum address. When a browser tab is open for the exchange web app, we shall allow users to refresh/reload the web page without re-login or re-signing any messages using the corresponding Ethereum addresses. If the user closes the tab opened for the app, the session should end immediately, and the user will have to log in again. If the user explicitly logs out, all account-key related session/local data shall be cleaned.No sensitive data shall be sent to the relayer."

"We thank @VitalikButerin and @gluk64 for their recommendations. Our engineers are open minded and look forward to feedback to improve our web app’s user experience and security further." "And thank you to @StarkWareLtd and @avihu28, who initiated the whole process with their findings."

"http://Loopring.io has finished upgrade now. Funds are safe. Bug related to password on the product frontend (not protocol), but presented a risk via trading."

"Loopring Exchange v2 is using Loopring protocol 3.6 which is in beta. Use at your own risk. View risk warning."

This is a global/international case not involving a specific country.

The background of the exchange platform, service, or individuals involved, as it would have been seen or understood at the time of the events.

Include:

  • Known history of when and how the service was started.
  • What problems does the company or service claim to solve?
  • What marketing materials were used by the firm or business?
  • Audits performed, and excerpts that may have been included.
  • Business registration documents shown (fake or legitimate).
  • How were people recruited to participate?
  • Public warnings and announcements prior to the event.

Don't Include:

  • Any wording which directly states or implies that the business is/was illegitimate, or that a vulnerability existed.
  • Anything that wasn't reasonably knowable at the time of the event.

There could be more than one section here. If the same platform is involved with multiple incidents, then it can be linked to a main article page.

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

The specific events of the loss and how it came about. What actually happened to cause the loss and some of the events leading up to it.

Key Event Timeline - Loopring Design Defect
Date Event Description
May 7th, 2020 Main Event Expand this into a brief description of what happened and the impact. If multiple lines are necessary, add them here.

Technical Details

This section includes specific detailed technical analysis of any security breaches which happened. What specific software vulnerabilities contributed to the problem and how were they exploited?

Total Amount Lost

No funds were lost.

How much was lost and how was it calculated? If there are conflicting reports, which are accurate and where does the discrepancy lie?

Immediate Reactions

How did the various parties involved (firm, platform, management, and/or affected individual(s)) deal with the events? Were services shut down? Were announcements made? Were groups formed?

Ultimate Outcome

What was the end result? Was any investigation done? Were any individuals prosecuted? Was there a lawsuit? Was any tracing done?

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?

General Prevention Policies

No user funds were lost.

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