Post Mortem of the SharedStake Incident

Shared Stake
9 min readJul 3, 2021

Hi everyone, It’s Ice Bear.

As you know, an unfortunate incident happened last week, resulting in huge losses for the SharedStake community. This post mortem is written with the intent of explaining all of the details objectively. If you have enough information on the case please start reading from the chapter “Aftermath” onward.

Background

Without getting into any speculation, I think it’s better to provide some background information of the SharedStake Protocol, from my point of view. You can skip this part, if you are not interested.

SharedStake was founded by three core developers: Chimera, Kairos and Ice Bear in January 2021. Kairos and Chimera had been friends for several years, I met them a couple of months before founding the protocol. They shared the idea they have been working on as a side project and invited me. I decided it would be a good way to gain more experience in the Blockchain ecosystem, and accepted their offer.

While I’ve been handling most of the dev tasks from that point on, I’ve never been given any control on the protocol. I basically became “the Frontend Guy’’. It was not my intended role, but I loved what we were creating with all the other contributors.

After the second airdrop, the SGT price started to fall. I believe this is the starting point of the story, and led to why this incident happened: The 2 other founders started having discussions about their control on the protocol. Chimera was controlling all contracts, declining to transfer some of the SGT from the deployer address to a multisig, storing eth2 keys etc. Since Chimera declined to transfer the ownership of the Vesting Contracts to the multisig, we were worried. This is because Chimera could deport us by changing the beneficiary of the contracts, thus taking all the control over the protocol, and causing damage for the community. Well, at least I was.

The Exploit

There is a beautiful post mortem about the exploit prepared by Immunefi Team, please read it first, if you haven’t yet: SharedStake Insider Exploit Postmortem.

After Kairos was added to the Discord Group with Immunefi, we had a discussion about the exploit. Exploit was meant to be found on the SmartLock contract which locks 4M SGT, owned by Chimera. A fix for the exploit was delivered by a white hat 5 days before the incident, waiting to be implemented by our solidity developers as soon as possible. Meanwhile we got curious if the vesting contracts had the same exploit. The test ended up being true. There was no expectation of ever using it.

In retrospect, there are 2 mistakes I’ve made by trusting my colleagues:

  • I didn’t expect the exploit to be used for a rug-pull, as I didn’t know the intentions of Kairos. Without any intention of providing a proof, I’ve never sold any SGT that I claimed from the vesting contract except a little amount to cover my expenses on development. Prior to The Incident, I owned around 40 thousand SGT, making me the owner of ~10% of all circulating supply. I had no intention to sell them as I believed in the future of the project: https://etherscan.io/token/0x84810bcf08744d5862b8181f12d17bfd57d3b078?a=0xcb9d78cb76a86844667eaf3ac62cb5d377b3ce5c
  • I never pushed other developers to deliver a solution and execute. Since, I had no control over the protocol. I thought it’s better to get the work done by myself later instead of messing with them and being taken down.

The Incident

Very shortened version of the incident is explained here, you can skip this part if you already know what happened.

Jun-19–2021

  • The exploit is tested on the vesting contracts of Ice Bear and Kairos:
  1. Kairos: https://etherscan.io/tx/0x9400daa8711b4326e7b3bb7a4874099e5c7fe801c8b1488ff91bd6e5de332c9f
  2. Ice bear: https://etherscan.io/tx/0x71941b199fcb7dd27799723f0dad6d8cac21bd873a98819f88b0726cfc75dd94

Jun-21–2021

  • Kairos sells over $35k worth of SGT from the SharedStake Deployer address, causing a price shock. The funds were stolen from an amount that hasn’t been sent to the multisig, not from the exploit. This was never discussed with any other devs. The community reacts negatively asking him to prove the expenses he claims to be paying himself for:
  1. https://etherscan.io/tx/0x4f708a9c2d5888cb40a5a816c17edf879832d3e791b1903e5bc1f862a792c49b
  2. https://etherscan.io/tx/0xd73a27d84f86f803a4856aa4bd875d43e6e757ab8e5f32956f2af428fb9bf69a

Jun-23–2021

  • Chimera starts to suspect that Kairos is going to exploit the vulnerability and calls him about the $35k SGT sale. With his words:

At this point Kairos becomes exceptionally hostile and inflammatory in an attempt to deflect knowing he’s been caught. He additionally claims a part of the funds were also sent to Ice Bear which is provably false.

  • Fearing a potential rugpull, Chimera checks the GCP server and deletes any withdrawal keys on it. I believe this was one of the most important steps that should be taken at that point.
  • Then, Chimera exploits the Timelock and 2 vesting contracts for Ice Bear and Kairos with a modified version of the hardhat script provided by the whitehat from Immunefi:
  1. Timelock: https://etherscan.io/tx/0xe5c00ca06fdde2b89db928a7f1266f1a5b17cfb123ee7fcd9fa640a102763d06
  2. Vesting Ice bear: https://etherscan.io/tx/0x3c6a6f29248cbbb6b3f1f13fa792c31ac602ff04cb8354f6923629abfa959fbc
  3. Vesting Kairos: https://etherscan.io/tx/0x9299a585a4af1abe8ec16bf534a3b7017185e6dcf80751c77107ebfa0ad85676
  • Kairos notices Chimera’s TXs and suspects that Chimera is going to rugpull. Exploits the vulnerability, and starts dumping the tokens to the SGT-ETH pool on uniswap:
  1. https://etherscan.io/tx/0x0ba4dff34be3b9f9f4745b6e783c108e98172dfa6f5dccd9f833d3521348d9fd
  2. https://etherscan.io/tx/0x6c13433b0c8539ab2fdf892eb4457d0c045db22755fa9c053f906c257de89a41

As a result Kairos rugpulls $93k. Kairos claimed that these funds were his and he was afraid of Chimera stealing them. Since funds were coming from the exploited vesting contract, his claims are disproved.

  • After Kairos sold the 100k SGT Chimera was afraid that he could sell more. So, he decides to exploit the Locking Contract and sell the tokens:
  1. https://etherscan.io/tx/0xd9dc556a4d7bad436da08848b6591a4d2bfd930fdc26f17bde9bfd8ed5f8b99f
  2. https://etherscan.io/tx/0x8553086a8b2e6fd4a665cc7ceb3023d55ddbc67dd48e6332d5fb11a6826fe29d
  3. https://etherscan.io/tx/0xdc3e558a0d7e0e435be8b1178f6fd757bda6b0a646629cb92b2d85fd78781dbf

As a result Chimera rugpulls 89 vETH2 and $54k USDC. Chimera defends his case as a “Defensive Rugpull”. While I believe this was one of the worst possible solutions in the case, I can see his motivation to save the project, as he later sent all the funds back.

  • At this point I woke up to calls from both sides, as it was pretty late in my local time.
The moment that I learned about the incident, Kairos blaming Chimera for the rugpull. This image was released by Kairos to defend his position, after a couple of days.
The moment that I learned about the incident, Kairos blaming Chimera for the rugpull. This image was released by Kairos to defend his position, after a couple of days.
  • I set up a call with both sides to try to defuse and resolve the situation and walk back the rug-pull. Both sides requested the other side to send the funds back first. The call ended without any luck.
  • Community informed about the incident and advised to avoid trading or providing liquidity on any pool that issues vEth2 or SGT.

After the incident

  • Kairos starts acting manipulative towards the community. Blaming Chimera for the incident, he bans him from the Discord server.
  • Under my leadership, the remaining core team sets up an urgent call to discuss the situation right away.
  • Both sides published their report on the incident blaming the other party. Both reports had been investigated carefully and backed up by the core team in case of needing them for any legal action. While the report released by Kairos is currently not available, you can read Chimera’s side of the story here: https://pastebin.ubuntu.com/p/26GzrFTCVW/

Jun-24–2021

  • Kairos is invited to a call a day after the incident to defend his actions. This call was a success and Kairos accepted to send the stolen funds, after Chimera sent them.
  1. Then sends some funds to a FlashWallet contract that may be related to Binance: https://etherscan.io/address/0x22f9dcf4647084d6c31b2765f6910cd85c178c18
  2. He also collects the rest of the funds into a 100ETH bundle and sends them to Tornado Cash: https://etherscan.io/tx/0x9a9e6bb4e45038622165913d3348b7c8c63e6d4dfc6e5db03992cf059f22f236
  • First steps are taken for a Community Multisig including 2 Community members, 2 Saddle Developers and 1 core team representative. With 4/5 approval requirement, this solution seems feasible: https://etherscan.io/address/0xebc37f4c20c7f8336e81fb3adf82f6372bef777e
  • I called Chimera and discussed the incident. I requested that he sends the funds back, to which he agreed and further promised to be cooperative with the core team.

Jun-25–2021

  • Core team creates a crisis management table and starts discussing possible solutions. This table doesn’t include Chimera and Karios since both of the parties were held responsible.

Jun-26–2021

  • Chimera sends all of the stolen funds back:
  1. https://etherscan.io/tx/0x06dcb070017114aeab413ef0db3d64f86952cff727a2830b9820f1668bb82a11
  2. https://etherscan.io/tx/0x5914268b0889d46fe7db7a6cb072fb63e44d50c06d3b4d3c8f0c34e3050f39b0
  3. https://etherscan.io/tx/0x632dc0ce3c03ae0da187dddfcbb40581738c685bfc6191c310218e0d9afc5104
  • I called Kairos to remind him to send the funds back. He claimed the funds were his compensation to leave his position. I tried to convince him and offered help about the community’s reaction as he was worried about being doxed. He didn’t agree and requested help without sending any funds back. Afterwards, the call turned into an aggressive discussion about trust. This was the final time we got in touch with him.

Jun-28–2021

  • 3 solidity developers accepted Ice Bear’s offer and started working on solutions to secure and improve the protocol voluntarily.

Aftermath

  • I immediately took control over the core team, discord group and GCP. Core team is reorganized and started to work with Community Multisig about the solution and made significant progress. We will release our detailed action plan to save and secure the protocol in another report.
  • While both parties held equally responsible about the incident, Chimera returned the stolen funds and will stay as a member of the team as his mistake probably prevented more funds from being stolen by Kairos.
  • Chimera agreed to be responsible for securing the funds, 16 thousands Ether. Any other responsibility will not be given to him in the core team.
  • Kairos didn’t return any of the stolen funds, around 90 thousand dollars.
  • The core team established their trust to the community multisig.

SGT

The circulating supply was around 400,000 before the incident. Right now it’s more than 3 million. Of course, like any collateral, SGT has a value. However, its value has been backed by its functionality of distributing the power of governance. I wanted to warn the traders that its functionality no longer exists.

However, as a personal note, there are multiple possible solutions to distribute the governance after the core product is secured. We will be choosing the best option for the community as the Core Team. This decision requires multiple validations, from the new community multisig, the core team and the community. It’s hard to comment on the result.

vEth2

Chimera stated that Kairos had access to the GCP & the half of the keys for some time. Considering Kairos’s dev skills and logging info in the GCP, I personally do not think he had any access. Additionally, it is arguably obvious that the both parties had no planned actions to harm the protocol prior to the incident. As a side note, both parties are doxed.

However, even if he had access, the team will be working on other solutions to hand the withdrawal keys to the community multisig, before Eth2 merge. Some possible ways are listed here: https://ethresear.ch/t/withdrawal-credential-rotation-from-bls-to-eth1/8722

Additionally, there are 3rd party solutions to secure the underlying Ether at the merge. We will be taking every possible path to secure the funds.

Finally, with the guarantee of returning all the funds and validator rewards right after the merge, we are aware that it is not reasonable for the community to continue trusting us. All the operations on vEth2 is ceased for now. As it is stated previously, Core Team started to work on a solution that requires the least amount of trust, if not zero.

Community multisig

Multisig address will be responsible for securing the governance, making sure there is no possible way to harm the protocol from now on. Also it will be working with the core team on a solution for the future of SharedStake. The identities of every person in the multisig are public. All necessary control is given to the community multisig from this point forward.

Core Team

  • Ice Bear: The lead developer, responsible for all implementations and the management of the core team.
  • Exiton: Frontend Developer, Community Management.
  • DefiFry: Marketing lead, digital marketing strategist, content writer and video production.
  • LeafSays: Lead Designer, content creator, and assists Marketing with any social media developments as needed.
  • Cryptopher Robin: Social Media, community management and outreach, article creation, video creation.
  • SuperFlyTNT2: Discord Server Admin, Community Management, Design.
  • Oranges: Operations lead, handling the governance matters.
  • Chimera: responsible for the security of eth2 funds staked with vEth2, deployment of the validators and server.
  • 3 solidity developers are onboarded to the Core Team. These members will be publicly announced when their onboarding process is over.

While all the current core team members are trusted by the community, we will deliver a solution that doesn’t necessarily rely on trust. The improved versions of the previous implementations for the future releases will guarantee that.

A Special Note from IceBear

First of all, I am so sorry for being a part of such an incident. I wish I could have foreseen the danger and taken prior action. My motivation while working on SharedStake was simply to create something beautiful for the community; not money. However, I was wrong to assume that everyone was working with the same motivation. I also lost a lot of investment, 40 thousand SGT and most importantly 6 months of hard work of the core team.

As a conclusion, please do not doubt that we will do everything we can, maybe even more than that with some help to secure all the funds and compensate every party that has been harmed. We prepared an immediate action plan and have been working on the implementation to secure all the funds, the future deposits and rebuild a more secure, trustless & improved version of our protocol.

Hopefully, the worst days have passed and we will focus on improving our core product. Sincerely, I believe there will be some good outcomes of this incident, as we learned our lesson and got rid of some people that could create more harm in the future. I see the hopes of the core team members are high and I believe in them.

--

--