китаев.tech

Что такое 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 умеет хранить программы. Они называются смарт-контрактами:

solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

contract Counter {
    uint256 public value;

    function increment() public {
        value++;
    }
}

После деплоя в сеть контракт получает постоянный адрес. Его код нельзя удалить или изменить — любой желающий может вызвать его функции в любой момент.


Как обращаться к сети

Вместо REST API Ethereum использует RPC — специальный интерфейс для чтения данных и отправки транзакций. Логика та же: отправляете запрос, получаете ответ.

Пример — читаем баланс любого адреса:

typescript
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: здесь не существует токенов авторизации или сессий. Ваша личность — это криптографический ключ.


Что дальше

Материалы китаev.tech публикуются в образовательных целях и не являются инвестиционной рекомендацией. Примеры кода и описания протоколов — для обучения; использование в продакшне на ваш собственный риск. Дисклеймер и политика конфиденциальности.