Что такое Ethereum для разработчика
Ethereum с точки зрения разработчика: как устроена сеть, что такое State и смарт-контракты, и как читать данные через RPC.
Что такое Ethereum
Ethereum — это сеть компьютеров, которые сообща выполняют один и тот же код и хранят одни и те же данные.
Представьте обычное мобильное приложение: интерфейс обращается к одному серверу, который является единственным источником данных. Ethereum устроен иначе — это сеть из тысяч серверов, и все они одновременно:
- хранят одну и ту же информацию
- выполняют один и тот же код
- приходят к одному результату
- ведут логи, которые нельзя изменить и которые доступны любому
State — что хранит Ethereum
В отличие от обычных систем, Ethereum хранит не файлы и записи, а состояния (State):
Баланс IVAN = 5 ETH
Баланс NIKITA = 2 ETH
Контракт Uniswap:
token0 = WETH
token1 = USDC
reserve0 = 1 450
reserve1 = 3 900 000Когда вы переводите средства, меняете токены или вызываете контракт — State меняется. Вся история этих изменений хранится вечно и публично.
Смарт-контракты — программы внутри сети
Помимо данных, Ethereum умеет хранить программы. Они называются смарт-контрактами:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
contract Counter {
uint256 public value;
function increment() public {
value++;
}
}После деплоя в сеть контракт получает постоянный адрес. Его код нельзя удалить или изменить — любой желающий может вызвать его функции в любой момент.
Как обращаться к сети
Вместо REST API Ethereum использует RPC — специальный интерфейс для чтения данных и отправки транзакций. Логика та же: отправляете запрос, получаете ответ.
Пример — читаем баланс любого адреса:
import { ethers } from "ethers";
// 1. Подключаемся к сети (аналог подключения к серверу)
const provider = new ethers.JsonRpcProvider(RPC_URL);
// 2. Отправляем запрос
const balance = await provider.getBalance(address);
// 3. Получаем ответ в читаемом виде
console.log(ethers.formatEther(balance)); // "12.57"Любое чтение данных из Ethereum выглядит именно так. Авторизация не нужна — данные публичны и доступны без ограничений.
Чтение vs Запись
В Ethereum есть чёткое разделение:
| Действие | Что нужно | Стоимость |
|---|---|---|
| Читать данные | Только RPC-провайдер | Бесплатно |
| Изменить State | Подписанная транзакция | Gas (комиссия сети) |
Если нужно изменить данные — перевести ETH, обменять токены, вызвать функцию контракта — потребуется цифровая подпись. Она доказывает, что именно вы являетесь владельцем кошелька, и без неё сеть отклонит запрос.
Это ключевое отличие от обычного API: здесь не существует токенов авторизации или сессий. Ваша личность — это криптографический ключ.
Что дальше
- EOA vs Contract Account — два типа аккаунтов в Ethereum и чем они отличаются
- Провайдер vs Сайнер — как подключиться к сети для чтения и для записи
- Как работает транзакция изнутри — что происходит между отправкой и подтверждением