045刊行 2026-11-04 ・ 読了約7分
暗号通貨は、ひとりで作れるのか。
Can One Person Build a Cryptocurrency?
自分のコインは14行で書けて、本物のネットで発行しても約94円だった。ところが100枚をもらった友だちは、1枚も送れなかった。手数料はコインではなく ETH でしか払えないからだ。値段をつけるにも、本物のお金が要った。
調べ方OpenZeppelin の部品で ERC-20 のコインを書き、手元のチェーン(Hardhat)で発行・送金・手数料の肩代わりを試し、2026年11月4日の相場で円に直した
- 規模
- 自作14行・試験3本
- 触れる
- 池に預けるお金と売られる枚数を変えると、コインの値段の崩れ方が出る
- 結論
- 作れる。でも、配ると動かない。
要旨── 作るのは14行、配ると動かない
ビットコインやイーサリアムのような暗号通貨は、誰でも作れると聞く。では、本当にひとりで、自分のコインを作れるのか。
作ってみた。名前は Shisaku Coin(記号 SHISAKU)で、最初に100万枚を発行する。イーサリアムの上で動くコインの決まった型(ERC-20)に沿って書くと、自分で書いた部分は14行で済んだ。本物のネットで発行した場合の手数料は、2026年11月4日の相場で約94円、1回の送金は約2.5円である。
ところが、友だちに100枚を送ると、友だちはその100枚を1枚も動かせなかった。送金の手数料は、コインではなくイーサリアムのお金(ETH)でしか払えないからである。発行者が手数料を肩代わりする仕組みも作れたが、そうすると今度は、発行者が送金のたびにお金を払い続けることになる。
コインに値段をつけるには、誰かが本物のお金を一緒に預ける必要があった。人に売ったり交換したりすれば、法律の線にもかかる。その法律は、2026年7月に変わったばかりである。
100枚持っているのに、1枚も送れない。
方法── 手元のチェーンで、発行して送る
- 作ったもの
- イーサリアムのコインの決まった型(ERC-20)に沿ったコイン。中身は、広く使われている部品集 OpenZeppelin Contracts(5.1.0)を読み込み、名前・記号・発行枚数と、発行者だけが追加で発行できる決まりを書き足しただけである。読み込んだ部品は3つで、合わせて495行ある。
- 走らせた場所
- 手元のパソコンの中に立てた練習用のチェーン(Hardhat 2.22.17)。仕組みは本物のイーサリアムと同じで、手数料の数え方(ガス)も同じになる。本物そっくりの公開の練習場(テストネット)は使わなかった。練習場で手数料に使う ETH を無料で配るサイトが、ログインなどの本人確認を求めていたからである。これも壁の1つとして数えた。
- 書き手
- コードは AI(Claude)が書いた。コインの本体と、下の試験3本を、1回の会話の中で書いて走らせた。
- 試験
- (1) 発行して、別の財布へ100枚送る。(2) ETH を持たない友だちの財布にコインを送り、友だちが送り返せるか試す。(3) 友だちは署名だけをして、発行者が手数料を払って送金を実行する。
- 円への換算
- 手数料の量(ガス)に、2026年11月4日21時33分に取ったイーサリアム本体の手数料単価(0.131 gwei)と、ETH の値段(1 ETH = 366,918円、CoinGecko)を掛けた。手数料の単価は混み具合で上下するので、円の数字はこの時刻の目安である。
自分で書いたのは14行、発行は94円── 作るところに、壁は無い
コインの本体は、これで全部である。空行と説明の行を除くと14行になる。
contract ShisakuCoin is ERC20, ERC20Permit, Ownable {
constructor(uint256 initialSupply)
ERC20("Shisaku Coin", "SHISAKU") ERC20Permit("Shisaku Coin") Ownable(msg.sender)
{
_mint(msg.sender, initialSupply * 10 ** decimals());
}
function mint(address to, uint256 amount) external onlyOwner {
_mint(to, amount);
}
}
発行の手数料は1,956,969ガスだった。発行すると、発行者の財布に100万枚が入り、別の財布へ100枚を送ると、その財布の残高が100になった。名前、記号、残高、送金という、コインに要るものはすべて動いた。ERC-20 の型に沿っているので、世の中の財布アプリや取引の仕組みも、このコインをそのまま扱える。
費用も壁ではなかった。発行は約94円、送金は1回約2.5円である。手数料の安い別のチェーン(イーサリアムの上に重ねた Base など)を使えば、さらに安くなる。
コインは、94円で生まれる。
100枚持っているのに、1枚も送れない── 手数料は、ETH でしか払えない
新しく作った友だちの財布に100枚を送り、友だちから10枚を送り返してもらった。
| 手順 | 友だちのコイン | 友だちの ETH | 結果 |
|---|---|---|---|
| 1. 発行者が100枚を送る | 100 | 0 | 届いた |
| 2. 友だちが10枚を送り返す | 100 | 0 | 失敗。「送る人に手数料を払うお金が無い」 |
| 3. 発行者が友だちに 0.001 ETH を渡す | 100 | 0.001 | 届いた |
| 4. もう一度、友だちが10枚を送り返す | 90 | 0.00094 | 成功 |
手順2で、チェーンは送金をはじめから受け付けなかった。コインを100枚持っていても、手数料の欄は ETH で埋めるしかない。Shisaku Coin で手数料を払うことは、チェーンの決まりの上でできない。
手順3で発行者が ETH を少し渡すと、送れるようになった。渡した 0.001 ETH のうち、1回の送金で使ったのは6%ほどである。
手数料そのものは、本物のネットでも1回2.5円で、額としては小さい。壁は額ではなく、最初の ETH をどこで手に入れるかのほうにある。ふつうは、暗号資産の交換業者に口座を作り、本人確認を通し、円で ETH を買い、自分の財布へ移す。コインをもらっただけの人に、ここまでしてもらうのは難しい。練習場の ETH を無料で配るサイトがログインを求めていたのも、同じ入口を絞るためである。
持っていることと、動かせることは別だった。
肩代わりはできる、1回6円── ただし、真ん中に発行者が戻ってくる
ETH を渡さずに済ませる方法もある。友だちは「10枚をお店へ送ってよい」という署名だけをし、それを受け取った発行者が、手数料を払って送金を実行する。
署名は友だちの手元で作るだけなので、チェーンには何も送らず、手数料もかからない。この仕組みは EIP-2612(permit)という決まりになっていて、コインに1行足すだけで使えた。
肩代わりの手数料は、許可が77,004ガス、送金が53,684ガスの計130,688ガスだった。友だちの ETH は最後まで0のまま、コインは友だちからお店へ10枚動いた。同じ署名をもう一度使おうとすると、チェーンが拒否した。署名には通し番号が入っていて、1回しか使えない。
代わりに、発行者は送金1回につき約6.3円を払った。ふつうの送金(約2.5円)より高いのは、許可と送金の2回に分けて書き込むからである。1,000人が月に10回ずつ使えば、月に約6万3千円を発行者が払い続ける。
もう1つ変わることがある。署名を受け取って実行する役は、発行者のサーバーが担う。誰の許可も要らずに送れるのが暗号通貨の売りだったはずが、使いやすくしようとすると、真ん中に発行者が戻ってくる。
手数料を消すと、真ん中が生まれる。
値段は、預けたお金でしか決まらない── 自動で交換する仕組み
発行したばかりのコインには、値段が無い。1枚が何円なのかを決める場所が、まだどこにも無いからである。
いまよく使われるのは、取引所の人を介さずに、プログラムが自動で交換する仕組み(Uniswap など)である。発行者は、コインと ETH を一緒に預けて「交換の池」を作る。たとえば100万枚と、10万円分の ETH を預けると、1枚の値段は0.1円になる。値段は、池の中の ETH と、池の中のコインの比で決まる。
誰かがコインを池に売ると、池の ETH が減ってコインが増えるので、値段は下がる。池の仕組みは「ETH の量 × コインの量」を一定に保つように作られている。そのため、どれだけ多く売られても、池から出ていく ETH は、預けた10万円分を超えない。
| 売られた枚数 | 売った人が受け取る | 売ったあとの1枚 | 下がった割合 |
|---|---|---|---|
| 10万枚 | 9,066円 | 0.083円 | 17% |
| 50万枚 | 33,267円 | 0.044円 | 56% |
| 100万枚 | 49,925円 | 0.025円 | 75% |
| 1,000万枚 | 90,884円 | 0.0008円 | 99% |
「1枚0.1円で100万枚」と聞くと、10万円分の値打ちがあるように見える。実際に100万枚を売ると、受け取れるのは約5万円だった。発行者は追加で好きなだけ発行できるので、1,000万枚を発行して売れば、預けた10万円のほぼ全部を池から抜ける。コインの値段の裏づけは、池に預けられたお金そのものだけである。
値段をつけるのは、コードではなくお金。
池に預けて、売ってみる── 値段が崩れる速さを見る
預けるお金と枚数、売られる枚数を変えると、1枚の値段がどう動くかが出る。
- はじめの1枚
- 売った人が受け取る
- 売ったあとの1枚
- 池に残るお金
計算は、自動で交換する仕組みの代表である Uniswap の第2版と同じ式(ETH の量 × コインの量を一定に保ち、売買のたびに0.3%を池に残す)で、このページの中だけで行う。ETH と円の値動きは入れていない。
配ると、法律の線にかかる── しかも、2026年7月に線が動いた
作って手元で遊ぶだけなら、何の届け出も要らない。線は、人に渡し始めたところで引かれている。
いまの資金決済法では、不特定の人への支払いに使え、不特定の人と円などに交換できる電子的なお金を「暗号資産」と呼ぶ。暗号資産を売ったり買ったり、交換を取り次いだりすることを仕事として行うには、国の登録(暗号資産交換業)が要る。上の池のように、誰でも ETH と交換できる状態で配れば、Shisaku Coin がこの定義に入る見込みは高い。逆に、店のポイントのように、使える先を限り、換金もできないように作れば、別の扱いになる。どちらに当たるかは設計しだいで変わる。
そのうえで、2026年7月15日に、暗号資産を金融商品取引法(金商法)の対象に移す改正法が成立し、7月23日に公布された。暗号資産の部分は、公布から1年以内、つまり遅くとも2027年7月までに施行される。
| 項目 | いま(資金決済法) | 改正後(金商法) |
|---|---|---|
| 売買・交換を仕事にする人 | 暗号資産交換業者(登録) | 暗号資産取引業者(金融商品取引業の1つとして登録) |
| 発行者のいるコインを売り出すとき | ― | 発行者が、売り出す前にコインの情報を公表する。売り出したあとも、定期的に公表する |
| 無登録で行ったとき | 3年以下の拘禁刑か300万円以下の罰金 | 10年以下の拘禁刑か1,000万円以下の罰金(併科あり) |
Shisaku Coin には、発行者(作った本人)がいる。ビットコインのように発行者のいないコインとは違い、改正後に売り出すなら、発行者自身に説明の責任がかかる側に入る。罰則の上限は、拘禁刑の年数でいえば3倍以上になる。
14行のコインにも、発行者の名前がつく。
結論── 作るのはひとりでできる。動かすのが壁
暗号通貨は、作るだけならひとりで作れる。自分で書いたのは14行で、本物のネットで発行しても約94円だった。
壁は、作ったあとに3つ並んでいた。1つめは、もらった人が動かすための最初の ETH。2つめは、値段の裏づけになる本物のお金。3つめは、人に渡すときの法律の線である。どれもコードの難しさではなかった。
1つめの壁は、発行者がお金を払えば越えられる。ただし、払い続けるのは発行者で、送金の真ん中にも発行者が立つ。2つめの壁は、預けたお金の分しか越えられない。3つめの壁は、越えるには登録が要り、その登録の中身がちょうど今、作り直されている。
R044 のレジでは、カード番号を「持ってはいけない」という線が壁だった。コインでは、ETH を「持っていない」ことが壁になった。どちらも、作れるかどうかより先に、お金の入口を誰が握っているかで決まっていた。
次の問い:手数料をコインで払えるチェーンは、なぜ少ないのか。
ネタもと── 部品・決まり・法令
- AOpenZeppelin Contracts「ERC-20」
コインの部品(5.1.0)。ERC20・ERC20Permit・Ownable の3つを読み込んだ。 - BEIP-2612「Permit Extension for EIP-20 Signed Approvals」
署名だけで送金を許可し、手数料を他人が払える決まり。肩代わりの試験に使った。 - CUniswap「How Uniswap works」(v2)
「量 × 量 = 一定」で自動に交換する仕組みと、0.3%の手数料の出典。 - De-Gov 法令検索「資金決済に関する法律」
いまの暗号資産の定義と、暗号資産交換業の登録の出典。 - EBUSINESS LAWYERS「暗号資産規制はなぜ金商法に移行するのか? 改正の背景・全体像と事業者への影響」
改正後の暗号資産取引業者、発行者の情報公表、無登録の罰則、施行時期の解説。 - F金融庁「金融商品取引法及び資金決済に関する法律の一部を改正する法律案」・PwC「リーガルニュース」(2026年7月28日)
改正法案の本文と、2026年7月15日の成立の出典。 - GCoinGecko「イーサリアム」
円への換算に使った ETH の値段(2026年11月4日21時33分)。