-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Added Restaking page in usecases #15400
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
YashIIT0909
wants to merge
38
commits into
ethereum:dev
Choose a base branch
from
YashIIT0909:restaking/Yash
base: dev
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
38 commits
Select commit
Hold shift + click to select a range
cf6b94c
Added Restaking page in usecases
YashIIT0909 4aa22e5
Merge branch 'dev' into restaking/Yash
YashIIT0909 df89c86
Update UseCases.tsx
YashIIT0909 770dff7
updated Usecases.tsx
YashIIT0909 8277cce
updated UseCases.tsx
YashIIT0909 ec3ebbe
Merge branch
YashIIT0909 d345c9c
updated UseCases.tsx
YashIIT0909 82e1f00
Fixed line-height
YashIIT0909 c1f3be6
Merge branch 'ethereum:dev' into restaking/Yash
YashIIT0909 83474f3
Delete yarn.lock
YashIIT0909 d53a2b3
yarn.lock file changed
YashIIT0909 926dae1
deleted files
YashIIT0909 892ecb7
refactor: apply repo filename conventions
wackerow 927323a
Merge branch 'dev' into pr/YashIIT0909/15400
wackerow 5c2451b
chore: move to end of dropdown
wackerow 7370f93
fix: image paths; import static image data
wackerow a3ca639
chore: title case headers
wackerow a361574
Merge branch 'dev' into restaking/Yash
YashIIT0909 d4112dd
Update public/content/restaking/index.md
konopkja 00e802b
Update public/content/restaking/index.md
konopkja e874fe3
Update public/content/restaking/index.md
konopkja 761bb49
Update public/content/restaking/index.md
konopkja ec5901a
Update public/content/restaking/index.md
konopkja 98882a9
Update public/content/restaking/index.md
konopkja 6793896
Update public/content/restaking/index.md
konopkja a9d260f
Update public/content/restaking/index.md
konopkja 9ae1acc
Update public/content/restaking/index.md
konopkja 2990e3d
Update public/content/restaking/index.md
konopkja 4018846
Update public/content/restaking/index.md
konopkja 3b51e3f
Update public/content/restaking/index.md
konopkja 26386c8
Update public/content/restaking/index.md
konopkja 57b8805
Update public/content/restaking/index.md
konopkja 8d78f91
Update public/content/restaking/index.md
konopkja 6d0ee23
Update public/content/restaking/index.md
konopkja c3fa4c5
Update public/content/restaking/index.md
konopkja 19b9a69
Update public/content/restaking/index.md
konopkja adbecc7
Update public/content/restaking/index.md
konopkja ce8e42d
Update public/content/restaking/index.md
konopkja File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,188 @@ | ||
--- | ||
title: Restaking | ||
metaTitle: What is restaking? | Benefits and use of restaking | ||
description: Use staked ETH to secure other decentralized services and earn extra rewards. | ||
lang: en | ||
template: use-cases | ||
emoji: ":recycle:" | ||
image: /images/use-cases/restaking.png | ||
alt: A visual representation of restaking on Ethereum. | ||
sidebarDepth: 2 | ||
summaryPoint1: Use staked ETH to secure other decentralized services and earn extra rewards. | ||
buttons: | ||
- content: What is restaking? | ||
toId: what-is-restaking | ||
- content: How does it work? | ||
toId: how-does-restaking-work | ||
isSecondary: false | ||
--- | ||
|
||
The Ethereum network secures billions of dollars of value 24/7, 365. How? | ||
|
||
People all over the world lock away (or “stake”) [ether (ETH)](/eth/) in smart contracts to run the software that processes Ethereum transactions and secures the Ethereum network. In return, they get rewarded with more ETH. | ||
|
||
Restaking is a technology built for [stakers](/staking/) to extend this security to other services, applications, or networks. In return, they earn additional restaking rewards. However, they also put their staked ETH at more risk. | ||
|
||
**Restaking explained in 7 minutes** | ||
|
||
<YouTube id="5r0SooSQFJg" /> | ||
|
||
## What is restaking? {#what-is-restaking} | ||
|
||
Restaking is when stakers use their already-staked ETH to secure other decentralized services. In return, restakers can get additional rewards from those other services on top of their regular ETH staking rewards. | ||
|
||
The decentralized services secured by restaking are known as "Actively Validated Services" (AVSs). | ||
In the same way that many ETH stakers run Ethereum validation software, many restakers run specialized AVS software. | ||
|
||
<br/> | ||
<InfoBanner shouldSpaceBetween emoji=":bulb:"> | ||
<div> | ||
<strong>Good to know</strong><br /> | ||
While "Actively Validated Services" (AVSs) is the most common, different restaking platforms may use other names for the decentralized services they help secure, like "Autonomously Validated Services," "Distributed Secure Services," or "Networks." | ||
</div> | ||
</InfoBanner> | ||
|
||
## Staking vs restaking {#staking-vs-restaking} | ||
|
||
| Staking | Restaking | | ||
| ------------------------------ | ------------------------------------------------- | | ||
| Earn ETH rewards | Earn ETH Rewards + AVS rewards | | ||
| Secures the Ethereum network | Secures the Ethereum network + AVSs | | ||
| No minimum ETH | No minimum ETH | | ||
| Low risk level | Low-to-medium risk level | | ||
| Withdraw time depends on queue | Withdraw time depends on queue + unbonding period | | ||
|
||
## Why do we need restaking? {#why-do-we-need-restaking} | ||
|
||
Picture two worlds; one with restaking and one without. | ||
|
||
<TabbedSection /> | ||
|
||
In this world with restaking, both the AVS and staker benefit from being able to find each other and trade security for extra rewards. | ||
|
||
<br/> | ||
|
||
<InfoBanner shouldSpaceBetween emoji=":bulb:"> | ||
<div> | ||
<strong>Added benefit of restaking</strong><br /> | ||
AVSs can pour all their resources into building and marketing their services, instead of getting distracted with decentralization and security. | ||
</div> | ||
</InfoBanner> | ||
|
||
## How does restaking work? {#how-does-restaking-work} | ||
|
||
There are several entities involved in restaking — each one of them plays an important part. | ||
|
||
| **Term** | **Description** | | ||
| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ||
| **Restaking platforms** | A restaking platform is a service that connects AVSs, ETH stakers, and operators. They build decentralized applications for stakers to restake their ETH, and marketplaces where stakers, AVSs, and operators can find each other. | | ||
| **Native restakers** | People who stake their ETH by running their own Ethereum validators can connect their staked ETH to a restaking platform, including EigenLayer and others, to earn restaking rewards on top of ETH validator rewards. | ||
| | ||
| **Liquid restakers** | People who stake their ETH via a third-party liquid staking provider, like Lido or Rocket Pool, get Liquid Staking Tokens (LSTs) that represent their staked ETH. They can restake these LSTs to earn restaking rewards while keeping their original ETH staked. | ||
| | ||
| **Operators** | Operators run the AVSs' restaking software, performing the validation tasks each AVS requires. Operators are usually professional service providers that guarantee things like uptime and performance. Like non-operator restakers, operators use staked ETH to secure AVSs, but operators also receive extra rewards in exchange for their work. | ||
| | ||
| **AVSs** | These are the decentralized services — like price oracles, token bridges, and data systems — that receive security from restakers and offer token rewards in return. | | ||
|
||
<br/> | ||
|
||
<InfoBanner shouldSpaceBetween emoji=":bulb:"> | ||
<div> | ||
<strong>Good to know</strong><br /> | ||
Native and liquid restakers often delegate their staked ETH to an operator, instead of running the software to secure AVSs themselves.<br /> | ||
This way they don’t need to worry about complicated technical requirements from AVSs, though they receive a lower reward rate than operators. | ||
</div> | ||
</InfoBanner> | ||
|
||
## What are some examples of restaking? {#what-are-some-examples-of-restaking} | ||
|
||
While a novel idea, a few projects have emerged to explore the possibilities of restaking. | ||
|
||
<EigenLayer/> | ||
|
||
<CardGrid className="grid grid-cols-[repeat(auto-fill,_minmax(min(100%,_280px),_1fr))] gap-8"> | ||
<Card title="EigenPods" emoji=":money_with_wings:" > | ||
A set of smart contracts that let ETH validators connect their staked ETH to EigenLayer's restaking system. | ||
</Card> | ||
|
||
<Card title="Marketplace" emoji=":earth_africa:" > | ||
Making it easy for AVSs to find operators and stakers that meet their requirements, and vice versa. | ||
</Card> | ||
|
||
<Card title="Tooling" emoji=":hammer_and_wrench:" > | ||
Developer libraries, documentation and codebases to integrate with and build DeFi protocols on top of EigenLayer. | ||
</Card> | ||
</CardGrid> | ||
|
||
## Other examples {#other-examples} | ||
|
||
<RestakingList/> | ||
|
||
<br/> | ||
|
||
<InfoBanner shouldSpaceBetween emoji=":bulb:" isWarning> | ||
<div> | ||
<strong>Misnomer alert</strong><br /> | ||
Some people confuse “restaking” with lending and borrowing LSTs in DeFi. Both put staked ETH to work, but restaking means securing AVSs, not just earning yield on LSTs. | ||
</div> | ||
</InfoBanner> | ||
|
||
## How much can I make from restaking? {#how-much-can-i-make-from-restaking} | ||
|
||
While AVSs offer different rates, Liquid Restaking Tokens (LRTs) like eETH give you an idea of how much you can make. In the same way you get LSTs like stETH for staking your ETH, you can get LRTs like eETH for restaking stETH. These tokens earn ETH staking and restaking rewards. | ||
|
||
**It’s important to acknowledge the risks with restaking. The potential rewards can be attractive, but they’re not risk free.** | ||
|
||
## What are the risks of restaking? {#what-are-the-risks-of-restaking} | ||
|
||
To truly appreciate the impact of Ethereum payments, it's worth comparing them to traditional fiat currencies: | ||
|
||
| **Risks** | **Description** | **Risk level** | | ||
| ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | | ||
| **Penalties (or “slashing”)** | Like ETH staking, if restakers/operators go offline, censor messages or try to corrupt the network, their stake can be slashed (burned) partially or entirely. | LOW | | ||
| **Centralization** | If few operators dominate most of the restaking they could have a great influence on restakers, AVSs and even restaking platforms. | LOW | | ||
| **Chain reactions** | If a restaker gets slashed while securing multiple AVSs, this could lower the security for the other AVSs, making them vulnerable. | LOW/MEDIUM | | ||
| **Immediate access to funds** | There is a wait time (or “unbonding period”) for withdrawing restaked ETH so you may not always have access immediately. | LOW/MEDIUM | | ||
|
||
<br/> | ||
|
||
<InfoBanner shouldSpaceBetween emoji=":bulb:"> | ||
<div> | ||
<p><strong>The Ethereum co-founder is typing…</strong></p> | ||
<p> | ||
Vitalik, the co-founder of Ethereum, warned about the potential risks of restaking in a 2021 blog post called <a href = "https://vitalik.eth.limo/general/2023/05/21/dont_overload.html"> Don't Overload Consensus. </a> | ||
</p> | ||
</div> | ||
</InfoBanner> | ||
|
||
## How to get started with restaking? {#how-to-get-started-with-restaking} | ||
|
||
| 🫡 Beginners | 🤓 Advanced Users | | ||
| --------------------------------------------------------------- | ------------------------------------------------------------------------------------- | | ||
| 1. Stake ETH on platforms like Lido or Rocket Pool to get LSTs. | 1. Stake your ETH as a validator on Ethereum. | | ||
| 2. Use those LSTs to start restaking on EigenLayer. | 2. Compare restaking services like EigenLayer, Symbiotic and others. | | ||
| | 3. Follow the instructions to connect your validator to the restaking smart contract. | | ||
|
||
<br/> | ||
|
||
<InfoBanner shouldSpaceBetween emoji=":eyes:"> | ||
<div><strong>Ethereum Staking :</strong> How does it work?</div> | ||
<ButtonLink href="/staking/"> | ||
Learn More | ||
</ButtonLink> | ||
</InfoBanner> | ||
|
||
## Advanced {#advanced} | ||
|
||
<YouTube id="-V-fG4J1N_M" /> | ||
Comment on lines
+175
to
+177
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We should have at least some content here 🙏 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. maybe we can remove this so that there is less focus on eigen |
||
|
||
## Further reading {#further-reading} | ||
|
||
1. [ethereum.org - ETH staking guide](https://ethereum.org/en/staking/) | ||
2. [Ledger Academy - What Is Ethereum Restaking?](https://www.ledger.com/academy/what-is-ethereum-restaking) | ||
3. [Consensys - EigenLayer: Decentralized Ethereum Restaking Protocol Explained](https://consensys.io/blog/eigenlayer-decentralized-ethereum-restaking-protocol-explained) | ||
4. [Vitalik Buterin - Don't overload Ethereum's consensus](https://vitalik.eth.limo/general/2023/05/21/dont_overload.html) | ||
5. [Cointelegraph - What is EigenLayer? Ethereum’s restaking protocol explained](https://cointelegraph.com/explained/what-is-eigenlayer-ethereums-restaking-protocol-explained) | ||
6. [a16z crypto research - EigenLayer: Permissionless Feature Addition to Ethereum with Sreeram Kannan](https://www.youtube.com/watch?v=-V-fG4J1N_M) | ||
7. [Junion - EigenLayer Explained: What is Restaking?](https://www.youtube.com/watch?v=5r0SooSQFJg) | ||
8. [The Block - Restaking Data Dash](https://www.theblock.co/data/decentralized-finance/restaking) |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
import ProductListComponent from "@/components/ProductList" | ||
import { ButtonLink } from "@/components/ui/buttons/Button" | ||
|
||
import eigenLayer from "@/public/images/eigen-layer-logo.png" | ||
import lido from "@/public/images/use-cases/lido-logo.png" | ||
import obol from "@/public/images/use-cases/obol-logo.png" | ||
import omni from "@/public/images/use-cases/omni-logo.png" | ||
import symbiotic from "@/public/images/use-cases/symbiotic-logo.png" | ||
|
||
export const RestakingList = () => { | ||
const productListSets = [ | ||
{ | ||
title: "Symbiotic (Restaking platform)", | ||
description: "", | ||
image: symbiotic, | ||
alt: "Symbiotic logo", | ||
contentItems: [ | ||
<p key="symbiotic-description"> | ||
Symbiotic is a permissionless restaking protocol that helps secure | ||
different blockchain networks by letting users “restake” their assets. | ||
</p>, | ||
<div key="symbiotic-button"> | ||
<ButtonLink href="https://symbiotic.fi/" variant="outline"> | ||
Visit Symbiotic | ||
</ButtonLink> | ||
</div>, | ||
], | ||
}, | ||
{ | ||
title: "Omni Network (AVS)", | ||
description: "", | ||
image: omni, | ||
alt: "Omni logo", | ||
contentItems: [ | ||
<p key="omni-description"> | ||
Omni Network is an AVS that uses EigenLayer to secure messaging | ||
between Ethereum and other blockchains. Operators guarantee delivery | ||
of these messages in return for OMNI tokens. | ||
</p>, | ||
<div key="omni-button"> | ||
<ButtonLink href="https://omni.network/" variant="outline"> | ||
Visit Omni | ||
</ButtonLink> | ||
</div>, | ||
], | ||
}, | ||
{ | ||
title: "Obol Network (Operator)", | ||
description: "", | ||
image: obol, | ||
alt: "Obol logo", | ||
contentItems: [ | ||
<p key="obol-description"> | ||
Obol Network is an EigenLayer operator. They use a unique set up that | ||
splits the work from an AVS across multiple operators, improving | ||
stability and reducing the chance of issues like downtime. | ||
</p>, | ||
<div key="omni-button"> | ||
<ButtonLink href="https://obol.org/" variant="outline"> | ||
Visit Obol | ||
</ButtonLink> | ||
</div>, | ||
], | ||
}, | ||
{ | ||
title: "Lido (LSP)", | ||
description: "", | ||
image: lido, | ||
alt: "Lido logo", | ||
contentItems: [ | ||
<p key="lido-description"> | ||
Lido is a Liquid Staking Protocol (LSP) on Ethereum that lets people | ||
use their ETH while staking it on Ethereum. Users who stake ETH | ||
through Lido receive stETH tokens, that they can use for restaking and | ||
DeFi lending. | ||
</p>, | ||
<div key="lido-button"> | ||
<ButtonLink href="https://lido.fi/" variant="outline"> | ||
Visit Lido | ||
</ButtonLink> | ||
</div>, | ||
], | ||
}, | ||
] | ||
|
||
return <ProductListComponent content={productListSets} actionLabel="Go" /> | ||
} | ||
|
||
export const EigenLayer = () => { | ||
const productListSets = [ | ||
{ | ||
title: "EigenLayer (Restaking Platform)", | ||
description: "", | ||
image: eigenLayer, | ||
alt: "eigen layer logo", | ||
contentItems: [ | ||
<p key="symbiotic-description"> | ||
EigenLayer introduced the idea of restaking in 2023 and has grown to | ||
thousands of people restaking millions of ETH. Referred to as | ||
“Ethereum middleware”, it connects stakers, operators and AVSs.{" "} | ||
</p>, | ||
<div key="symbiotic-button"> | ||
<ButtonLink href="https://www.eigenlayer.xyz/" variant="outline"> | ||
Visit EigenLayer | ||
</ButtonLink> | ||
</div>, | ||
], | ||
}, | ||
] | ||
|
||
return <ProductListComponent content={productListSets} actionLabel="Go" /> | ||
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
"use client" | ||
|
||
import Image from "next/image" | ||
|
||
import type { ChildOnlyProp } from "@/lib/types" | ||
|
||
import { Center } from "@/components/ui/flex" | ||
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" | ||
|
||
import withRestakingDark from "@/public/images/use-cases/with-restaking-dark.png" | ||
import withRestakingLight from "@/public/images/use-cases/with-restaking-light.png" | ||
import withoutRestakingDark from "@/public/images/use-cases/without-restaking-dark.png" | ||
import withoutRestakingLight from "@/public/images/use-cases/without-restaking-light.png" | ||
|
||
const Width60 = (props: ChildOnlyProp) => ( | ||
<div className="w-full flex-[3]" {...props} /> | ||
) | ||
|
||
const Width40 = (props: ChildOnlyProp) => ( | ||
<Center className="w-full flex-[2]" {...props} /> | ||
) | ||
|
||
export default function TabbedSection() { | ||
return ( | ||
<> | ||
<Width60> | ||
<Tabs defaultValue="withRestaking" className="w-full max-w-4xl"> | ||
<TabsList className="mb-6 flex"> | ||
<TabsTrigger value="withRestaking"> | ||
A world with restaking | ||
</TabsTrigger> | ||
<TabsTrigger value="withoutRestaking"> | ||
A world without restaking | ||
</TabsTrigger> | ||
</TabsList> | ||
|
||
<TabsContent value="withRestaking"> | ||
<div className="flex justify-center"> | ||
{/* Light Mode Image */} | ||
<Image | ||
src={withRestakingLight} | ||
alt="Restaking diagram light mode" | ||
className="block dark:hidden" | ||
/> | ||
{/* Dark Mode Image */} | ||
<Image | ||
src={withRestakingDark} | ||
alt="Restaking diagram dark mode" | ||
className="hidden dark:block" | ||
/> | ||
</div> | ||
</TabsContent> | ||
|
||
<TabsContent value="withoutRestaking"> | ||
<div className="flex justify-center"> | ||
{/* Light Mode Image */} | ||
<Image | ||
src={withoutRestakingLight} | ||
alt="Restaking diagram light mode" | ||
className="block dark:hidden" | ||
/> | ||
{/* Dark Mode Image */} | ||
<Image | ||
src={withoutRestakingDark} | ||
alt="Restaking diagram dark mode" | ||
className="hidden dark:block" | ||
/> | ||
</div> | ||
</TabsContent> | ||
</Tabs> | ||
</Width60> | ||
<Width40 /> | ||
</> | ||
) | ||
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.