DEV Community

Cover image for 🦊 Блокчейн и смарт-контракты: как лисички научились честно менять орешки 💰
Olga Lugacheva
Olga Lugacheva

Posted on

🦊 Блокчейн и смарт-контракты: как лисички научились честно менять орешки 💰

🏗 Что такое блокчейн?

Представь, что у тебя есть деревня лис, и каждый лис любит менять орешки и ягоды.

📖 У лисов есть волшебный журнал — если кто-то обменял орешек на ягоду, все об этом записывают.

✅ НО! Записи нельзя подделать или стереть.
✅ Если один лис врёт — все остальные это видят и игнорируют обманщика.

📌 Это и есть блокчейн — честная система, где все сделки записаны и защищены.

💰 Как лисы используют блокчейн?

Лисёнок Рикки даёт 3 орешка Лисичке Лили.

Все лисы записывают: "Рикки → Лили: 3 орешка".
Запись навсегда остаётся в журнале (блокчейне).
Если кто-то попытается подделать журнал — другие лисы это заметят!
📌 Так работает блокчейн: честные сделки без обмана!

🤖 Что такое смарт-контракты?

Смарт-контракт — это умное правило, записанное в коде, которое выполняется автоматически.

Представь ларёк для лис:

Лис кладёт 2 орешка в коробку.
Если в коробке 2 орешка — он получает ягоду.
Если нет — ягоды не будет.
📌 Это и есть смарт-контракт — программа, которая проверяет условия и выполняет их сама.

🖥 Пример блокчейна с лисами на Java

Теперь давай создадим блокчейн, где лисы обменивают орешки, и добавим в него смарт-контракт, который проверяет сделки.

1️⃣ Создаём блокчейн

import java.util.ArrayList;
import java.util.List;

class Block {
    String transaction;
    int previousHash;
    int hash;

    public Block(String transaction, int previousHash) {
        this.transaction = transaction;
        this.previousHash = previousHash;
        this.hash = transaction.hashCode() + previousHash;  // Простая хеш-функция
    }
}

class Blockchain {
    List<Block> chain = new ArrayList<>();

    public Blockchain() {
        chain.add(new Block("Генезис-блок", 0));  // Первый блок
    }

    public void addTransaction(String transaction) {
        Block previousBlock = chain.get(chain.size() - 1);
        Block newBlock = new Block(transaction, previousBlock.hash);
        chain.add(newBlock);
    }

    public void printBlockchain() {
        for (Block block : chain) {
            System.out.println("Транзакция: " + block.transaction);
            System.out.println("Хеш блока: " + block.hash);
            System.out.println("Предыдущий хеш: " + block.previousHash);
            System.out.println("----------------------");
        }
    }
}

Enter fullscreen mode Exit fullscreen mode

2️⃣ Добавляем смарт-контракт

Теперь создадим смарт-контракт, который проверяет сделки лис.

class SmartContract {
    private int foxNuts;
    private int requiredNuts;

    public SmartContract(int foxNuts, int requiredNuts) {
        this.foxNuts = foxNuts;
        this.requiredNuts = requiredNuts;
    }

    public void executeContract() {
        if (foxNuts >= requiredNuts) {
            System.out.println("✅ Орехов хватает! Выдаю ягоду! 🍓");
        } else {
            System.out.println("❌ Орехов мало! Ягоды нет. 😢");
        }
    }
}
Enter fullscreen mode Exit fullscreen mode

3️⃣ Запускаем всю систему

Теперь мы объединяем блокчейн и смарт-контракты!

public class FoxBlockchain {
    public static void main(String[] args) {
        // Создаём блокчейн для лис
        Blockchain blockchain = new Blockchain();
        blockchain.addTransaction("🦊 Лисёнок Рикки → Лили: 3 орешка");
        blockchain.addTransaction("🦊 Лили → Бобби: 2 орешка");

        blockchain.printBlockchain();  // Выводим всю цепочку

        // Проверяем смарт-контракт
        SmartContract contract = new SmartContract(3, 2);  // У лиса 3 ореха, нужно 2
        contract.executeContract();  // Выполняем контракт
    }
}

Enter fullscreen mode Exit fullscreen mode

Вывод

✔ Блокчейн — это журнал записей, который никто не может подделать.
✔ Смарт-контракты — это автоматические правила, которые выполняются сами.
✔ Теперь лисы не ссорятся, ведь все записи честные! 🦊✨

Top comments (0)