Skip to content
Published on

スマートコントラクト言語 2026 完全ガイド - Solidity 0.8・Vyper・Move (Aptos/Sui)・Cairo・Stylus (Arbitrum)・Fuel/Sway 徹底解説

Authors

プロローグ — 2026年、スマートコントラクトはどこで動いているか

ブロックチェーンは分散データベースだ。スマートコントラクトはその上で走る 決定的なプログラム である。すべてのノードが同じ入力から同じ出力を返さなければならないので、言語選択はすなわち合意モデル・ガスモデル・検証モデルを同時に選ぶことを意味する。

2026年5月現在、世界のスマートコントラクト TVL の およそ 60% が依然として Ethereum メインネット にあり、L2 を加えると EVM ファミリーが 約 80% になる。しかし非 EVM のシェアは急速に伸びた。Solana が約 7%、Aptos と Sui を合わせて約 4%、Cosmos が約 3%、新興の StarkNet と Fuel を合わせて約 2%。

だから 2026 年の新人コントラクトエンジニアはたいてい 三つの道 のどれかを選ぶ。

  • EVM の道 — Solidity 0.8.28 を学び、Foundry でテストする。最も大きな市場、最も多い監査会社、最も深いライブラリ。
  • Move の道 — Aptos Move または Sui Move でリソース型を学ぶ。オブジェクト中心モデル、並列実行。
  • Rust の道 — Solana Anchor、Stylus、CosmWasm、Sway、NEAR がすべて Rust 系列。一つの言語で複数のチェーンを使える。

本稿はそのすべての道を 一気通貫で 整理する。言語の特異点、ツールチェーン、セキュリティモデル、そして韓国・日本の Web3 のリアルまで。


1章 · EVM の覇権 — Ethereum と L2 の風景

数字から。2026年5月現在の EVM チェーン TVL を整理するとこうなる。

  • Ethereum メインネット: 約 800 億ドル
  • Arbitrum One: 約 180 億ドル
  • Base (Coinbase L2): 約 150 億ドル
  • OP Mainnet: 約 90 億ドル
  • Polygon PoS + zkEVM: 約 60 億ドル
  • BNB Chain: 約 50 億ドル
  • Linea、Scroll、zkSync Era など: 各 10 億ドル台

evm-version を Cancun または Prague に合わせてコンパイルすれば、ほぼすべての L2 でそのまま動く。一度書いた Solidity コードは Ethereum、Arbitrum、Base、OP、Polygon、BNB Chain、Linea、Scroll、zkSync、Mantle、Blast、Mode、Zora、Avalanche C-Chain、Fantom Sonic、Celo L2、Hedera EVM、Astar zkEVM で ほぼそのまま 動作する。

これが EVM の本当の力だ。一度よく書けば 17 チェーンで動く。


2章 · Solidity 0.8.28 — 事実上の標準、しかし変わりつつある

Solidity は 2014 年に Gavin Wood が発表して以来 12 年間、Ethereum のデフォルト言語だ。2026 年 5 月時点の最新は 0.8.28。その間の大きな変化をざっと整理しよう。

  • 0.8.0 (2020) — 算術オーバーフローがデフォルトで revert。SafeMath 時代の終焉。
  • 0.8.4 (2021) — Custom errorsrequire(cond, "string") よりもガス節約。
  • 0.8.18 (2023) — コンパイラオプションで named arguments を有効化。
  • 0.8.24 (2024) — EIP-1153 Transient storage を正式サポート。tloadtstore
  • 0.8.27 — Yul オプティマイザ改善、evm-version はデフォルト Cancun。
  • 0.8.28 — Prague EVM の一部命令をサポート、コンパイル速度改善。

最短の Solidity 契約はこういう形になる。

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

contract Counter {
    uint256 public count;

    error CountTooLarge(uint256 attempted, uint256 max);

    function increment() external {
        if (count >= 1_000_000) revert CountTooLarge(count + 1, 1_000_000);
        count += 1;
    }
}

三つのポイント。

  1. pragma solidity ^0.8.28 — 0.8.x ラインは算術オーバーフロー保護がデフォルト。
  2. error CountTooLarge(...) — 文字列の代わりに selector 4 バイト + 引数だけを保存。ガス節約は約 200-400。
  3. if (cond) revert パターンは require(!cond) よりガスが少なく、デバッグも明快だ。

ストレージマッピングはバッククォートで囲んだ mapping(address => uint256) のように書く。本稿全体でも同様にバッククォート内でのみ使う。


3章 · Transient Storage (EIP-1153) — 2024年以降の本当のパラダイムシフト

EIP-1153 は 2024 年 3 月の Dencun ハードフォークと共に導入された。一トランザクションの間だけ生きるストレージだ。sstore が約 20,000 ガスなら tstore は約 100 ガスである。

典型的な活用は 再入ロック だ。古いやり方。

// 古いやり方 — SLOAD/SSTORE でロックを管理。呼び出しごとに約 5000 ガス。
contract OldReentrancyGuard {
    uint256 private _locked = 1;

    modifier nonReentrant() {
        require(_locked == 1, "REENTRANT");
        _locked = 2;
        _;
        _locked = 1;
    }
}

新しいやり方。

// 新しいやり方 — TLOAD/TSTORE。呼び出しごとに約 200 ガス。
contract NewReentrancyGuard {
    bytes32 private constant LOCKED_SLOT = keccak256("reentrancy.lock");

    modifier nonReentrant() {
        assembly {
            if tload(LOCKED_SLOT) { revert(0, 0) }
            tstore(LOCKED_SLOT, 1)
        }
        _;
        assembly {
            tstore(LOCKED_SLOT, 0)
        }
    }
}

ガス節約は一回の呼び出しあたり約 4,800 ガス。一日 100 万回呼ばれる契約なら一日約 0.5 ETH の節約。2026 年 5 月の ETH 価格を約 4000 ドルとすれば、一日約 2000 ドル相当。

OpenZeppelin 5.1 から ReentrancyGuardTransient がデフォルトで提供される。


4章 · Foundry — Paradigm が作った本物の標準ツール

スマートコントラクト開発ツールは 2020-2024 年の間で完全に再編された。2020 年代初頭は Hardhat (Nomic Foundation) と Truffle (ConsenSys) が二強だった。2024 年時点で見ると Foundry が事実上の標準になり、Truffle は ConsenSys が 2023 年に公式終了を宣言した。Brownie も同年に事実上メンテ停止。

Foundry の構成。

  • forge — ビルド・テストランナー。Solidity でテストを書く が核心。
  • cast — コマンドライン RPC クライアント。ABI エンコーディング、トランザクションデバッグ。
  • anvil — ローカル EVM ノード。Hardhat Network の代替。
  • chisel — Solidity REPL。

Foundry で書くテストはこういう形だ。

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

import "forge-std/Test.sol";
import "../src/Counter.sol";

contract CounterTest is Test {
    Counter counter;

    function setUp() public {
        counter = new Counter();
    }

    function test_Increment() public {
        counter.increment();
        assertEq(counter.count(), 1);
    }

    function testFuzz_IncrementNeverExceedsMax(uint8 n) public {
        for (uint256 i = 0; i < n; i++) {
            counter.increment();
        }
        assertLe(counter.count(), 1_000_000);
    }
}

testFuzz_ プレフィックスで始めれば自動ファジングが走る。デフォルト 256 回試行。明示的な入力なしに、ランダム値で invariant を破ろうとする。

ベンチマーク。Solidity 契約 200 個のビルド + 1000 テスト実行時間。

  • Foundry: 約 12 秒 (Rust で記述)
  • Hardhat 2: 約 90 秒 (Node.js + ts-node)
  • Hardhat 3: 約 25 秒 (viem + Rust EDR)

5章 · Hardhat 3 — Nomic Foundation の反撃

2024 年末に発表された Hardhat 3 は二つの点で決定的に異なる。第一に、viem ベース。ethers.js への依存を断った。第二に、Rust EDR — Ethereum Development Runtime を Rust で書き直した。anvil と十分張り合える。

Hardhat 3 の hardhat.config.ts はこういう形だ。

import type { HardhatUserConfig } from "hardhat/config";
import HardhatViem from "@nomicfoundation/hardhat-viem";

const config: HardhatUserConfig = {
  plugins: [HardhatViem],
  solidity: {
    version: "0.8.28",
    settings: {
      optimizer: { enabled: true, runs: 200 },
      evmVersion: "cancun"
    }
  },
  networks: {
    sepolia: {
      type: "http",
      url: process.env.SEPOLIA_RPC_URL ?? "",
      accounts: process.env.PRIVATE_KEY ? [process.env.PRIVATE_KEY] : []
    }
  }
};

export default config;

選択基準を一行で。Solidity 単一言語 + 速度が重要なら FoundryTypeScript とフロントエンド統合が重要なら Hardhat 3


6章 · Vyper 0.4 — Pythonic でセキュリティ優先の言語

Vyper は 2017 年に Vitalik Buterin が直接シードしたプロジェクトとして始まった。哲学が明確だ。継承なし、modifier なし、インラインアセンブリなし、関数オーバーロードなし、無限ループなし。 「書きやすいコード」ではなく 「監査しやすいコード」 を目指す。

2026 年 5 月時点の最新は 0.4.0。1.0 の直前だ。

# @version ^0.4.0

count: public(uint256)
MAX_COUNT: constant(uint256) = 1_000_000

@external
def increment():
    assert self.count < MAX_COUNT, "Count exceeded"
    self.count += 1

Pythonic だ。インデントでブロックを区切る。しかし本物の Python ではない。すべての型が静的で、ガス費用はコンパイル時に決まる。

本当に使われている場所はどこか。Curve Finance — コア契約のほとんどが Vyper。Yearn Finance — コアの vault。Lido の一部。TVL に換算すると Vyper 契約が管理する資産は 2026 年 5 月時点で約 250 億ドル。

Vyper の悲劇は 2023 年 7 月に起きた。コンパイラのバグで Curve の一部プールの再入ロックが回避され、約 7000 万ドルが盗まれた。その後 Vyper チームはコンパイラ自体への fuzz キャンペーン差分テスト (EVM 結果との比較) を導入した。


7章 · Huff と Yul — アセンブリレベルのガス最適化

Solidity がガス面で不十分なとき、二つの方向に降りていく。

Yul — Solidity の中間表現。inline assembly ブロックの中で直接書く。

function gasOptimized() external pure returns (uint256 result) {
    assembly {
        let x := 0x42
        result := mul(x, 2)
    }
}

Huff — 完全にアセンブリレベルの DSL。ERC20 を約 200 ガス差で書ける。

#define function transfer(address,uint256) nonpayable returns (bool)

#define macro TRANSFER() = takes(0) returns(0) {
    0x04 calldataload
    0x24 calldataload
    [BALANCE_LOCATION] sload
    sub
    [BALANCE_LOCATION] sstore
    0x01 0x00 mstore
    0x20 0x00 return
}

使うな、というのが一般的な推奨だ。99% の契約は Solidity で十分で、Huff が節約するガスより監査費用のほうが高くつく。例外は Uniswap V4 Hooks のようなホットパス だ。


8章 · Solady と Solmate — ガス最適化ライブラリ

OpenZeppelin Contracts が標準だが、ガスを考えると重すぎる。代替が二つ。

Solmate — Rari Capital の t11s (Transmissions11) が作ったミニマルな ERC20・ERC721・ERC1155。Rari が破綻した後、事実上メンテ停止。

Solady — Solmate の精神的後継者。Vectorized (Twitter のガス最適化の伝説) がメンテする。現在もっとも活発なガス最適化ライブラリ だ。

Solady の ERC20 利用例。

import {ERC20} from "solady/tokens/ERC20.sol";

contract MyToken is ERC20 {
    function name() public pure override returns (string memory) {
        return "MyToken";
    }
    function symbol() public pure override returns (string memory) {
        return "MTK";
    }
}

OpenZeppelin の ERC20 と比較すると transfer 一回あたり約 300-500 ガスの節約。トークン一つなら一度の差だが、DeFi プロトコルなら累積差が大きい。


9章 · 形式検証 — SMTChecker、Certora、Halmos、Echidna

Solidity のセキュリティツールは四つの層に整理される。

1. コンパイラ内蔵 — SMTChecker

/// @custom:invariant count <= MAX_COUNT
contract Counter {
    uint256 public count;
    // ...
}

solc --model-checker-engine chc 一行で走らせる。無料、速い、しかし表現力に限界。

2. Foundry Invariant Testing

contract CounterInvariantTest is Test {
    Counter counter;

    function setUp() public {
        counter = new Counter();
        targetContract(address(counter));
    }

    function invariant_countNeverExceedsMax() public view {
        assertLe(counter.count(), 1_000_000);
    }
}

ランダムに関数を呼び出して invariant が破れるか見る。Foundry の標準。

3. Halmos — a16z crypto が後援するシンボリック実行器。Foundry テストをそのまま受け取ってシンボリックに検証する。小さな契約に強力。

4. Certora Prover — 商用。Aave、Compound、MakerDAO が使う。高価だが最強の形式検証。年間ライセンスは約 10-30 万ドル台。

5. Echidna — Trail of Bits のファザー。性質ベーステスト。crytic-properties ライブラリと一緒に使う。

6. KEVM — Runtime Verification の K Framework ベースの EVM モデル。最も重い形式検証。

実務では通常、SMTChecker + Foundry invariant + Echidna までが標準だ。Certora は 100 億ドル以上を扱うプロトコルで追加して使う。


10章 · Move 言語 — Diem の遺産、Aptos と Sui の現在

Move は 2019 年 Facebook (現 Meta) の Diem (旧 Libra) プロジェクトで始まった。Diem が 2022 年 1 月に座礁した後、コアエンジニアたちが二社を起こした。

  • Aptos Labs — Mo Shaikh + Avery Ching。Aptos メインネット 2022 年 10 月にローンチ。
  • Mysten Labs — Evan Cheng + Sam Blackshear。Sui メインネット 2023 年 5 月にローンチ。

両チェーンとも Move を使うが、言語自体が分岐した。Aptos Move は原本 Diem Move に近く、Sui Move はオブジェクト中心モデルとして設計し直された。

Move の核心アイデアを一行で。リソースはコピー・削除できず、ただ移動 (move) されるのみ。 コインは変数ではなくリソースだ。二つの場所に同時に存在することはできない。

Aptos Move のコイン定義。

module my_addr::my_coin {
    use std::signer;

    struct MyCoin has key {
        value: u64,
    }

    public entry fun mint(account: &signer, value: u64) {
        let coin = MyCoin { value };
        move_to(account, coin);
    }

    public entry fun transfer(from: &signer, to: address, amount: u64) acquires MyCoin {
        let from_addr = signer::address_of(from);
        let from_coin = borrow_global_mut<MyCoin>(from_addr);
        assert!(from_coin.value >= amount, 1);
        from_coin.value = from_coin.value - amount;
    }
}

has key はグローバルストレージに入れるという意味。acquires MyCoin はこの関数がどのリソースを借りるか明示。Move のすべての動的リソースアクセスはコンパイル時に検証される。


11章 · Sui Move — オブジェクト中心モデル

Sui Move は同じ Move だが 世界観が違う。Aptos Move が「アカウントにリソースが付く」なら、Sui Move は「すべてはオブジェクトだ」。各オブジェクトには固有の UID があり、オブジェクトは他のオブジェクトに所有される。

Sui Move のコイン。

module my_pkg::my_coin {
    use sui::coin::{Self, Coin, TreasuryCap};
    use sui::transfer;
    use sui::tx_context::TxContext;

    public struct MY_COIN has drop {}

    fun init(witness: MY_COIN, ctx: &mut TxContext) {
        let (treasury, metadata) = coin::create_currency(
            witness, 9, b"MYC", b"My Coin", b"", option::none(), ctx
        );
        transfer::public_freeze_object(metadata);
        transfer::public_transfer(treasury, tx_context::sender(ctx));
    }
}

Sui Move の本当の強みは 並列実行 だ。あるトランザクションが触るオブジェクトと別のトランザクションが触るオブジェクトが重ならなければ、両者は並列に実行される。ホットスポットのない NFT 転送はほぼ無限に並列化される。

Sui メインネットは日平均 TPS 約 2000 を維持し、ピークは約 8000 を超える。EVM が約 100 TPS なのと比べると一桁違う。


12章 · Cairo 2.6 — STARK 親和の言語

Cairo は StarkWare が作った言語だ。核心は STARK 証明生成コストに親和的な命令セット だ。一般 EVM でガスが高い演算 (例: 乗算) は Cairo ではほぼ無料で、その逆もある。

Cairo 1.0 は 2023 年 7 月にローンチ。Rust に強くインスパイアされた。2026 年 5 月時点の最新は 2.6.4

Cairo のカウンター。

#[starknet::contract]
mod Counter {
    #[storage]
    struct Storage {
        count: u128,
    }

    #[external(v0)]
    fn increment(ref self: ContractState) {
        let current = self.count.read();
        assert(current < 1_000_000, 'Count exceeded');
        self.count.write(current + 1);
    }
}

型システムが Rust とほぼ同じ。ref self で可変参照を取る。パニックは assert で投げる。

StarkNet メインネットは 2024 年 11 月の v0.13.2 からガスモデルを Ethereum とより似せた。2026 年 5 月現在 StarkNet TVL は約 25 億ドル。

Cairo の本当の意味は 検証コスト だ。1 万件のトランザクションをまとめて ZK 証明一つで Ethereum に上げる。ユーザー一人あたりのガス費用が EVM L2 の約 10 分の 1 になる。


13章 · Stylus — Arbitrum の Rust/WASM 実験

Arbitrum Stylus は 2024 年 8 月にメインネットローンチされた。核心は一行。Arbitrum L2 上で Rust・C・C++・AssemblyScript を EVM 契約と一緒に動かす。 WebAssembly を EVM の隣で実行する。

Stylus の Rust 契約。

use stylus_sdk::{alloy_primitives::U256, prelude::*};

#[storage]
#[entrypoint]
pub struct Counter {
    count: StorageU256,
}

#[public]
impl Counter {
    pub fn count(&self) -> U256 {
        self.count.get()
    }

    pub fn increment(&mut self) -> Result<(), Vec<u8>> {
        let current = self.count.get();
        if current >= U256::from(1_000_000_u32) {
            return Err(b"Count exceeded".to_vec());
        }
        self.count.set(current + U256::from(1));
        Ok(())
    }
}

Stylus 契約は Solidity 契約と 相互呼び出し が可能だ。同じ ABI を使い、同じガス会計の中で動く。ただし Rust 側が算術演算で約 10-50 倍速い。暗号学・圧縮・FFT のような計算集約コードを Rust に移し、ビジネスロジックを Solidity に置くのが一般的なパターン。


14章 · Fuel と Sway — UTXO の Ethereum L2

Fuel は 2023 年 9 月にベータネットローンチ、2024 年にメインネット稼働。最大の違いは UTXO モデル だ。Ethereum がアカウントモデルなのと真逆だ。

Sway 言語は Rust に強くインスパイアされたが、UTXO モデルに合わせて設計された。

contract;

storage {
    count: u64 = 0,
}

abi Counter {
    #[storage(read)]
    fn count() -> u64;

    #[storage(read, write)]
    fn increment();
}

impl Counter for Contract {
    #[storage(read)]
    fn count() -> u64 {
        storage.count.read()
    }

    #[storage(read, write)]
    fn increment() {
        let current = storage.count.read();
        require(current < 1_000_000, "Count exceeded");
        storage.count.write(current + 1);
    }
}

UTXO モデルの利点は並列化だ。入力 UTXO が重ならないトランザクションは並列に検証される。欠点はカウンターのような共有状態が自然でないこと。上の例も実は Fuel の「状態保持契約」拡張を使っている。

Fuel TVL は 2026 年 5 月時点で約 5 億ドル。新興 L2 の中では急成長中。


15章 · Solana — Rust、Anchor、Pinocchio

Solana は EVM ではない。契約は プログラム と呼ばれ、状態は別の アカウント に保存される。一つのプログラムは自分のアカウントを持たず、ユーザーが PDA (Program Derived Address) で作ったアカウントに書く。

Solana プログラムを書く三つの道。

1. ネイティブ Solana — 最も低いレベル。solana_program クレートで直接書く。最速で最長。

2. Anchor フレームワーク — Solana の Hardhat。マクロでボイラープレートを減らす。事実上の標準 だ。

use anchor_lang::prelude::*;

declare_id!("11111111111111111111111111111111");

#[program]
pub mod counter {
    use super::*;

    pub fn increment(ctx: Context<Increment>) -> Result<()> {
        let counter = &mut ctx.accounts.counter;
        require!(counter.count < 1_000_000, ErrorCode::CountExceeded);
        counter.count += 1;
        Ok(())
    }
}

#[derive(Accounts)]
pub struct Increment<'info> {
    #[account(mut)]
    pub counter: Account<'info, Counter>,
}

#[account]
pub struct Counter {
    pub count: u64,
}

#[error_code]
pub enum ErrorCode {
    #[msg("Count exceeded")]
    CountExceeded,
}

3. Pinocchio — 2024 年に登場した zero-copy の低レベルライブラリ。Anchor のマクロコストなしで直接契約を書く。Anchor より約 30-50% ガス節約。ただし Anchor のような自動検証がないので自分で気をつけることが多い。

Solana TVL は 2026 年 5 月で約 130 億ドル。Anchor が約 80%、ネイティブが約 15%、Pinocchio が約 5%。


16章 · NEAR — Rust、AssemblyScript

NEAR Protocol は 2020 年にローンチ。JavaScript 親和チェーンを標榜したが、結局 Rust が標準になった。AssemblyScript SDK は 2024 年に事実上廃止。

NEAR の Rust 契約。

use near_sdk::{env, near, AccountId};

#[near(contract_state)]
#[derive(Default)]
pub struct Counter {
    count: u64,
}

#[near]
impl Counter {
    pub fn increment(&mut self) {
        assert!(self.count < 1_000_000, "Count exceeded");
        self.count += 1;
    }

    pub fn get_count(&self) -> u64 {
        self.count
    }
}

NEAR の差別化ポイントは シャーディング だ。Nightshade シャーディングで処理量を横に拡張する。しかし 2026 年 5 月現在 NEAR TVL は約 3 億ドルで、かつての期待よりはるかに小さい位置にある。


17章 · Cosmos CosmWasm — インターチェーンの Rust

Cosmos は単一チェーンではない。一つの SDK で作った数十のチェーンの連合 だ。CosmWasm はその SDK 上で動くスマートコントラクトモジュールだ。Osmosis、Juno、Neutron、Stargaze などが CosmWasm を使う。

CosmWasm の Rust 契約。

use cosmwasm_std::{entry_point, DepsMut, Env, MessageInfo, Response, StdError};
use cw_storage_plus::Item;

const COUNT: Item<u64> = Item::new("count");

#[entry_point]
pub fn instantiate(deps: DepsMut, _env: Env, _info: MessageInfo, _msg: ())
    -> Result<Response, StdError> {
    COUNT.save(deps.storage, &0u64)?;
    Ok(Response::default())
}

#[entry_point]
pub fn execute(deps: DepsMut, _env: Env, _info: MessageInfo, _msg: ())
    -> Result<Response, StdError> {
    let current = COUNT.load(deps.storage)?;
    if current >= 1_000_000 {
        return Err(StdError::generic_err("Count exceeded"));
    }
    COUNT.save(deps.storage, &(current + 1))?;
    Ok(Response::default())
}

CosmWasm の強みは IBC。一つのチェーンの契約が別のチェーンの契約を呼び出せる。インターチェーン資産移動がネイティブに入っている。

Cosmos 生態系全体の TVL は 2026 年 5 月で約 35 億ドル。


18章 · Polkadot ink! — Substrate 上の Rust

ink! は Parity Technologies が作った Polkadot/Substrate 用 Rust DSL だ。

#[ink::contract]
mod counter {
    #[ink(storage)]
    pub struct Counter {
        count: u64,
    }

    impl Counter {
        #[ink(constructor)]
        pub fn new() -> Self {
            Self { count: 0 }
        }

        #[ink(message)]
        pub fn increment(&mut self) {
            assert!(self.count < 1_000_000, "Count exceeded");
            self.count += 1;
        }

        #[ink(message)]
        pub fn get(&self) -> u64 {
            self.count
        }
    }
}

ink! の本当の特異点は WebAssembly 契約 だということ。EVM ではなく Wasm をネイティブで実行する。Polkadot メインネットで直接使う場所はほとんどなく、主にパラチェーン (Astar、Aleph Zero など) で使う。


19章 · Cardano — Plutus と Aiken

Cardano は Haskell ベースのスマートコントラクト言語 Plutus で始まった。Haskell という参入障壁が高すぎた。そこで 2023 年に登場したのが Aiken だ。

Aiken は Plutus と互換だが、Rust のような構文を持つ。

use aiken/transaction.{ScriptContext}

validator {
  fn counter(_redeemer: Data, _datum: Data, _ctx: ScriptContext) -> Bool {
    True
  }
}

Cardano は UTXO 拡張 (eUTxO) モデルだ。契約が直接状態を持たず、UTXO の datum に状態を埋め込む。これは思考の転換が大きい。

Cardano TVL は 2026 年 5 月で約 4 億ドル。かつての約束に比べると小さな位置。


20章 · Tezos、Algorand、Hedera — それぞれの道

Tezos — Michelson (低レベルアセンブリ)、LIGO (JavaScript/Pascal 風)、SmartPy (Python 風)、Archetype (formal verification 優先)。独自ガバナンスで自己アップグレード。TVL 約 1 億ドル。

Algorand — TEAL (低レベル)、PyTeal (Python)、Algorand Smart Contract、Reach (コンパイラベース)。Pure Proof of Stake。TVL 約 2 億ドル。

Hedera — Solidity。Hedera Smart Contract Service が EVM と互換。エンタープライズ市場 (IBM、Google、Boeing などがガバナンス委員)。TVL 約 1.5 億ドル。

Bitcoin Layer 2 — Liquid Network (Elements Script)、RGB (client-side validation)、Simplicity (formal-verifiable アセンブリ)。Bitcoin 上スマートコントラクトの三つの試み。まだ初期段階。


21章 · アカウント抽象化 — EIP-4337、EIP-7702

スマートコントラクト自体より大きな変化が起きた領域。2026 年 5 月現在 Ethereum トランザクションの約 18% が スマートアカウント から発する。

EIP-4337 — 2023 年 3 月メインネットに入った。コントラクト変更なしでメモリプールレベルでスマートアカウントをサポートする。コアコンポーネント: UserOperation、Bundler、EntryPoint、Paymaster。

EIP-7702 — 2024 年 5 月 Pectra ハードフォークと共に入った。EOA (Externally Owned Account) に一時的にコードを付けられる。ユーザーが MetaMask をそのまま使いながら、一トランザクションの間スマートアカウントのように振る舞う。

主要スマートアカウントインフラ。

  • Safe (旧 Gnosis Safe) — マルチシグ標準。約 1500 億ドルの資産が Safe で管理される。
  • Pimlico — Bundler/Paymaster サービス。permissionless.js SDK。
  • Alchemy Account Kit — Account Abstraction SDK + インフラ。
  • Biconomy — ガスレストランザクション + スマートアカウント。
  • ZeroDev — Kernel スマートアカウント。
  • Stackup — Bundler インフラ。

22章 · MEV と保護 — Flashbots、SUAVE

MEV (Maximal Extractable Value) はブロックビルダーがトランザクション順序を操作して抽出する価値だ。Sandwich attack、frontrunning、backrunning が典型。

Flashbots — 2020 年に登場。MEV を透明にする。MEV-Boost が Ethereum メインネットの約 92% のブロックで検証者・ビルダー分離 (PBS) を実装。

SUAVE (Single Unifying Auction for Value Expression) — Flashbots が 2023 年に発表した分散メモリプール。ユーザーがどのビルダーにトランザクションを送るか選ばなくて良い。

MEV 保護 RPC — Flashbots Protect、MEV Blocker、BloxRoute Protect。MetaMask に RPC を変えればその日から sandwich attack をほとんど受けない。


23章 · 監査会社 — 誰が誰を監査するか

2026 年時点の主要スマートコントラクト監査会社。

  • OpenZeppelin — 最大の会社。Aave、Compound、MakerDAO の監査経験。
  • Trail of Bits — Echidna、Slither 開発。形式検証が強み。
  • ConsenSys Diligence — MythX、Scribble 開発。Ethereum 財団に近い。
  • Quantstamp — トロントベース。自動化ツールを強調。
  • Hacken — ウクライナ/欧州ベース。CertiK と共に東欧で強い。
  • Halborn — マイアミ。マルチチェーンが強み。
  • CertiK — イリノイ大学出身。自動形式検証。
  • Spearbit — 分散監査ネットワーク。個人監査人マッチング。

監査の代替:

  • Code4rena — 競争監査。約 $50K-500K のプールで数十人の監査人が競う。
  • Sherlock — 監査 + ハック保険。発見できなかったバグは保険で補償。
  • Cantina — Spearbit の後継。競争 + キュレーション。
  • Immunefi — バグバウンティプラットフォーム。最大約 1000 万ドルのバウンティ。

平均監査費用。小規模 (5000 行未満)30K100K中規模30K-100K、**中規模** 約 100K-500K、大規模プロトコル 約 $500K-2M。監査一回で 6 週間-3 ヶ月。


24章 · The Graph、Goldsky — 契約データのインデキシング

ブロックチェーン上に書いた契約を RPC で直接読むと遅い。だから インデクサ が必要だ。

  • The Graph — 最古の標準。サブグラフ (GraphQL スキーマ) で定義。Decentralized ネットワーク + ホスト型サービス。2024 年にホスト型サービス終了、分散ネットワークへ完全移行。
  • Goldsky — より速くより簡単。SQL ライクな Mirror、GraphQL Subgraphs。エンタープライズ顧客で強い。
  • Subsquid — オープンソースインデクサ SDK。Postgres を直接ホスト可能。
  • Ponder — TypeScript ネイティブインデクサ。Hardhat/Foundry 開発者に親和的。
  • Envio — HyperSync ベースの超高速インデクサ。インデキシング速度約 1000 ブロック/秒。
  • Allium — Web3 データウェアハウス。SQL で全チェーンをクエリ。
  • Dune Analytics — SQL ダッシュボード。アナリスト標準。

選択基準を一行で。DApp に GraphQL インデクサが必要なら Goldsky か The GraphTypeScript コードに近いインデクサが必要なら Ponder分析/ダッシュボードなら Dune


25章 · 韓国 Web3 — Klaytn から Kaia まで

韓国 Web3 風景の大きな変化は 2024 年 6 月だ。Klaytn (カカオ) と Finschia (ライン) が合併して Kaia になった。本社はアブダビ。メインネットは 2024 年 8 月にローンチ。

主要韓国系 Web3。

  • Kaia — Klaytn + Finschia 合併体。EVM 互換。TVL 約 5 億ドル。
  • BORA — カカオゲームズのゲームトークン + プラットフォーム。Kaia 上で動くサイドチェーン。
  • Klip — カカオウォレット。事実上韓国 Web3 の入口。
  • WEMIX — ウィメイドのゲームトークン。一時 1.5 兆ウォン時価総額 → 2022 年 9 月取引所上場廃止事件 → 回復中。
  • ICON — 2017 年 ICO ブームの韓国代表。現在 BTP (Blockchain Transmission Protocol) でインターチェーン取り組み。
  • Sygnum Korea — スイス Sygnum の韓国進出。機関向けデジタル資産銀行。
  • ドゥナム / Upbit — 韓国最大取引所。自社チェーン Luniverse 運営。
  • Xangle — 韓国 Web3 データ分析 + リサーチ。

韓国市場を一行で。個人取引は巨大 (世界取引量の約 7%) だが 国内 DeFi/オンチェーン活動は依然として小さい


26章 · 日本 Web3 — Astar から Soneium まで

日本は 2017 年のコインチェックハッキング以降、強い規制でしばらく静かだった。しかし 2023-2024 年の間に自民党が親 Web3 政策を打ち出して風景が変わった。

主要日本系 Web3。

  • Astar Network — 日本最大の自社チェーン。EVM + WASM を同時にサポート。Polkadot パラチェーンだったが 2024 年に Polygon CDK ベースの zkEVM L2 (Astar zkEVM) へ転換。
  • SoneiumSony Block Solutions Labs + Startale の OP Stack ベース L2。2025 年 1 月メインネットローンチ。ソニーの IP (アニメ、ゲーム、音楽) をオンチェーンに持ち込むのが目標。
  • Oasys — 日本ゲームコンソーシアム (バンダイナムコ、セガ、スクウェア・エニックスなど)。Layer 1 + ゲーム用 Verse Layer。
  • JPYC — 日本円ステーブルコイン。2024 年資金決済法改正以降、正式発行。
  • Animoca Brands Japan — 香港 Animoca の日本支社。日本のゲーム/IP NFT に強い。
  • HashPort — 日本の NFT/Web3 コンサルティング。最大の日本 Web3 SI。
  • Double Jump.Tokyo — マイクリプトヒーローズで始めた日本の NFT ゲーム会社。

日本市場を一行で。IP が強い (アニメ、ゲーム、キャラクター)。だから NFT 中心 Web3 が自然で、DeFi は相対的に弱い。


27章 · 本当の収益 — Curve、Lido、Aave、Compound、Uniswap

スマートコントラクトが作る本当の収益はどこか。2026 年 5 月時点の年換算収益。

  • Tether (USDT 発行) — 約 70 億ドル。圧倒的に 1 位。事実上契約というより信託金融。
  • Circle (USDC 発行) — 約 18 億ドル。
  • MakerDAO/Sky (DAI/USDS) — 約 5 億ドル。
  • Aave — 約 3.5 億ドル (手数料ベース)。TVL 約 250 億ドル。
  • Lido — 約 1.5 億ドル (10% 手数料)。ステーキング約 90 億ドルの ETH。
  • Uniswap Labs — 正確な収益非公開。推定約 1 億ドル台 (フロントエンド手数料)。
  • Curve Finance — 約 5000 万ドル。veTokenomics の元祖。
  • Compound — 約 3000 万ドル。一時の DeFi 皇帝。
  • GMX — 約 2000 万ドル。永久先物 DEX。
  • Pendle — 約 1500 万ドル。収益率トークン化。

Solidity 契約が作る収益の合計は年間約 100 億ドル。小さな市場ではない。


28章 · 何で始めるか — 2026 年の意思決定ツリー

新人コントラクトエンジニアが受ける最も多い質問。「何から学べばいいですか?」一行で整理する。

  • 就職/サイドプロジェクト目的、最短経路 → Solidity 0.8.28 + Foundry。一ヶ月以内に初契約デプロイ。
  • 長期的なインフラ/L2 作業 → Rust + Solana Anchor または Stylus。2 ヶ月学習。
  • 研究志向 (形式検証、ZK) → Cairo または Rust + Halmos。3 ヶ月以上。
  • 新しいパラダイム (オブジェクトモデル、並列) → Sui Move または Aptos Move。2 ヶ月。
  • 韓国ゲーム/IP 企画 → Kaia EVM + Klip 統合。Solidity がそのまま使える。
  • 日本ゲーム/IP 企画 → Soneium または Oasys。両方とも EVM なので Solidity がそのまま使える。

セキュリティ優先 → SMTChecker + Echidna + Foundry invariant + Slither。Certora は大きなプロトコルで。

ガス最適化優先 → Solady ライブラリ + Yul inline assembly。Huff は本当にホットパスのみ。

最後の一文。EVM は死なない。しかし EVM だけ知っていると未来が狭くなる。 2026 年のコントラクトエンジニアは Solidity 一つは深く、Move または Rust のうち一つは入門程度は知るべきだ。


参考資料