Skip to content

Commit

Permalink
Add new topics
Browse files Browse the repository at this point in the history
  • Loading branch information
Dianaaiym committed Nov 13, 2024
1 parent 74f7bdb commit 9d31273
Show file tree
Hide file tree
Showing 20 changed files with 282 additions and 0 deletions.
16 changes: 16 additions & 0 deletions src/edu/en/ethereum/dapps/are-dapps-censorable.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Are dApps Censorable?

While dApps are designed to be censorship-resistant, in practice, censorship is more nuanced.

Once a smart contract is deployed on Ethereum, it operates independently and cannot be restricted by any single entity. However, censorship can still occur at certain access points:

- Most users access dApps through websites, which can be taken down, blocked, or geo-restricted.
- Webiste domain names can be seized, or DNS access blocked.
- Website interfaces can be modified to prevent certain interactions.

However, even if a main dApp website is censored, users still have options:

- The smart contract remains fully functional on the blockchain.
- Alternative websites can provide access to the dApp.
- Users can interact directly with the contract through blockchain tools like block explorers.
- Tech-savvy users can access the dApp’s full functionality independently.
26 changes: 26 additions & 0 deletions src/edu/en/ethereum/dapps/building-with-dapps.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Building with dApps

One of Ethereum’s most powerful features is **composability**—dApps can work together like building blocks, much like LEGO pieces that can be combined in endless ways:

- A gaming dApp can use a marketplace dApp for trading items.
- A lending dApp can use currency price feeds from another dApp.
- Multiple dApps can be integrated together to create entirely new services.

This composability allows complex transactions that can interact with multiple dApps in a single execution, which isn’t possible on simpler blockchains like Bitcoin.

For example, a user could perform a series of actions in one transaction:

1. Borrow 1,000 USDT from a lending dApp.
2. Use the USDT to buy ETH on a DEX (decentralized exchange).
3. Swap the ETH for a different token on another DEX (decentralized exchange).
4. Repay the 1,000 USDT loan.
5. Keep the remaining balance as profit.

All steps occur atomically—meaning they either all succeed or fail together. While powerful, complex multi-dApp transactions require more resources and result in higher transaction fees, which can reach $500 or more during peak network activity.

In addition to blockchain transaction fees, dApps may charge their own fees for specific actions. For example, when swapping tokens on a DEX like Uniswap, you pay:

1. The transaction fee (gas fee) to Ethereum network validators.
2. A 0.3% trading fee that goes to Uniswap’s smart contract.

These fees may be designed to support the dApp’s protocol. In case of DEXes fees typically reward liquidity providers. It changes from dApp to dApp, based on how it was built.
20 changes: 20 additions & 0 deletions src/edu/en/ethereum/dapps/censorship-in-smart-contracts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Censorship in Smart Contracts

While smart contracts themselves are generally resistant to censorship, certain design choices introduced by smart contract builders can introduce control points. Infact, the dApp may be deliberately built to be restrictive from the very beginning. Nothing prevents people from building any kind of dApp they want.

**Contract Design Choices**:

- There are many smart contracts that include restrictions, such as blacklisting features.
- Some contracts have admin users allowing certain addresses to manage functionality.
- Some stablecoin token contracts (e.g., USDT) have functions to freeze accounts.
- Some contracts can allow developers to modify or pause the contract behavior after deployment.

True censorship resistance in a dApp usually requires:

- No admin users or minimal administrative control.
- Limited or no upgradeability.
- Fully autonomous operations.
- Decentralized hosting of the website.
- Multiple access points for users.

Understanding these aspects can help users assess the true censorship resistance of any dApp they wish to use.
23 changes: 23 additions & 0 deletions src/edu/en/ethereum/dapps/daos.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# DAOs

Decentralized Autonomous Organizations (DAOs) represent one of Ethereum's most innovative applications, demonstrating how blockchain technology can transform traditional organizational structures.

A DAO is an organization (a virtual one) that runs on rules encoded in smart contracts, eliminating the need for traditional management hierarchies. Many dApps operate in a from of a DAO.

Typically, DAOs operate through governance tokens (implemented as ERC20 tokens) that grant voting rights to members.

These tokens can typically be:

- Bought and sold on exchanges
- Acquired through contribution to the project

When decisions need to be made - whether about treasury spending, or strategic directions - token holders can vote on proposals. All votes are recorded on the blockchain, and approved decisions execute automatically through smart contracts.

Notable examples in practice:

- Uniswap: UNI token holders vote on protocol changes and fee structures
- MakerDAO: MKR holders govern the DAI stablecoin.

DAOs demonstrate Ethereum's potential for true decentralization. With no central authority, rules enforced by code rather than individuals, and community ownership, DAOs can operate continuously and transparently as long as Ethereum exists.

As the technology matures, DAOs are becoming more user-friendly and efficient, while working to address legal compliance and integration with traditional systems. They represent a fundamental shift in organizational structure, removing the need for trusted intermediaries in complex organizational processes.
20 changes: 20 additions & 0 deletions src/edu/en/ethereum/dapps/interacting-with-dapps.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Interacting with dApps

Most Ethereum wallet apps are designed for basic functions like storing, sending, and receiving ETH and ERC-20 tokens, but they don’t inherently support direct interaction with dApps. **WalletConnect** is a protocol that bridges this gap, allowing non-custodial wallets to connect and interact with any dApp on Ethereum.

For WalletConnect to work, both the wallet and dApp need to support it. Here’s how it works in practice:

1. **Initiating Connection**:
- The user visits a dApp’s website, clicks “Connect Wallet,” and selects WalletConnect.
- A QR code appears (or a link activates if using a mobile device).

2. **Establishing Connection**:
- The user scans the QR code with their wallet app or clicks the link.
- The wallet app displays the connection request details.

3. **Ongoing Interaction**:
- After connection is stablsihed the user appears “logged in” into the dApp.
- One every action, the dApp requests transaction approvals, which appear in the wallet app.
- The user reviews and approves or rejects transactions directly from their wallet.

WalletConnect provides enhanced security by keeping private keys within the wallet and eliminates the need to enter sensitive information on dApp websites. More importantly, it enables user to use their mobile wallet to interact with any dApp on Ethereum blockchain.
16 changes: 16 additions & 0 deletions src/edu/en/ethereum/dapps/what-the-dapps.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# What are dApps?

Decentralized applications (dApps) are programs built on the Ethereum blockchain using smart contracts. A dApp can consist of one or more smart contracts working together to provide its features. Once a smart contract is deployed, its code is immutable—meaning it can’t be changed. This immutability ensures that a dApp will continue to operate exactly as initially programmed, giving users confidence in its reliability.

The term **"trustless"** means users don’t need to trust any individual or organization to use the application; they only need to trust the code, which is visible and verifiable on the blockchain. Anyone can review exactly how a dApp functions by examining its smart contract code.

dApps operate based on how their smart contracts are programmed:

- Some are fully autonomous, running without any central authority.
- Others have administrative features, giving specific addresses the ability to manage aspects of the dApp.
- The level of decentralization depends on design choices made by the dApp developers.

Common types of dApps include:

- **Decentralized Exchanges (DEXs)**: Such as Uniswap, where users can trade cryptocurrencies directly.
- **Lending Platforms**: Like Aave, where users can lend or borrow crypto assets.
16 changes: 16 additions & 0 deletions src/edu/ru/ethereum/dapps/are-dapps-censorable.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Are dApps Censorable?

While dApps are designed to be censorship-resistant, in practice, censorship is more nuanced.

Once a smart contract is deployed on Ethereum, it operates independently and cannot be restricted by any single entity. However, censorship can still occur at certain access points:

- Most users access dApps through websites, which can be taken down, blocked, or geo-restricted.
- Webiste domain names can be seized, or DNS access blocked.
- Website interfaces can be modified to prevent certain interactions.

However, even if a main dApp website is censored, users still have options:

- The smart contract remains fully functional on the blockchain.
- Alternative websites can provide access to the dApp.
- Users can interact directly with the contract through blockchain tools like block explorers.
- Tech-savvy users can access the dApp’s full functionality independently.
26 changes: 26 additions & 0 deletions src/edu/ru/ethereum/dapps/building-with-dapps.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Building with dApps

One of Ethereum’s most powerful features is **composability**—dApps can work together like building blocks, much like LEGO pieces that can be combined in endless ways:

- A gaming dApp can use a marketplace dApp for trading items.
- A lending dApp can use currency price feeds from another dApp.
- Multiple dApps can be integrated together to create entirely new services.

This composability allows complex transactions that can interact with multiple dApps in a single execution, which isn’t possible on simpler blockchains like Bitcoin.

For example, a user could perform a series of actions in one transaction:

1. Borrow 1,000 USDT from a lending dApp.
2. Use the USDT to buy ETH on a DEX (decentralized exchange).
3. Swap the ETH for a different token on another DEX (decentralized exchange).
4. Repay the 1,000 USDT loan.
5. Keep the remaining balance as profit.

All steps occur atomically—meaning they either all succeed or fail together. While powerful, complex multi-dApp transactions require more resources and result in higher transaction fees, which can reach $500 or more during peak network activity.

In addition to blockchain transaction fees, dApps may charge their own fees for specific actions. For example, when swapping tokens on a DEX like Uniswap, you pay:

1. The transaction fee (gas fee) to Ethereum network validators.
2. A 0.3% trading fee that goes to Uniswap’s smart contract.

These fees may be designed to support the dApp’s protocol. In case of DEXes fees typically reward liquidity providers. It changes from dApp to dApp, based on how it was built.
20 changes: 20 additions & 0 deletions src/edu/ru/ethereum/dapps/censorship-in-smart-contracts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Censorship in Smart Contracts

While smart contracts themselves are generally resistant to censorship, certain design choices introduced by smart contract builders can introduce control points. Infact, the dApp may be deliberately built to be restrictive from the very beginning. Nothing prevents people from building any kind of dApp they want.

**Contract Design Choices**:

- There are many smart contracts that include restrictions, such as blacklisting features.
- Some contracts have admin users allowing certain addresses to manage functionality.
- Some stablecoin token contracts (e.g., USDT) have functions to freeze accounts.
- Some contracts can allow developers to modify or pause the contract behavior after deployment.

True censorship resistance in a dApp usually requires:

- No admin users or minimal administrative control.
- Limited or no upgradeability.
- Fully autonomous operations.
- Decentralized hosting of the website.
- Multiple access points for users.

Understanding these aspects can help users assess the true censorship resistance of any dApp they wish to use.
23 changes: 23 additions & 0 deletions src/edu/ru/ethereum/dapps/daos.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# DAOs

Decentralized Autonomous Organizations (DAOs) represent one of Ethereum's most innovative applications, demonstrating how blockchain technology can transform traditional organizational structures.

A DAO is an organization (a virtual one) that runs on rules encoded in smart contracts, eliminating the need for traditional management hierarchies. Many dApps operate in a from of a DAO.

Typically, DAOs operate through governance tokens (implemented as ERC20 tokens) that grant voting rights to members.

These tokens can typically be:

- Bought and sold on exchanges
- Acquired through contribution to the project

When decisions need to be made - whether about treasury spending, or strategic directions - token holders can vote on proposals. All votes are recorded on the blockchain, and approved decisions execute automatically through smart contracts.

Notable examples in practice:

- Uniswap: UNI token holders vote on protocol changes and fee structures
- MakerDAO: MKR holders govern the DAI stablecoin.

DAOs demonstrate Ethereum's potential for true decentralization. With no central authority, rules enforced by code rather than individuals, and community ownership, DAOs can operate continuously and transparently as long as Ethereum exists.

As the technology matures, DAOs are becoming more user-friendly and efficient, while working to address legal compliance and integration with traditional systems. They represent a fundamental shift in organizational structure, removing the need for trusted intermediaries in complex organizational processes.
20 changes: 20 additions & 0 deletions src/edu/ru/ethereum/dapps/interacting-with-dapps.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Interacting with dApps

Most Ethereum wallet apps are designed for basic functions like storing, sending, and receiving ETH and ERC-20 tokens, but they don’t inherently support direct interaction with dApps. **WalletConnect** is a protocol that bridges this gap, allowing non-custodial wallets to connect and interact with any dApp on Ethereum.

For WalletConnect to work, both the wallet and dApp need to support it. Here’s how it works in practice:

1. **Initiating Connection**:
- The user visits a dApp’s website, clicks “Connect Wallet,” and selects WalletConnect.
- A QR code appears (or a link activates if using a mobile device).

2. **Establishing Connection**:
- The user scans the QR code with their wallet app or clicks the link.
- The wallet app displays the connection request details.

3. **Ongoing Interaction**:
- After connection is stablsihed the user appears “logged in” into the dApp.
- One every action, the dApp requests transaction approvals, which appear in the wallet app.
- The user reviews and approves or rejects transactions directly from their wallet.

WalletConnect provides enhanced security by keeping private keys within the wallet and eliminates the need to enter sensitive information on dApp websites. More importantly, it enables user to use their mobile wallet to interact with any dApp on Ethereum blockchain.
16 changes: 16 additions & 0 deletions src/edu/ru/ethereum/dapps/what-the-dapps.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# What are dApps?

Decentralized applications (dApps) are programs built on the Ethereum blockchain using smart contracts. A dApp can consist of one or more smart contracts working together to provide its features. Once a smart contract is deployed, its code is immutable—meaning it can’t be changed. This immutability ensures that a dApp will continue to operate exactly as initially programmed, giving users confidence in its reliability.

The term **"trustless"** means users don’t need to trust any individual or organization to use the application; they only need to trust the code, which is visible and verifiable on the blockchain. Anyone can review exactly how a dApp functions by examining its smart contract code.

dApps operate based on how their smart contracts are programmed:

- Some are fully autonomous, running without any central authority.
- Others have administrative features, giving specific addresses the ability to manage aspects of the dApp.
- The level of decentralization depends on design choices made by the dApp developers.

Common types of dApps include:

- **Decentralized Exchanges (DEXs)**: Such as Uniswap, where users can trade cryptocurrencies directly.
- **Lending Platforms**: Like Aave, where users can lend or borrow crypto assets.
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Cancelling/Speeding Up Transactions

Ethereum allows users to manage pending transactions by either speeding them up or canceling them. Both of these options rely on using the **same nonce**, a unique counter for each transaction coming from your wallet:

**Speeding Up:** If a transaction is taking too long, you can speed it up by sending a new, identical transaction with a higher gas price. Since both transactions share the same nonce, the network will prioritize the faster one with the higher fee.

**Cancelling:** To cancel a transaction, you can send a new transaction with the same nonce, usually to yourself, with a higher gas price and no meaningful action (such as sending 0 ETH to your own address). This replaces the pending transaction, effectively canceling it.

The **nonce** isn’t a unique transaction ID like the ones shown in blockchain explorers; rather, it’s a counter for each transaction from a specific wallet. The first transaction you send has a nonce of 0, the next is 1, and so on. By reusing the same nonce, you can replace or cancel a pending transaction before it is confirmed.

Not all wallets support these features, so it’s good to check if yours allows for speeding up or canceling transactions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Complexity of Transactions

Not all transactions on Ethereum are alike. Some are straightforward, like sending ETH from one address to another, which involves just a single step.

However, many transactions are more complex, especially those that involve interaction with decentralized apps (dApps) or smart contracts. For example, if you’re using a decentralized exchange (DEX) to swap tokens, a single transaction can trigger multiple steps—each managed automatically by Ethereum. Although complex behind the scenes, these actions are presented as one transaction to users, with Ethereum handling all steps in the background.

More complex transactions take more computational resources on the side of validators and therefore more expensive to process. For instance a transaction, that may involve using some storage space on blockchain or perform extensive computation will be very expensive.
Loading

0 comments on commit 9d31273

Please sign in to comment.