<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ブロックチェーン</title>
	<atom:link href="https://techgrowup.net/tag/%e3%83%96%e3%83%ad%e3%83%83%e3%82%af%e3%83%81%e3%82%a7%e3%83%bc%e3%83%b3/feed/" rel="self" type="application/rss+xml" />
	<link>https://techgrowup.net</link>
	<description>エンジニアを強くする</description>
	<lastBuildDate>Mon, 14 Apr 2025 23:00:00 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.4</generator>

<image>
	<url>https://techgrowup.net/wp-content/uploads/2021/05/hp-icon-150x150.png</url>
	<title>ブロックチェーン</title>
	<link>https://techgrowup.net</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ブロックチェーンの「レイヤー1」と「レイヤー2」を解説──仕組み・代表例・課題・将来展望</title>
		<link>https://techgrowup.net/blockchain-layer/</link>
					<comments>https://techgrowup.net/blockchain-layer/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[techgrowup]]></dc:creator>
		<pubDate>Mon, 14 Apr 2025 23:00:00 +0000</pubDate>
				<category><![CDATA[ブロックチェーン]]></category>
		<category><![CDATA[L1]]></category>
		<category><![CDATA[L2]]></category>
		<category><![CDATA[ZKロールアップ]]></category>
		<category><![CDATA[オプティミスティック]]></category>
		<category><![CDATA[サイドチェーン]]></category>
		<category><![CDATA[スケーラビリティ]]></category>
		<category><![CDATA[セキュリティ]]></category>
		<category><![CDATA[レイヤー1]]></category>
		<category><![CDATA[レイヤー2]]></category>
		<category><![CDATA[ロールアップ]]></category>
		<guid isPermaLink="false">https://techgrowup.net/?p=2770</guid>

					<description><![CDATA[はじめに ビットコインが誕生してから10年以上、ブロックチェーンは「分散性」と「セキュリティ」を強みとして進化してきました。しかしユーザー数と取引量が増えるにつれ、ネットワーク混雑や高額なガス代という“スケーラビリティの [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">はじめに</h1>



<p class="wp-block-paragraph">ビットコインが誕生してから10年以上、ブロックチェーンは「分散性」と「セキュリティ」を強みとして進化してきました。しかしユーザー数と取引量が増えるにつれ、ネットワーク混雑や高額なガス代という“スケーラビリティの壁”が顕在化します。そこで注目されているのが**レイヤー1（L1）<strong>と</strong>レイヤー2（L2）**という二層構造のアプローチです。<br>L1は“土台”となるメインチェーン、L2はその外側に構築される“拡張レイヤー”を指します。本記事ではGemini Cryptopediaの解説をベースに、L1/L2の仕組み・メリット・課題を体系的に整理し、主要プロジェクトや最新動向まで詳しく紹介します。開発者向けに簡易コード例も挿入しながら、8,000文字超でじっくり深掘りしていきましょう。</p>



<h2 class="wp-block-heading">レイヤー1とは何か</h2>



<h3 class="wp-block-heading">基本概念</h3>



<p class="wp-block-paragraph">レイヤー1はブロックチェーンネットワークの“ネイティブ”な層で、コンセンサスアルゴリズム（PoW、PoSなど）やネイティブトークン、スマートコントラクト環境を直接提供します。ビットコイン、イーサリアム、Solana、Avalanche などが代表例です。</p>



<h3 class="wp-block-heading">スケーラビリティの制約</h3>



<ul class="wp-block-list">
<li><strong>トリレンマ</strong>：分散性・セキュリティ・スケーラビリティの3要素を同時に最大化できない</li>



<li><strong>ガス代高騰</strong>：需要が供給を上回ると手数料が上昇し、マイクロトランザクションが困難</li>



<li><strong>ブロックサイズの限界</strong>：大きくするとノード負荷が増え分散性が低下</li>
</ul>



<h3 class="wp-block-heading">L1スケーリングの取り組み</h3>



<figure class="wp-block-table"><div class="scrollable-table"><table class="has-fixed-layout"><thead><tr><th>手法</th><th>例</th><th>説明</th></tr></thead><tbody><tr><td>シャーディング</td><td>Ethereum 2.0, NEAR</td><td>チェーンを水平分割し並列処理</td></tr><tr><td>高速コンセンサス</td><td>Solana (PoH)</td><td>ブロックタイム短縮・高TPS</td></tr><tr><td>高性能VM</td><td>Aptos, Sui (Move)</td><td>並列実行で処理効率を向上</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading">レイヤー2の役割と種類</h2>



<h3 class="wp-block-heading">なぜL2が必要か</h3>



<p class="wp-block-paragraph">L1を抜本的に改修するとハードフォークやセキュリティリスクが伴います。そこで「<strong>取引処理はオフチェーン／セキュリティはオンチェーン</strong>」という二層構造が生まれました。L2はL1の安全性を継承しつつ、処理を高速・低コスト化することが目的です。</p>



<h3 class="wp-block-heading">L2の分類</h3>



<figure class="wp-block-table"><div class="scrollable-table"><table class="has-fixed-layout"><thead><tr><th>カテゴリ</th><th>代表プロジェクト</th><th>仕組み</th><th>メリット</th><th>デメリット</th></tr></thead><tbody><tr><td>オプティミスティックロールアップ</td><td>Optimism, Arbitrum</td><td>不正がなければ即確定、異議申し立て期間あり</td><td>EVM互換、高スループット</td><td>7日程度の出金遅延</td></tr><tr><td>ZKロールアップ</td><td>zkSync, Starknet</td><td>ゼロ知識証明で即時確定</td><td>セキュリティ高、即時出金</td><td>証明計算が重い</td></tr><tr><td>サイドチェーン</td><td>Polygon PoS, Ronin</td><td>独自バリデータでチェーン運営</td><td>柔軟なガスモデル</td><td>L1とセキュリティ分離</td></tr><tr><td>ステートチャネル</td><td>Lightning, Raiden</td><td>当事者間で署名、最終結果のみL1へ</td><td>即時・極小手数料</td><td>双方オンライン前提</td></tr><tr><td>プラズマ</td><td>OMG Network</td><td>チェーンを子チェーン化</td><td>セキュリティ強</td><td>Exit手続きが複雑</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading">オプティミスティック vs ZKロールアップ</h2>



<h3 class="wp-block-heading">アーキテクチャ比較</h3>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="graph TD
  subgraph Optimistic
    A[L2 Batch Tx] --&gt; B[State Root 提出]
    B --&gt; C[Challenge期間]
    C --&gt; D[L1確定]
  end
  subgraph ZK
    E[L2 Batch Tx] --&gt; F[ZK Proof生成]
    F --&gt; G[Proof + State Root 提出]
    G --&gt; H[即時確定]
  end" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #C586C0">graph</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">TD</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">subgraph</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">Optimistic</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">A</span><span style="color: #C586C0">[</span><span style="color: #CE9178">L2 Batch Tx</span><span style="color: #C586C0">]</span><span style="color: #D4D4D4"> </span><span style="color: #C586C0">--&gt;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">B</span><span style="color: #C586C0">[</span><span style="color: #CE9178">State Root 提出</span><span style="color: #C586C0">]</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">B </span><span style="color: #C586C0">--&gt;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">C</span><span style="color: #C586C0">[</span><span style="color: #CE9178">Challenge期間</span><span style="color: #C586C0">]</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">C </span><span style="color: #C586C0">--&gt;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">D</span><span style="color: #C586C0">[</span><span style="color: #CE9178">L1確定</span><span style="color: #C586C0">]</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">end</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">subgraph</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">ZK</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">E</span><span style="color: #C586C0">[</span><span style="color: #CE9178">L2 Batch Tx</span><span style="color: #C586C0">]</span><span style="color: #D4D4D4"> </span><span style="color: #C586C0">--&gt;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">F</span><span style="color: #C586C0">[</span><span style="color: #CE9178">ZK Proof生成</span><span style="color: #C586C0">]</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">F </span><span style="color: #C586C0">--&gt;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">G</span><span style="color: #C586C0">[</span><span style="color: #CE9178">Proof + State Root 提出</span><span style="color: #C586C0">]</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">G </span><span style="color: #C586C0">--&gt;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">H</span><span style="color: #C586C0">[</span><span style="color: #CE9178">即時確定</span><span style="color: #C586C0">]</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">end</span></span></code></pre></div>



<h3 class="wp-block-heading">実装コードスニペット（Solidity）</h3>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="// Optimistic Rollup用 ステートコミット例（擬似コード）
function commitBatch(bytes32 _stateRoot) external onlySequencer {
    batches.push(Batch(_stateRoot, block.timestamp));
}

// ZK Rollup用 プルーフ検証例
function verifyAndUpdate(bytes calldata proof, bytes32 newRoot) external {
    require(zkVerifier.verifyProof(proof, newRoot), &quot;invalid proof&quot;);
    stateRoot = newRoot;
}" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #6A9955">// Optimistic Rollup用 ステートコミット例（擬似コード）</span></span>
<span class="line"><span style="color: #569CD6">function</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">commitBatch</span><span style="color: #D4D4D4">(</span><span style="color: #4EC9B0">bytes32</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">_stateRoot</span><span style="color: #D4D4D4">) </span><span style="color: #569CD6">external</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">onlySequencer</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">    batches.</span><span style="color: #DCDCAA">push</span><span style="color: #D4D4D4">(</span><span style="color: #DCDCAA">Batch</span><span style="color: #D4D4D4">(_stateRoot, </span><span style="color: #569CD6">block</span><span style="color: #D4D4D4">.timestamp));</span></span>
<span class="line"><span style="color: #D4D4D4">}</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6A9955">// ZK Rollup用 プルーフ検証例</span></span>
<span class="line"><span style="color: #569CD6">function</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">verifyAndUpdate</span><span style="color: #D4D4D4">(</span><span style="color: #4EC9B0">bytes</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">calldata</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">proof</span><span style="color: #D4D4D4">, </span><span style="color: #4EC9B0">bytes32</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">newRoot</span><span style="color: #D4D4D4">) </span><span style="color: #569CD6">external</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #C586C0">require</span><span style="color: #D4D4D4">(zkVerifier.</span><span style="color: #DCDCAA">verifyProof</span><span style="color: #D4D4D4">(proof, newRoot), </span><span style="color: #CE9178">&quot;invalid proof&quot;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">    stateRoot = newRoot;</span></span>
<span class="line"><span style="color: #D4D4D4">}</span></span></code></pre></div>



<h3 class="wp-block-heading">選択指針</h3>



<ul class="wp-block-list">
<li><strong>即時性重視</strong>：ZK</li>



<li><strong>EVM互換・開発容易</strong>：Optimistic</li>



<li><strong>データ圧縮効率</strong>：ZK（特にValidium）</li>
</ul>



<h2 class="wp-block-heading">サイドチェーンとL2の境界</h2>



<p class="wp-block-paragraph">Polygon PoS などは厳密には「L1とは独立したチェーン」ですが、ブリッジで資産を移動しやすく<strong>実質L2的役割</strong>を果たしています。セキュリティは独自バリデータに依存するため、イーサリアム本体ほど強固ではありませんが、トランザクション手数料が1/1000程度になる利点があります。</p>



<h2 class="wp-block-heading">代表的プロジェクト比較</h2>



<figure class="wp-block-table"><div class="scrollable-table"><table class="has-fixed-layout"><thead><tr><th>ネットワーク</th><th>カテゴリ</th><th>TPS実測</th><th>手数料(USD)</th><th>出金時間</th><th>EVM互換</th></tr></thead><tbody><tr><td>Arbitrum One</td><td>Optimistic</td><td>~4,000</td><td>0.02</td><td>7日</td><td>◎</td></tr><tr><td>Optimism</td><td>Optimistic</td><td>~2,000</td><td>0.03</td><td>7日</td><td>◎</td></tr><tr><td>zkSync Era</td><td>ZK Rollup</td><td>~3,000</td><td>0.01</td><td>数分</td><td>◎</td></tr><tr><td>Starknet</td><td>ZK Rollup</td><td>~1,000</td><td>0.02</td><td>即時</td><td>△ (Cairo)</td></tr><tr><td>Polygon PoS</td><td>サイドチェーン</td><td>~7,000</td><td>0.005</td><td>数分</td><td>◎</td></tr><tr><td>Lightning</td><td>ステートチャネル</td><td>数万</td><td>ほぼ0</td><td>即時</td><td>✕</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading">開発者視点：L2でのDAppデプロイ手順（Hardhat例）</h2>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="npm init -y &amp;&amp; npm i hardhat @nomiclabs/hardhat-ethers ethers
npx hardhat            # プロジェクト初期化" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">npm</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">init</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">-y</span><span style="color: #D4D4D4"> &amp;&amp; </span><span style="color: #DCDCAA">npm</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">i</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">hardhat</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">@nomiclabs/hardhat-ethers</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">ethers</span></span>
<span class="line"><span style="color: #DCDCAA">npx</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">hardhat</span><span style="color: #D4D4D4">            </span><span style="color: #6A9955"># プロジェクト初期化</span></span></code></pre></div>



<p class="wp-block-paragraph"><code>hardhat.config.js</code></p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="module.exports = {
  solidity: &quot;0.8.18&quot;,
  networks: {
    arbitrum: {
      url: &quot;https://arb1.arbitrum.io/rpc&quot;,
      accounts: [process.env.PRIVATE_KEY]
    }
  }
};" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #4EC9B0">module</span><span style="color: #D4D4D4">.</span><span style="color: #4EC9B0">exports</span><span style="color: #D4D4D4"> = {</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">solidity:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;0.8.18&quot;</span><span style="color: #D4D4D4">,</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">networks:</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">arbitrum:</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">url:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;https://arb1.arbitrum.io/rpc&quot;</span><span style="color: #D4D4D4">,</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">accounts:</span><span style="color: #D4D4D4"> [</span><span style="color: #9CDCFE">process</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">env</span><span style="color: #D4D4D4">.</span><span style="color: #4FC1FF">PRIVATE_KEY</span><span style="color: #D4D4D4">]</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"><span style="color: #D4D4D4">  }</span></span>
<span class="line"><span style="color: #D4D4D4">};</span></span></code></pre></div>



<p class="wp-block-paragraph">デプロイスクリプト</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="async function main() {
  const Counter = await ethers.getContractFactory(&quot;Counter&quot;);
  const counter = await Counter.deploy();
  await counter.deployed();
  console.log(&quot;Counter:&quot;, counter.address);
}
main();" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #569CD6">async</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">function</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">main</span><span style="color: #D4D4D4">() {</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">Counter</span><span style="color: #D4D4D4"> = </span><span style="color: #C586C0">await</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ethers</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">getContractFactory</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;Counter&quot;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">counter</span><span style="color: #D4D4D4"> = </span><span style="color: #C586C0">await</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Counter</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">deploy</span><span style="color: #D4D4D4">();</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">await</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">counter</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">deployed</span><span style="color: #D4D4D4">();</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">console</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">log</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;Counter:&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">counter</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">address</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">}</span></span>
<span class="line"><span style="color: #DCDCAA">main</span><span style="color: #D4D4D4">();</span></span></code></pre></div>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="PRIVATE_KEY=0x... npx hardhat run scripts/deploy.js --network arbitrum" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #9CDCFE">PRIVATE_KEY</span><span style="color: #D4D4D4">=</span><span style="color: #B5CEA8">0</span><span style="color: #CE9178">x...</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">npx</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">hardhat</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">run</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">scripts/deploy.js</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">--network</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">arbitrum</span></span></code></pre></div>



<p class="wp-block-paragraph">Optimistic や zkSync も RPC エンドポイントを変えるだけで同様にデプロイ可能です。</p>



<h2 class="wp-block-heading">レイヤー2とは何か──“セキュリティはL1、処理はL2”</h2>



<h3 class="wp-block-heading">基本アーキテクチャ</h3>



<p class="wp-block-paragraph">レイヤー2は「トランザクションの大部分を L1 の外で処理し、最終的な結果だけを L1 に書き戻す」ことでスループットとコストを劇的に改善します。L1 はセキュリティとデータ可用性を担保し、L2 は高速処理に特化する<strong>モジュラー型ブロックチェーン</strong>の代表的実装です。</p>



<h3 class="wp-block-heading">L2の方式を徹底解説</h3>



<h4 class="wp-block-heading">オプティミスティックロールアップ</h4>



<ul class="wp-block-list">
<li><strong>仕組み</strong>：Sequencer がバッチを L1 に投稿し、異議申し立て期間（Challenge Window）中に不正がなければ確定</li>



<li><strong>メリット</strong>：EVM 完全互換で開発が容易、ZK 証明が不要で計算負荷が低い</li>



<li><strong>デメリット</strong>：出金遅延（Arbitrum/Optimism では 7 日）が UX を阻害</li>
</ul>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="sequenceDiagram
  participant User
  participant Sequencer
  participant L1
  User-&gt;&gt;Sequencer: Tx 提出
  Sequencer-&gt;&gt;Sequencer: バッチ圧縮
  Sequencer-&gt;&gt;L1: データ投稿
  Note over L1: 7日間 Challenge
  L1--&gt;&gt;User: 完了通知" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #C586C0">sequenceDiagram</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">participant</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">User</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">participant</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Sequencer</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">participant</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">L1</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">User</span><span style="color: #C586C0">-&gt;&gt;</span><span style="color: #9CDCFE">Sequencer</span><span style="color: #C586C0">:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Tx 提出</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">Sequencer</span><span style="color: #C586C0">-&gt;&gt;</span><span style="color: #9CDCFE">Sequencer</span><span style="color: #C586C0">:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">バッチ圧縮</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">Sequencer</span><span style="color: #C586C0">-&gt;&gt;</span><span style="color: #9CDCFE">L1</span><span style="color: #C586C0">:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">データ投稿</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">Note</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">over</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">L1</span><span style="color: #C586C0">:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">7日間 Challenge</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">L1</span><span style="color: #C586C0">--&gt;&gt;</span><span style="color: #9CDCFE">User</span><span style="color: #C586C0">:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">完了通知</span></span></code></pre></div>



<h4 class="wp-block-heading">ZKロールアップ</h4>



<ul class="wp-block-list">
<li><strong>仕組み</strong>：L2 で生成した ZK‑SNARK/‑STARK 証明と状態ルートを L1 に投稿し、即時確定</li>



<li><strong>メリット</strong>：即時出金、セキュリティ強、データ圧縮効率が高い</li>



<li><strong>デメリット</strong>：証明生成が計算集約的でガス代も高め（ただし急速に最適化中）</li>
</ul>



<h4 class="wp-block-heading">サイドチェーン</h4>



<ul class="wp-block-list">
<li><strong>仕組み</strong>：独自のバリデータセットを持つ別チェーン。Polygon PoS、BNB Chain など</li>



<li><strong>メリット</strong>：ガスモデルやブロックサイズを自由に設定可能、取引コスト極小</li>



<li><strong>デメリット</strong>：セキュリティが L1 と独立しており、ブリッジ攻撃リスクが高い</li>
</ul>



<h4 class="wp-block-heading">ステートチャネル</h4>



<ul class="wp-block-list">
<li><strong>仕組み</strong>：参加者間でオフチェーン署名を交換し、最終結果だけを L1 に書き込む（Lightning, Raiden）</li>



<li><strong>メリット</strong>：即時・手数料ほぼゼロ、マイクロペイメントに最適</li>



<li><strong>デメリット</strong>：参加者が常時オンライン、N→N の拡張が困難</li>
</ul>



<h4 class="wp-block-heading">プラズマ</h4>



<ul class="wp-block-list">
<li><strong>仕組み</strong>：子チェーンで取引を処理し、定期的に Merkle ルートを L1 に投稿（OMG Network）</li>



<li><strong>メリット</strong>：大量トランザクション処理に強い</li>



<li><strong>デメリット</strong>：Exit 手続きが複雑、NFT など状態フルコピーが必要なアプリに不向き</li>
</ul>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">セキュリティと課題</h2>



<ul class="wp-block-list">
<li><strong>ブリッジ攻撃</strong>：L1&#x2194;L2間ブリッジは巨額資産が集中し攻撃対象になりやすい</li>



<li><strong>データ可用性</strong>：Validium のようにデータをオフチェーン保存する方式では、データ喪失リスクがある</li>



<li><strong>中央集権化懸念</strong>：Sequencer が単一点障害になる場合があり、ダウンタイム事例も存在</li>
</ul>



<h2 class="wp-block-heading">エコシステムの最新動向</h2>



<h3 class="wp-block-heading">DeFi の L2 移行</h3>



<p class="wp-block-paragraph">Uniswap、Aave、Curve など主要プロトコルが続々と L2 にデプロイ。手数料が数十分の一に削減され、アクティブユーザーが急増。</p>



<h3 class="wp-block-heading">NFT とロールアップ</h3>



<p class="wp-block-paragraph">zkSync Era 上での NFT ミントはガス代が約 0.005 USD。OpenSea も L2 対応を進めており、クリエイターが大量発行しやすい環境が整備。</p>



<h3 class="wp-block-heading">企業・政府導入</h3>



<p class="wp-block-paragraph">Visa が Starknet でオフチェーン決済の検証を発表。韓国政府は公共機関 ID を Polygon Supernet で実装予定。</p>



<h2 class="wp-block-heading">最新トレンドと将来展望</h2>



<h3 class="wp-block-heading">EIP‑4844 のインパクト</h3>



<ul class="wp-block-list">
<li><strong>データブロブ</strong>：ロールアップデータを廉価に投稿可能</li>



<li><strong>予想効果</strong>：L2 ガス代がさらに 5～10 倍削減、NFT ミントが 1 円未満に</li>



<li><strong>実装状況</strong>：Dencun アップグレードでメインネット導入予定（2024 下期）</li>
</ul>



<h3 class="wp-block-heading">アプリケーション固有ロールアップ</h3>



<p class="wp-block-paragraph">dYdX v4（Cosmos SDK + ABCI）、Lens Network、Otherside（Yuga Labs）が独自ロールアップを採用し、アプリごとに最適化されたスループットと手数料を実現。</p>



<h3 class="wp-block-heading">クロスロールアップ通信</h3>



<p class="wp-block-paragraph">LayerZero、Connext、Hyperlane などが「<strong>ロールアップ間メッセージング</strong>」を提供。複数 L2 を横断する DApp（例：ステーブルコイン自動最安転送）が誕生しつつある。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">レイヤー1はブロックチェーンの基盤としてセキュリティと分散性を担保し、レイヤー2はその上でスケーラビリティとユーザビリティを飛躍的に高める役割を果たします。オプティミスティックロールアップと ZK ロールアップが二大潮流となり、サイドチェーンやステートチャネルがニッチ領域を補完。EIP‑4844 やデータ可用性レイヤーの台頭により、L2 は「ブロックチェーン利用のデフォルト」へと進化しつつあります。<br>開発者にとっては RPC を切り替えるだけで L2 にデプロイでき、ユーザーは数円以下の手数料で高速トランザクションを享受できる時代が到来しました。スケーラビリティの壁を越える鍵は、まさにレイヤー2にあります。</p>



<p class="wp-block-paragraph"><strong>次のステップ</strong></p>



<ol class="wp-block-list">
<li>Hardhat で L2 ネットワーク RPC を追加し、既存コントラクトをデプロイしてガス比較を体験</li>



<li>ブリッジ SDK を用いて L1&#x2194;L2 資産移動の UX を検証</li>



<li>EIP‑4844 後のガスモデルを想定し、ロールアップネイティブな DApp 設計に着手</li>
</ol>



<p class="wp-block-paragraph">スケーラブルでユーザーフレンドリーなブロックチェーンを目指すなら、今こそ L2 の理解と実装が必須です。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://techgrowup.net/blockchain-layer/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Telegram発・次世代ブロックチェーン「TON」完全ガイド──歴史・アーキテクチャ・開発手順・エコシステム解説</title>
		<link>https://techgrowup.net/blockchain-ton-2/</link>
					<comments>https://techgrowup.net/blockchain-ton-2/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[techgrowup]]></dc:creator>
		<pubDate>Sun, 13 Apr 2025 23:00:00 +0000</pubDate>
				<category><![CDATA[ブロックチェーン]]></category>
		<category><![CDATA[CBDC]]></category>
		<category><![CDATA[DAO]]></category>
		<category><![CDATA[DeFi]]></category>
		<category><![CDATA[FunC]]></category>
		<category><![CDATA[GameFi]]></category>
		<category><![CDATA[NFT]]></category>
		<category><![CDATA[Tact]]></category>
		<category><![CDATA[Telegram]]></category>
		<category><![CDATA[The Open Network]]></category>
		<category><![CDATA[TON]]></category>
		<category><![CDATA[TVM]]></category>
		<category><![CDATA[マルチシャーディング]]></category>
		<guid isPermaLink="false">https://techgrowup.net/?p=2767</guid>

					<description><![CDATA[はじめに スマートフォンの普及によってメッセンジャーはもはや“日常インフラ”です。もしそのチャット UI から暗号資産の送金や NFT の購入、DeFi への流動性提供まで完結できたら──TON（The Open Net [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">はじめに</h1>



<p class="wp-block-paragraph">スマートフォンの普及によってメッセンジャーはもはや“日常インフラ”です。もしそのチャット UI から暗号資産の送金や NFT の購入、DeFi への流動性提供まで完結できたら──<strong>TON（The Open Network）</strong> はその未来を最短距離で実現しようとしているレイヤー1 ブロックチェーンです。<br>Telegram が構想した「Telegram Open Network」をコミュニティが引き継ぎ、<strong>マルチシャーディング</strong>・<strong>TVM（TON Virtual Machine）</strong>・<strong>超高速ファイナリティ</strong>を武器に、Web3 のマスアダプションを目指しています。本記事では公式開発サイト <a rel="noopener" target="_blank" class="" href="https://ton.org/dev">https://ton.org/dev<span class="fa fa-external-link external-icon anchor-icon"></span></a> を軸に、技術設計・開発手順・巨大エコシステム・トークン経済・ロードマップを 解説します。</p>



<h2 class="wp-block-heading">TON の歴史とビジョン</h2>



<h3 class="wp-block-heading">Telegram Open Network から The Open Network へ</h3>



<ul class="wp-block-list">
<li><strong>2018 年</strong>：Telegram が 17 億 USD を調達し、独自チェーン TON を発表。</li>



<li><strong>2020 年</strong>：米 SEC との法的対立で Telegram は TON を断念。ただしソースコードはオープンソースとして公開。</li>



<li><strong>2021 年</strong>：コミュニティがコードをフォークし、名称を <strong>The Open Network</strong> と改め開発を継続。</li>



<li><strong>2022 年</strong>：メインネット安定稼働。Telegram ウォレットボットが TON 送金に対応し、ハンドルネーム NFT を発行。</li>
</ul>



<p class="wp-block-paragraph">「中央集権的サービスを介さず、メッセンジャー UI のままブロックチェーンを利用できる」というビジョンは、LINE・WeChat などが試みる Web3 施策とも一線を画します。Telegram との資本関係はないものの、ウォレットボットやミニアプリを通じた密な連携が、他チェーンにはない UX を生み出しています。</p>



<h2 class="wp-block-heading">TON の技術アーキテクチャ</h2>



<h3 class="wp-block-heading">三層シャーディングで“理論無限スケール”</h3>



<figure class="wp-block-table"><div class="scrollable-table"><table class="has-fixed-layout"><thead><tr><th>レイヤー</th><th>役割</th><th>特徴</th></tr></thead><tbody><tr><td><strong>Masterchain</strong></td><td>バリデータセット、ガバナンス、グローバルメタデータを保持</td><td>ネットワークの「背骨」</td></tr><tr><td><strong>Workchain</strong></td><td>アプリ／地域ごとに独立したルールや VM を設定</td><td>今後 EVM Workchain 実装予定</td></tr><tr><td><strong>Shardchain</strong></td><td>Workchain を動的に水平分割</td><td>トランザクション量に応じて自動増減</td></tr></tbody></table></div></figure>



<p class="wp-block-paragraph">動的シャーディングは、Ethereum2.0 や NEAR の“固定シャード”と異なり、負荷に応じてリアルタイムでシャード数を増減させます。これにより理論 TPS は 10 万超、ブロックタイムは 0.2 秒、ファイナリティは 5 秒前後を実測しています。</p>



<h3 class="wp-block-heading">PoS+BFT 合意</h3>



<p class="wp-block-paragraph">TON は DPoS ではなく <strong>シンプル PoS + BFT</strong> を採用。</p>



<ol class="wp-block-list">
<li>ステーク上位の候補からランダムローテーションでブロック提案者を選出</li>



<li>他バリデータが BFT 署名を付与し、2/3 以上で確定</li>



<li>不正提案はスラッシングでステーク没収</li>
</ol>



<p class="wp-block-paragraph">これにより高速ファイナリティとセキュリティを両立し、フォークリスクを最小化します。</p>



<h3 class="wp-block-heading">TON Virtual Machine (TVM)</h3>



<ul class="wp-block-list">
<li><strong>256‑bit スタックマシン</strong>：EVM の 256‑bit スタックと互換性が高いが、命令セットはより軽量。</li>



<li><strong>FunC</strong>：C 風構文の低レベル言語。手動メモリ管理でガス効率を極限まで最適化可能。</li>



<li><strong>Tact</strong>：TypeScript ライクな高級言語。型推論・モジュール・ユニットテストが組み込み。</li>



<li><strong>Solidity</strong>：EVM Workchain がローンチすればそのまま移植可能。</li>
</ul>



<p class="wp-block-paragraph">TVM のメッセージ駆動モデルはアクター型に近く、コントラクト同士が非同期メッセージでやり取りします。このため「Re‑entrancy」リスクが構造的に小さく、DeFi 開発者から高評価を得ています。</p>



<h2 class="wp-block-heading">開発者向けツールチェーン詳細</h2>



<h3 class="wp-block-heading">toncli の基本操作</h3>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="pip install toncli
toncli new hello-func
cd hello-func
vim contracts/contract.fc   # コード編集
toncli build
toncli deploy contracts/contract.tvc --value 1
toncli run get              # コントラクト呼び出し" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">pip</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">install</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">toncli</span></span>
<span class="line"><span style="color: #DCDCAA">toncli</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">new</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">hello-func</span></span>
<span class="line"><span style="color: #DCDCAA">cd</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">hello-func</span></span>
<span class="line"><span style="color: #DCDCAA">vim</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">contracts/contract.fc</span><span style="color: #D4D4D4">   </span><span style="color: #6A9955"># コード編集</span></span>
<span class="line"><span style="color: #DCDCAA">toncli</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">build</span></span>
<span class="line"><span style="color: #DCDCAA">toncli</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">deploy</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">contracts/contract.tvc</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">--value</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">1</span></span>
<span class="line"><span style="color: #DCDCAA">toncli</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">run</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">get</span><span style="color: #D4D4D4">              </span><span style="color: #6A9955"># コントラクト呼び出し</span></span></code></pre></div>



<h3 class="wp-block-heading">Tact のワークフロー</h3>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="npm i -g tact
tact new counter
cd counter
vim src/Counter.tact
tact compile
tact deploy build/Counter.tvc --value 0.5
tact call get               # ステート読み出し" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">npm</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">i</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">-g</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">tact</span></span>
<span class="line"><span style="color: #DCDCAA">tact</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">new</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">counter</span></span>
<span class="line"><span style="color: #DCDCAA">cd</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">counter</span></span>
<span class="line"><span style="color: #DCDCAA">vim</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">src/Counter.tact</span></span>
<span class="line"><span style="color: #DCDCAA">tact</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">compile</span></span>
<span class="line"><span style="color: #DCDCAA">tact</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">deploy</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">build/Counter.tvc</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">--value</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">0.5</span></span>
<span class="line"><span style="color: #DCDCAA">tact</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">call</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">get</span><span style="color: #D4D4D4">               </span><span style="color: #6A9955"># ステート読み出し</span></span></code></pre></div>



<h3 class="wp-block-heading">デバッグ &amp; テスト</h3>



<ul class="wp-block-list">
<li><strong>toncli test</strong>：ローカル TVM を起動し、FunC スクリプトで単体テスト</li>



<li><strong>tact test</strong>：Jest 風シンタックスで記述。<code>expect(counter.get()).toBe(1)</code> のように直感的</li>
</ul>



<h3 class="wp-block-heading">RPC &amp; フロントエンド</h3>



<p class="wp-block-paragraph"><code>TonWeb.js</code> を使えば React/Next.js から TVM RPC を呼び出し可能。<code>wallet.sendTransaction</code> でチャットボット経由の送金も簡単に実装できます。</p>



<h2 class="wp-block-heading">エコシステムを形作る 6 つのレイヤー</h2>



<h3 class="wp-block-heading">インフラレイヤー</h3>



<ul class="wp-block-list">
<li><strong>Ton Access</strong>：Alchemy/Infura 的サービス。1 日 3 億 RPC を処理。</li>



<li><strong>TonDNS</strong>：ウォレットアドレスを <code>.ton</code> ドメインへマッピング。25 万登録突破。</li>



<li><strong>Validator Pool</strong>：8 億 TON（約 20 億 USD）がステーキング。年利 5 %。</li>
</ul>



<h3 class="wp-block-heading">DeFi レイヤー</h3>



<figure class="wp-block-table"><div class="scrollable-table"><table class="has-fixed-layout"><thead><tr><th>プロジェクト</th><th>TVL</th><th>特色</th></tr></thead><tbody><tr><td><strong>STON.fi</strong></td><td>150 M USD</td><td>ガス 0.04 %・Telegram ミニアプリ対応</td></tr><tr><td><strong>TonCredit</strong></td><td>65 M</td><td>オラクルに Chainlink 移植</td></tr><tr><td><strong>bemo</strong></td><td>90 M</td><td>stTON 発行、年利 6 %</td></tr></tbody></table></div></figure>



<p class="wp-block-paragraph">ガス代が 0.005 TON（約 0.01 USD）と極小なため、先物 AMM やオプション DEX のテストも進行中です。</p>



<h3 class="wp-block-heading">NFT &amp; デジタルアセット</h3>



<ul class="wp-block-list">
<li><strong>Getgems</strong>：取引高 3 億 USD。Compressed NFT でミントガス 90 % 削減。</li>



<li><strong>Fragment</strong>：Telegram ハンドルネーム NFT。最高落札は “@news” で 2.4 M TON。</li>



<li><strong>TON Diamonds</strong>：リアル宝石と連動するラグジュアリー NFT。</li>
</ul>



<h3 class="wp-block-heading">GameFi &amp; ミニアプリ</h3>



<ul class="wp-block-list">
<li><strong>TON Farm</strong>：MAU 120 万。Tap‑to‑Earn＋広告収益分配。</li>



<li><strong>Catizens</strong>：NFT アバターゲーム。Unity + TVM で低遅延。</li>



<li><strong>Tonopoly</strong>：不動産ボードゲーム β。オンチェーン土地所有。</li>
</ul>



<p class="wp-block-paragraph">Telegram ミニアプリ API を活用し、アプリダウンロード不要で即プレイ可能。オンボーディングが従来 GameFi の 10 分の 1 に短縮され、DAU が爆発的に増加しています。</p>



<h3 class="wp-block-heading">Social / DAO レイヤー</h3>



<ul class="wp-block-list">
<li><strong>TonVote</strong>：Quadratic Voting 採用。200 DAO が利用。</li>



<li><strong>TonTips</strong>：チャット投げ銭。1 日 5 万件のマイクロ決済。</li>



<li><strong>TonID</strong>：ソウルバウンドトークンで信用スコアを可視化し、DeFi 金利に反映。</li>
</ul>



<h3 class="wp-block-heading">リアルアセット / CBDC</h3>



<figure class="wp-block-table"><div class="scrollable-table"><table class="has-fixed-layout"><thead><tr><th>国・企業</th><th>ステータス</th><th>詳細</th></tr></thead><tbody><tr><td>UAE 中央銀行</td><td>PoC 完了</td><td>CBDC Workchain、ガス無料</td></tr><tr><td>カザフスタン郵政</td><td>テスト中</td><td>国際送金ブリッジで手数料 70 % 削減</td></tr><tr><td>Warner&nbsp;Music ME</td><td>提携</td><td>アーティスト NFT とストリーミングロイヤリティ連動</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading">トークン経済とステーキング</h2>



<p class="wp-block-paragraph">TON コインは追加発行がなく、手数料バーンで実質デフレ設計。現在流通量 3.4 B、PoW Giver 残高 1.6 B はエコシステム拡大に合わせて徐々に放出されます。<br>ステーキングは最低 10 k TON から。委任ステークも可能で、年利 4〜7 % を獲得できます。</p>



<h2 class="wp-block-heading">資金調達とコミュニティ支援</h2>



<ul class="wp-block-list">
<li><strong>TONcoin.Fund</strong>：1.5 億 USD。DeFi・GameFi・AI×Web3 にフォーカス。</li>



<li><strong>TON Grants</strong>：年間 500 万 USD。ドキュメント翻訳やライブラリ開発も対象。</li>



<li><strong>Hack‑a‑TON</strong>：四半期開催。前回は 1,200 名が参加し、30 万 USD を分配。</li>
</ul>



<p class="wp-block-paragraph">コミュニティ指標（2024 年 5 月時点）</p>



<figure class="wp-block-table"><div class="scrollable-table"><table class="has-fixed-layout"><thead><tr><th>指標</th><th>数値</th></tr></thead><tbody><tr><td>Telegram ユーザー</td><td>890 k</td></tr><tr><td>GitHub Stars</td><td>17 k</td></tr><tr><td>月間トランザクション</td><td>210 M</td></tr><tr><td>バリデータ数</td><td>392</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading">ロードマップ</h2>



<figure class="wp-block-table"><div class="scrollable-table"><table class="has-fixed-layout"><thead><tr><th>期</th><th>予定</th></tr></thead><tbody><tr><td>2024 Q3</td><td>Tact v1.0、EVM Workchain β</td></tr><tr><td>2024 Q4</td><td>zk‑TON 研究成果、NFT 圧縮 v2</td></tr><tr><td>2025 H1</td><td>Global Name Service と Telegram 完全統合</td></tr><tr><td>2025 H2</td><td>クロスチェーン IBC ブリッジ、AI オラクル実装</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading">強みと課題</h2>



<p class="wp-block-paragraph"><strong>強み</strong></p>



<ul class="wp-block-list">
<li>Telegram ネイティブ UX により 10 億人規模の潜在市場</li>



<li>動的シャーディングで理論無限スケール、ガス極小</li>



<li>FunC／Tact／Solidity（予定）の多言語サポートと豊富なグラント</li>
</ul>



<p class="wp-block-paragraph"><strong>課題</strong></p>



<ul class="wp-block-list">
<li>バリデータのさらなる分散化と地域多様性</li>



<li>ドキュメントのアップデートと国際化対応</li>



<li>Telegram 依存による規制リスクとサービスポリシー変更</li>
</ul>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">TON は「メッセンジャー×ブロックチェーン」という唯一無二のポジションで、UX とスケーラビリティを両立した稀有なレイヤー1です。DeFi・NFT・GameFi から CBDC まで六層エコシステムが拡大し、資金と開発者が急速に集結しています。<br>開発者は <code>toncli</code> や <code>tact</code> で数分でスマートコントラクトをデプロイでき、ユーザーは Telegram だけで暗号資産を管理可能。<strong>マスアダプションに最も近いチェーン</strong> と呼ばれる理由はここにあります。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://techgrowup.net/blockchain-ton-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Venom Blockchainを解説！規制準拠・超高速・マルチチェーン対応のWeb3インフラと開発手順</title>
		<link>https://techgrowup.net/blockchain-venom/</link>
					<comments>https://techgrowup.net/blockchain-venom/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[techgrowup]]></dc:creator>
		<pubDate>Sat, 12 Apr 2025 23:00:00 +0000</pubDate>
				<category><![CDATA[ブロックチェーン]]></category>
		<category><![CDATA[CBDC]]></category>
		<category><![CDATA[DeFi]]></category>
		<category><![CDATA[GameFi]]></category>
		<category><![CDATA[TVM]]></category>
		<category><![CDATA[Venom]]></category>
		<category><![CDATA[Venom Foundation]]></category>
		<category><![CDATA[シャーディング]]></category>
		<category><![CDATA[規制準拠]]></category>
		<guid isPermaLink="false">https://techgrowup.net/?p=2764</guid>

					<description><![CDATA[はじめに 近年、レイヤー 1 ブロックチェーンは「スケーラビリティ」「規制対応」「開発者体験」の三つ巴で競争が激化しています。イーサリアムはスマートコントラクトを世に広めたものの、ガス高騰やトランザクション遅延が常態化し [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading"><strong>はじめに</strong></h1>



<p class="wp-block-paragraph">近年、レイヤー 1 ブロックチェーンは「<strong>スケーラビリティ</strong>」「<strong>規制対応</strong>」「<strong>開発者体験</strong>」の三つ巴で競争が激化しています。イーサリアムはスマートコントラクトを世に広めたものの、ガス高騰やトランザクション遅延が常態化し、金融機関や政府機関が求めるコンプライアンス要件を満たすにはまだ課題が残ります。そこで登場したのが <strong>Venom&nbsp;Blockchain</strong> です。</p>



<p class="wp-block-paragraph">Venom はアブダビ金融自由区 (<strong>ADGM</strong>) でレイヤー 1 として初の規制認可を取得したチェーンで、<strong>動的シャーディング</strong> と <strong>PoS+BFT 合意</strong> により理論上ほぼ無限にスケールします。また、<strong>TVM（TON Virtual Machine）</strong> を基盤に複数言語でのスマートコントラクト開発を可能にし、今後は EVM 互換レイヤーも提供予定です。さらに「パブリック＋プライベート」のハイブリッド設計により、CBDC や国際決済など“現実世界”のユースケースを強く意識している点が特徴です。本記事では Venom の技術アーキテクチャ、開発フロー、ユースケース、トークン経済、ロードマップを 詳しく解説します。</p>



<h2 class="wp-block-heading"><strong>Venom が目指すもの</strong></h2>



<h3 class="wp-block-heading"><strong>規制対応を前提とした設計</strong></h3>



<p class="wp-block-paragraph">多くのパブリックチェーンは「Permissionless」を掲げつつも、法規制と衝突しやすいというジレンマを抱えています。Venom は <strong>ADGM のデジタル資産フレームワーク</strong> に準拠し、<strong>KYC/AML モジュール</strong> をチェーンレベルで実装しました。アカウントごとに「認証済み」「制限付き」「匿名」などのステータスを付与でき、スマートコントラクトは実行時にコンプライアンスチェックを行えます。これにより銀行や中央銀行でも利用可能なレベルの規制遵守が実現します。</p>



<h3 class="wp-block-heading"><strong>ユニバーサル・ブロックチェーン構想</strong></h3>



<p class="wp-block-paragraph">Venom は「<strong>一つのプラットフォームで多様なニーズを満たす</strong>」ことを掲げ、パブリックチェーンとしてのオープン性と、プライベートチェーン並みのカスタマイズ性を両立させています。企業や政府は独自の <strong>Workchain</strong> を立ち上げ、独自ガスモデルや VM を設定可能。公共チェーンのセキュリティを享受しつつ、ニッチな要件に合わせたルールを運用できます。</p>



<h2 class="wp-block-heading"><strong>技術アーキテクチャの詳細</strong></h2>



<h3 class="wp-block-heading"><strong>1. 動的シャーディング</strong></h3>



<p class="wp-block-paragraph">従来の固定シャーディングはシャード数が不足するとボトルネックになります。Venom の <strong>Dynamic&nbsp;Sharding</strong> はネットワーク負荷を監視し、しきい値を超えると <strong>Shardchain</strong> を自動増設。逆に負荷が下がればシャードを統合し、リソースを節約します。これにより TPS は需要に応じて線形に伸び、理論値で <strong>10 万 TPS</strong> 超を目指しています。</p>



<h3 class="wp-block-heading"><strong>2. PoS+BFT 合意</strong></h3>



<p class="wp-block-paragraph">バリデータは <strong>VENOM</strong> をステークし、ラウンドロビンでブロック提案。次に BFT 投票フェーズで 2/3 以上の署名が揃えば 1–2 秒でブロックが確定します。フォークが発生しにくく、最終性が速いため金融決済に適しています。</p>



<h3 class="wp-block-heading"><strong>3. TVM と多言語サポート</strong></h3>



<p class="wp-block-paragraph">Venom は TON 系列の <strong>TVM</strong> を採用し、</p>



<ul class="wp-block-list">
<li><strong>FunC</strong>: TVM ネイティブの関数型言語</li>



<li><strong>Solidity</strong>: EVM ライクな言語。EVM 互換レイヤーで動作予定</li>



<li><strong>C++/Rust</strong>: 高速ネイティブコードを呼び出す FFI を提供します。開発者はパフォーマンス重視なら FunC/C++、既存 DApp 移植なら Solidity を選択できます。</li>
</ul>



<h2 class="wp-block-heading">開発者体験を掘り下げる</h2>



<h3 class="wp-block-heading">CLI と SDK</h3>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="npm i -g venom-dev           # CLI インストール
venom-dev init counter-func  # テンプレート生成
cd counter-func" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">npm</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">i</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">-g</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">venom-dev</span><span style="color: #D4D4D4">           </span><span style="color: #6A9955"># CLI インストール</span></span>
<span class="line"><span style="color: #DCDCAA">venom-dev</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">init</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">counter-func</span><span style="color: #D4D4D4">  </span><span style="color: #6A9955"># テンプレート生成</span></span>
<span class="line"><span style="color: #DCDCAA">cd</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">counter-func</span></span></code></pre></div>



<p class="wp-block-paragraph"><code>counter.fc</code> を編集したら、</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="venom-dev compile counter.fc
venom-dev deploy counter.tvc --value 10" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">venom-dev</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">compile</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">counter.fc</span></span>
<span class="line"><span style="color: #DCDCAA">venom-dev</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">deploy</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">counter.tvc</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">--value</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">10</span></span></code></pre></div>



<p class="wp-block-paragraph">わずか数コマンドでテストネットにデプロイ可能。今後 Hardhat プラグインがリリースされれば、Solidity 開発者は <code>npx hardhat run</code> でそのまま Venom をターゲットにできます。</p>



<h3 class="wp-block-heading">アカウント抽象化とガスレス UX</h3>



<p class="wp-block-paragraph">Venom&nbsp;Wallet は <strong>Account Abstraction</strong> を実装しており、</p>



<ul class="wp-block-list">
<li>ガス代を第三者がスポンサー</li>



<li>ソーシャルリカバリーで秘密鍵紛失を救済</li>



<li>マルチシグ＋ハードウェア署名を標準化<br>といった高度な UX をネイティブでサポートします。</li>
</ul>



<h2 class="wp-block-heading">ユースケースをさらに具体化</h2>



<h3 class="wp-block-heading">1. 中央銀行デジタル通貨 (CBDC)</h3>



<p class="wp-block-paragraph">UAE や GCC 諸国ではクロスボーダー決済コスト削減が急務です。Venom の <strong>Workchain</strong> に政府専用チェーンを作り、</p>



<ol class="wp-block-list">
<li>法定通貨を 1:1 でトークン化</li>



<li>銀行 KYC アカウントのみ転送可能</li>



<li>決済完了後にリアルタイムで FX 清算<br>というフローを実証中と報じられています。</li>
</ol>



<h3 class="wp-block-heading">2. 規制対応 DeFi</h3>



<p class="wp-block-paragraph">DEX「<strong>VenomSwap</strong>」では、匿名ユーザーは 1 日取引上限が設けられ、KYC 済みアカウントは上限なしという <strong>コンプライアンス階層</strong> がスマートコントラクトで自動適用されます。これにより機関投資家も参入しやすい環境を構築しています。</p>



<h3 class="wp-block-heading">3. GameFi のマスアダプション</h3>



<ul class="wp-block-list">
<li><strong>シャード毎にワールド分割</strong> → 同時接続 100 万人規模でも遅延 1 秒以下</li>



<li><strong>NFT ロイヤリティ</strong> を DAO 投票で動的変更</li>



<li><strong>ガスレス取引</strong> でカジュアルユーザーをオンボード</li>
</ul>



<h2 class="wp-block-heading">VENOM トークン経済を深堀り</h2>



<figure class="wp-block-table"><div class="scrollable-table"><table class="has-fixed-layout"><thead><tr><th>指標</th><th>数値</th><th>解説</th></tr></thead><tbody><tr><td>初期供給</td><td>7.2 B</td><td>うち 25 % が財団ロック、10 % がエコシステム報奨</td></tr><tr><td>ステーキング最小額</td><td>10 k VENOM</td><td>誰でもライトノードを立て委任ステーク可</td></tr><tr><td>手数料バーン率</td><td>50 %</td><td>ネットワーク利用が増えるほど供給圧縮</td></tr><tr><td>インフレ上限</td><td>1 %/年</td><td>ステーキング報酬で調整、実質デフレを狙う</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading">他チェーンとの比較で見える強み</h2>



<figure class="wp-block-table"><div class="scrollable-table"><table class="has-fixed-layout"><thead><tr><th>チェーン</th><th>規制準拠</th><th>シャーディング</th><th>ファイナリティ</th><th>ガスコスト</th><th>対象市場</th></tr></thead><tbody><tr><td><strong>Venom</strong></td><td>◎ (ADGM)</td><td>動的</td><td>1–2 秒</td><td>低</td><td>金融・政府</td></tr><tr><td>Ethereum</td><td>△</td><td>×</td><td>12 分</td><td>高</td><td>汎用</td></tr><tr><td>Polygon</td><td>△</td><td>×</td><td>2 秒</td><td>低</td><td>消費者DApp</td></tr><tr><td>Solana</td><td>△</td><td>×</td><td>&lt;1 秒</td><td>低</td><td>DeFi/ゲーム</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading">今後のロードマップ詳細</h2>



<ol class="wp-block-list">
<li><strong>2024 Q3</strong>
<ul class="wp-block-list">
<li>EVM 互換レイヤー β公開</li>



<li>Venom DEX V1 ローンチ（KYC レイヤー組込）</li>
</ul>
</li>



<li><strong>2024 Q4</strong>
<ul class="wp-block-list">
<li>CBDC Pilot Workchain を GCC 2 か国でテスト運用</li>



<li>ZK‑KYC SDK リリース（個人情報を秘匿したままコンプライアンス証明）</li>
</ul>
</li>



<li><strong>2025 H1</strong>
<ul class="wp-block-list">
<li>クロスチェーンブリッジ（Polkadot IBC・Cosmos IBC）</li>



<li>Workchain as‑a‑Service ポータル公開（企業向けクリックデプロイ）</li>
</ul>
</li>
</ol>



<h2 class="wp-block-heading">開発を始めるためのチェックリスト</h2>



<figure class="wp-block-table"><div class="scrollable-table"><table class="has-fixed-layout"><thead><tr><th>ステップ</th><th>目的</th><th>参考コマンド</th></tr></thead><tbody><tr><td>1</td><td>Wallet インストール</td><td><a target="_self" class="">https://venom.network/wallet</a></td></tr><tr><td>2</td><td>テストトークン取得</td><td>Faucet ボタンをクリック</td></tr><tr><td>3</td><td>CLI セットアップ</td><td><code>npm i -g venom-dev</code></td></tr><tr><td>4</td><td>テンプレ生成</td><td><code>venom-dev init mytoken</code></td></tr><tr><td>5</td><td>コントラクト実装</td><td><code>vim token.fc</code></td></tr><tr><td>6</td><td>コンパイル</td><td><code>venom-dev compile token.fc</code></td></tr><tr><td>7</td><td>デプロイ</td><td><code>venom-dev deploy token.tvc --value 20</code></td></tr><tr><td>8</td><td>ブロックエクスプローラ確認</td><td>explorer.venom.network</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading">課題とリスク</h2>



<ol class="wp-block-list">
<li><strong>エコシステム形成</strong><br>新興チェーンゆえに DApp 数・TVL はまだ少ない。財団は 10 億 USD 規模のファンドで開発者誘致を進行中。</li>



<li><strong>複雑なシャーディング</strong><br>動的シャードは運用オーバーヘッドが高く、バリデータソフトの最適化が必須。</li>



<li><strong>規制と分散性のバランス</strong><br>KYC/AML を強制し過ぎるとパーミッションレスの精神が損なわれる可能性。</li>
</ol>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">Venom&nbsp;Blockchain は <strong>規制準拠</strong> と <strong>超高速スケーラビリティ</strong> を両立させた稀有なレイヤー 1 です。</p>



<ul class="wp-block-list">
<li><strong>ADGM 承認</strong>で金融機関・政府案件に適合</li>



<li><strong>動的シャーディング + PoS+BFT</strong> で理論 10 万 TPS を目指す</li>



<li><strong>TVM &amp; マルチ言語</strong>により FunC/C++ から Solidity まで幅広く対応予定</li>



<li><strong>Workchain</strong> で用途別チェーンをワンクリック構築</li>
</ul>



<p class="wp-block-paragraph">DeFi・GameFi はもちろん、CBDC や国際決済のインフラとしても期待が高まる Venom。まずはテストネットで Wallet と CLI をセットアップし、FunC で “Hello&nbsp;Venom” コントラクトをデプロイしてみましょう。次世代 Web3 インフラの可能性を体感できるはずです。</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://techgrowup.net/blockchain-venom/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Goshとは？完全分散型Gitリポジトリ＆DAOプラットフォームを解説 ─ 仕組み・使い方・ユースケースまで</title>
		<link>https://techgrowup.net/blockchain-gosh/</link>
					<comments>https://techgrowup.net/blockchain-gosh/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[techgrowup]]></dc:creator>
		<pubDate>Fri, 11 Apr 2025 23:00:00 +0000</pubDate>
				<category><![CDATA[ブロックチェーン]]></category>
		<category><![CDATA[CI/CD]]></category>
		<category><![CDATA[DAO]]></category>
		<category><![CDATA[Gosh]]></category>
		<category><![CDATA[Web3]]></category>
		<category><![CDATA[コードガバナンス]]></category>
		<category><![CDATA[スマートコントラクト]]></category>
		<category><![CDATA[分散型Git]]></category>
		<guid isPermaLink="false">https://techgrowup.net/?p=2761</guid>

					<description><![CDATA[はじめに ソフトウェア開発の現場では GitHub や GitLab など中央集権的なリポジトリサービスが長らく主流でした。しかし Web3 時代の到来とともに、「コードの履歴やガバナンスそのものをブロックチェーンへ載せ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">はじめに</h1>



<p class="wp-block-paragraph">ソフトウェア開発の現場では GitHub や GitLab など中央集権的なリポジトリサービスが長らく主流でした。しかし Web3 時代の到来とともに、「コードの履歴やガバナンスそのものをブロックチェーンへ載せる」――そんなアプローチが注目を集めています。<br><strong>Gosh</strong> はまさにその最前線に立つプロジェクトで、Git リポジトリを完全分散型でホスティングしつつ、スマートコントラクトによる <strong>DAO（分散型自律組織）</strong> を組み合わせることで、コードと組織運営を一体化させるプラットフォームを提供しています。本記事では公式ドキュメント <a rel="noopener" target="_blank" class="" href="https://docs.gosh.sh/">https://docs.gosh.sh/<span class="fa fa-external-link external-icon anchor-icon"></span></a> を参考に、Gosh の仕組みや導入方法、ユースケースを詳しく紐解いていきます。</p>



<h2 class="wp-block-heading">中央集権型Gitの限界と「コード＝ガバナンス」</h2>



<h3 class="wp-block-heading">中央サービス依存のリスク</h3>



<ul class="wp-block-list">
<li><strong>検閲</strong>: 国や企業のポリシー変更でリポジトリが凍結される事例</li>



<li><strong>改ざん検出困難</strong>: バックエンド DB が改変されても外部からは分からない</li>



<li><strong>単一障害点</strong>: DDoS・SLA違反で開発が停止する可能性</li>
</ul>



<h3 class="wp-block-heading">Web3が提示する解答</h3>



<p class="wp-block-paragraph">ブロックチェーンは改ざん耐性・高可用性・オープンアクセスを備えます。Gosh はこの特性を Git と組み合わせ、<strong>履歴・CI結果・資金フロー</strong>を同一チェーンで管理し「誰でも検証できる開発プロセス」を実現します。</p>



<h2 class="wp-block-heading">Goshのアーキテクチャ詳細</h2>



<h3 class="wp-block-heading">ストレージ層</h3>



<figure class="wp-block-table"><div class="scrollable-table"><table class="has-fixed-layout"><thead><tr><th>レイヤー</th><th>技術</th><th>役割</th></tr></thead><tbody><tr><td>Gitオブジェクト</td><td>IPFS / Arweave</td><td>コミット・ブロブ・タグの実体保存</td></tr><tr><td>メタデータ</td><td>Solidity/EVM</td><td>ハッシュ・PR状態・CI結果を永続化</td></tr><tr><td>大容量LFS</td><td>Filecoin</td><td>バイナリやアセットの長期保存</td></tr></tbody></table></div></figure>



<h3 class="wp-block-heading">ガバナンス層</h3>



<ul class="wp-block-list">
<li><strong>DAO Root Contract</strong> がリポジトリを代表</li>



<li><strong>Role Manager</strong> が Maintainer/Reviewer NFT を発行</li>



<li><strong>Proposal Registry</strong> に Merge／Release／Treasury 等の提案を記録</li>



<li>投票閾値・報酬係数はオンチェーンで随時変更可能</li>
</ul>



<h3 class="wp-block-heading">実行層（分散CI/CD）</h3>



<ol class="wp-block-list">
<li>コミット→IPFSハッシュを DAO に送信</li>



<li>Job Scheduler が Docker ランナーへブロードキャスト</li>



<li>ランナーはビルド・テストを実行し、結果ハッシュを <strong>Result Oracle</strong> へ提出</li>



<li>DAO が検証後にマージ／ロールバックを自動実行</li>
</ol>



<h2 class="wp-block-heading">クイックハンズオン</h2>



<h3 class="wp-block-heading">1. CLIインストール</h3>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="npm install -g @gosh-sh/cli   # または brew install gosh" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">npm</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">install</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">-g</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">@gosh-sh/cli</span><span style="color: #D4D4D4">   </span><span style="color: #6A9955"># または brew install gosh</span></span></code></pre></div>



<h3 class="wp-block-heading">2. 新規DAOリポジトリ作成</h3>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="gosh init hello-gosh &amp;&amp; cd $_
echo &quot;# Hello Gosh&quot; &gt; README.md
git add . &amp;&amp; git commit -m &quot;docs: init&quot;
gosh login --rpc https://testnet.everscale.dev
gosh create-repo hello-gosh --dao --public
gosh push origin main   # DAOコントラクト自動デプロイ" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">gosh</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">init</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">hello-gosh</span><span style="color: #D4D4D4"> &amp;&amp; </span><span style="color: #DCDCAA">cd</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">$_</span></span>
<span class="line"><span style="color: #DCDCAA">echo</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;# Hello Gosh&quot;</span><span style="color: #D4D4D4"> &gt; </span><span style="color: #CE9178">README.md</span></span>
<span class="line"><span style="color: #DCDCAA">git</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">add</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">.</span><span style="color: #D4D4D4"> &amp;&amp; </span><span style="color: #DCDCAA">git</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">commit</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">-m</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;docs: init&quot;</span></span>
<span class="line"><span style="color: #DCDCAA">gosh</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">login</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">--rpc</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">https://testnet.everscale.dev</span></span>
<span class="line"><span style="color: #DCDCAA">gosh</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">create-repo</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">hello-gosh</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">--dao</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">--public</span></span>
<span class="line"><span style="color: #DCDCAA">gosh</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">push</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">origin</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">main</span><span style="color: #D4D4D4">   </span><span style="color: #6A9955"># DAOコントラクト自動デプロイ</span></span></code></pre></div>



<h3 class="wp-block-heading">3. プルリクエスト→投票→マージ</h3>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="git checkout -b feat/login
# 変更...
git commit -am &quot;feat: OAuth login&quot;
gosh push origin feat/login
gosh pr create --title &quot;OAuth login&quot; --target main
# Metamask で投票 → CI 実行 → 自動マージ" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">git</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">checkout</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">-b</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">feat/login</span></span>
<span class="line"><span style="color: #6A9955"># 変更...</span></span>
<span class="line"><span style="color: #DCDCAA">git</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">commit</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">-am</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;feat: OAuth login&quot;</span></span>
<span class="line"><span style="color: #DCDCAA">gosh</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">push</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">origin</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">feat/login</span></span>
<span class="line"><span style="color: #DCDCAA">gosh</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">pr</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">create</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">--title</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;OAuth login&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">--target</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">main</span></span>
<span class="line"><span style="color: #6A9955"># Metamask で投票 → CI 実行 → 自動マージ</span></span></code></pre></div>



<h3 class="wp-block-heading">4. CIパイプライン定義</h3>



<p class="wp-block-paragraph"><code>.goshci.yml</code></p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="stages: [test, build, deploy]

test:
  script: [npm ci, npm test]

build:
  script: [npm run build]

deploy:
  script: [serverless deploy]
  only: [main]" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #569CD6">stages</span><span style="color: #D4D4D4">: [</span><span style="color: #CE9178">test</span><span style="color: #D4D4D4">, </span><span style="color: #CE9178">build</span><span style="color: #D4D4D4">, </span><span style="color: #CE9178">deploy</span><span style="color: #D4D4D4">]</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">test</span><span style="color: #D4D4D4">:</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">script</span><span style="color: #D4D4D4">: [</span><span style="color: #CE9178">npm ci</span><span style="color: #D4D4D4">, </span><span style="color: #CE9178">npm test</span><span style="color: #D4D4D4">]</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">build</span><span style="color: #D4D4D4">:</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">script</span><span style="color: #D4D4D4">: [</span><span style="color: #CE9178">npm run build</span><span style="color: #D4D4D4">]</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">deploy</span><span style="color: #D4D4D4">:</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">script</span><span style="color: #D4D4D4">: [</span><span style="color: #CE9178">serverless deploy</span><span style="color: #D4D4D4">]</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">only</span><span style="color: #D4D4D4">: [</span><span style="color: #CE9178">main</span><span style="color: #D4D4D4">]</span></span></code></pre></div>



<h2 class="wp-block-heading">DeBot：オンチェーンUIの革新</h2>



<p class="wp-block-paragraph">従来 Web サーバが担っていた UI ロジックを <strong>DeBot コントラクト</strong> が引き受け、CLI やモバイルアプリから直接対話。</p>



<ul class="wp-block-list">
<li><strong>Trustless</strong>: UI すら改ざんできない</li>



<li><strong>Bot UX</strong>: コマンドツリー形式で初心者も操作しやすい</li>



<li><strong>ガス効率</strong>: 必要データだけオンチェーンに保持し、重い処理はオフチェーンランナーへ</li>
</ul>



<h2 class="wp-block-heading">主要ユースケースを深掘り</h2>



<h3 class="wp-block-heading">オープンソース資金調達</h3>



<ul class="wp-block-list">
<li>PR がマージされると自動でコントリビューションスコアを付与</li>



<li>毎週 DAO Treasury から EVER をストリーミング報酬</li>



<li>スポンサーはトークンを Treasury へ送るだけで寄付完了、配分は完全自動</li>
</ul>



<h3 class="wp-block-heading">企業内コンプライアンス</h3>



<ul class="wp-block-list">
<li>コンプライアンス部門が Reviewer NFT を保持し、法的に重要な変更のみ承認</li>



<li>CI 成功ハッシュとリリースタグがチェーンに残るため、<strong>監査証跡</strong>をワンクリック提出可能</li>
</ul>



<h3 class="wp-block-heading">マルチチェーンライブラリ管理</h3>



<ul class="wp-block-list">
<li>共通 Solidity ライブラリを Gosh DAO で管理</li>



<li>各チェーンのプロジェクトは Submodule として参照し、更新が承認されると自動で CI が回る</li>
</ul>



<h2 class="wp-block-heading">他プロジェクトとの比較</h2>



<figure class="wp-block-table"><div class="scrollable-table"><table class="has-fixed-layout"><thead><tr><th></th><th><strong>Gosh</strong></th><th>Radicle</th><th>GitHub + Gitcoin</th><th>GitLab Self‑host</th></tr></thead><tbody><tr><td>履歴オンチェーン</td><td>◎</td><td>◯</td><td>×</td><td>×</td></tr><tr><td>ネイティブDAO</td><td>◎</td><td>△</td><td>◯</td><td>×</td></tr><tr><td>分散CI/CD</td><td>◎</td><td>△</td><td>×</td><td>◯</td></tr><tr><td>ガスコスト</td><td>中</td><td>低</td><td>0</td><td>0</td></tr><tr><td>Web2 UX</td><td>△</td><td>◯</td><td>◎</td><td>◎</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading">トークンエコノミクス</h2>



<ul class="wp-block-list">
<li><strong>総供給</strong>: 2 B EVER</li>



<li><strong>インフレ</strong>: 年率 5 %（バリデータ &amp; Treasury 報酬）</li>



<li><strong>バーン</strong>: スパム提案やCI失敗で最大50 %を自動バーン</li>



<li><strong>ガバナンス</strong>: Quadratic Voting・NFTロール重み付けなど複数方式を実装予定</li>
</ul>



<h2 class="wp-block-heading">ロードマップ</h2>



<figure class="wp-block-table"><div class="scrollable-table"><table class="has-fixed-layout"><thead><tr><th>四半期</th><th>予定</th><th>ステータス</th></tr></thead><tbody><tr><td>2024 Q3</td><td><strong>ZK‑Builds</strong>（ビルド結果のZK証明）</td><td>設計中</td></tr><tr><td>2024 Q4</td><td><strong>モバイルDeBotブラウザ</strong></td><td>開発中</td></tr><tr><td>2025 Q1</td><td><strong>Rollup Bridge</strong>（Arbitrum/Optimism）</td><td>研究中</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading">課題とリスク</h2>



<ol class="wp-block-list">
<li><strong>学習コスト</strong>：DeBotやオンチェーン投票の概念が新規開発者には難しい</li>



<li><strong>バリデータ集中</strong>：大口ステークによるガバナンス支配リスク</li>



<li><strong>ブリッジ攻撃</strong>：資産移動時のセキュリティ確保が必須</li>
</ol>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">Gosh は「<strong>リポジトリ＝DAO</strong>」という革新的コンセプトで、</p>



<ul class="wp-block-list">
<li><strong>不変な履歴管理</strong></li>



<li><strong>オンチェーンCI/CD</strong></li>



<li><strong>自動化された資金分配</strong><br>を一体化した Web3 DevOps 基盤を提供します。</li>
</ul>



<p class="wp-block-paragraph">中央集権サービスの制約を脱し、開発とガバナンスを完全に透明化したい個人・企業・OSS プロジェクトにとって、Gosh は強力な選択肢となるでしょう。まずはテストネットで CLI を触り、<strong>プルリク → 投票 → CI → マージ</strong> の新しい開発サイクルを体験してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://techgrowup.net/blockchain-gosh/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Everscaleを解説！超高速・高スケーラブルなブロックチェーンの仕組みとスマートコントラクト開発手順</title>
		<link>https://techgrowup.net/blockchain-everscale/</link>
					<comments>https://techgrowup.net/blockchain-everscale/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[techgrowup]]></dc:creator>
		<pubDate>Thu, 10 Apr 2025 23:00:00 +0000</pubDate>
				<category><![CDATA[ブロックチェーン]]></category>
		<category><![CDATA[DeBot]]></category>
		<category><![CDATA[DeFi]]></category>
		<category><![CDATA[Ever VM]]></category>
		<category><![CDATA[Everscale]]></category>
		<category><![CDATA[NFT]]></category>
		<category><![CDATA[TON]]></category>
		<category><![CDATA[シャーディング]]></category>
		<category><![CDATA[スマートコントラクト]]></category>
		<guid isPermaLink="false">https://techgrowup.net/?p=2754</guid>

					<description><![CDATA[はじめに イーサリアムやビットコインをはじめ、多数のブロックチェーンが注目を集めている昨今、スケーラビリティの問題を解決する新たなプラットフォームが続々と登場しています。その中でもEverscaleは、高度なシャーディン [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">はじめに</h1>



<p class="wp-block-paragraph">イーサリアムやビットコインをはじめ、多数のブロックチェーンが注目を集めている昨今、<strong>スケーラビリティ</strong>の問題を解決する新たなプラットフォームが続々と登場しています。その中でも<strong>Everscale</strong>は、高度なシャーディングと独自の合意形成アルゴリズムを用いることで、<strong>高いトランザクション処理能力</strong>と<strong>低レイテンシ</strong>を両立しようとする先進的なプロジェクトです。<br>Everscaleはもともと Telegram/TON 由来の技術を発展させた経緯があり、<strong>Ever VM</strong> と呼ばれる独自のバーチャルマシンや <strong>DeBot</strong> というユニークな概念を備え、<strong>DeFi</strong> や <strong>NFT</strong>、さらには複雑な分散アプリケーションにも対応可能な柔軟性を持っています。本記事では、Everscale の技術的特徴・コンセンサス設計からスマートコントラクトの開発フローやユースケースまで、初心者にもわかりやすく解説していきます。</p>



<h2 class="wp-block-heading">Everscaleの基礎概念</h2>



<h3 class="wp-block-heading">旧TONプロジェクトとの関係</h3>



<p class="wp-block-paragraph">Everscaleは、もともとTelegramが構想していた<strong>Telegram Open Network (TON)</strong> の技術をベースに、コミュニティが発展させたチェーンの一つです。当初 Telegram は独自のブロックチェーンを構築しようとしましたが、法的問題によりプロジェクトを断念。残された技術（特にブロックチェーン部分）は複数のコミュニティに分岐し、<strong>Everscale</strong>はその中でも大きく発展を続けるプロジェクトとして知られています。<br>「TON OS」と呼ばれたオペレーティングシステムやシャーディングのアイデアを継承し、今では<strong>マルチチェーン</strong>かつ<strong>高度スケーラビリティ</strong>を掲げる独自路線を走っています。</p>



<h3 class="wp-block-heading">スケーラビリティとターゲット</h3>



<p class="wp-block-paragraph">Everscaleが特に強調するのは「<strong>きわめて高いスケーラビリティ</strong>」。ブロックチェーンの世界ではTPS（トランザクション毎秒）やブロックタイムが注目されがちですが、Everscaleは<strong>動的シャーディング</strong>によって多数のバーチャルチェーンを並列稼働させ、必要に応じてチェーンを分割（シャード）して処理を拡張できる設計を持ちます。<br>その結果、<strong>大規模な金融取引</strong>や<strong>SNSクラスの大量アクセス</strong>を支えられるポテンシャルを狙い、今後のDeFiやWeb3サービスにおける<strong>基盤プラットフォーム</strong>となる可能性を秘めています。</p>



<h3 class="wp-block-heading">ネイティブトークン：EVER</h3>



<p class="wp-block-paragraph">Everscaleのネイティブトークンは<strong>EVER</strong>で、以前は<code>TON Crystal</code>と呼ばれていた時期もありました。</p>



<ul class="wp-block-list">
<li>トランザクション手数料の支払い</li>



<li>ステーキングによるバリデータ運営</li>



<li>ガバナンス投票やDeFi利用<br>など、多彩な用途があり、多くの取引所でも売買が行われています。</li>
</ul>



<h2 class="wp-block-heading">コンセンサスとシャーディング</h2>



<h3 class="wp-block-heading">Dynamic Shardingアーキテクチャ</h3>



<p class="wp-block-paragraph">Everscaleは<strong>マルチシャード</strong>構造を採用し、処理が増加すれば自動的にチェーンを分割して並列処理を行う仕組みを搭載。これによりチェーンが過負荷になっても<strong>スケールアウト</strong>が容易で、<strong>データ処理能力を理論上ほぼ無限に高められる</strong>とされています。</p>



<ul class="wp-block-list">
<li><strong>WorkChain</strong>：ネットワークを構成する主要チェーンの単位</li>



<li><strong>ShardChain</strong>：WorkChain内が更にシャーディングされたもの</li>



<li><strong>MasterChain</strong>：全体の最終状態やバリデータの合意、メタデータを管理</li>
</ul>



<h3 class="wp-block-heading">BFT（Byzantine Fault Tolerant）の要素</h3>



<p class="wp-block-paragraph">Everscaleは<strong>Byzantine Fault Tolerance</strong>を備えた合意形成アルゴリズムを採用しており、ネットワーク参加者の一部が悪意を持って行動しても整合性が崩れないよう設計されています。<br>ステーキングされたEVERを担保にバリデータが誠実にブロック生成やメッセージルーティングを行うことで、高速かつ安全な分散型ネットワークが機能する仕組みとなっています。</p>



<h2 class="wp-block-heading">Everscaleのバーチャルマシン: Ever VM</h2>



<h3 class="wp-block-heading">Ever VMの特徴</h3>



<p class="wp-block-paragraph">イーサリアムがEVM、SolanaがSealevelなど、各チェーンが独自の仮想マシンを採用する中、Everscaleでは<strong>Ever VM</strong>がスマートコントラクトの実行環境として動作します。</p>



<ul class="wp-block-list">
<li><strong>高スケーラビリティ</strong>：シャーディングと連携し、複数のコンピュートリソースを並列に扱える</li>



<li><strong>複数のプログラミング言語サポート</strong>：C++やRust、あるいは特別な高級言語である「<strong>FunC</strong>」なども利用</li>



<li><strong>オンチェーンデータ構造</strong>：マルチシャード環境でのデータ管理を柔軟に処理</li>
</ul>



<h3 class="wp-block-heading">メッセージングとコールモデル</h3>



<p class="wp-block-paragraph">Everscaleでは<strong>メッセージ</strong>がコントラクト間・シャード間を行き来し、非同期に処理を行うモデルが採用されています。トランザクションはメッセージの送受信をトリガーに実行されるため、<strong>Solidity/EVM型</strong>の「1つのトランザクションで複数コントラクト呼び出し」を行う慣習とはやや異なる設計が見受けられます。<br>ただし、互換レイヤーを通じて<strong>Solidity</strong>を使うことも可能であり、<strong>DeFi</strong>や<strong>NFT</strong>などで一般的な設計パターンを適用しやすいように工夫されています。</p>



<h2 class="wp-block-heading">スマートコントラクト開発手順</h2>



<h3 class="wp-block-heading">言語: FunC, Solidity, C++</h3>



<p class="wp-block-paragraph">Everscaleでは<strong>FunC</strong>という独自の関数型言語や、<strong>C++</strong>, <strong>Solidity</strong>など複数の言語を利用できます。初心者が使い慣れているという点では、<strong>Solidity</strong>での開発が手軽かもしれませんが、FunCやC++で書くとより高度な最適化やEver VMとの親和性が高くなるとされています。</p>



<h4 class="wp-block-heading">FunCの簡単な例</h4>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code=";; これはあくまで概念的なサンプル
import &quot;stdlib.fc&quot;;

(int) main() {
  ;; Everscaleに合わせたメッセージハンドリング等を行う
  ;; ...
  return 0;
}" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">;; これはあくまで概念的なサンプル</span></span>
<span class="line"><span style="color: #D4D4D4">import </span><span style="color: #CE9178">&quot;stdlib.fc&quot;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">(</span><span style="color: #569CD6">int</span><span style="color: #D4D4D4">) </span><span style="color: #DCDCAA">main</span><span style="color: #D4D4D4">() {</span></span>
<span class="line"><span style="color: #D4D4D4">  ;; Everscaleに合わせたメッセージハンドリング等を行う</span></span>
<span class="line"><span style="color: #D4D4D4">  ;; ...</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">return</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">}</span></span></code></pre></div>



<p class="wp-block-paragraph">実際には<code>fift</code>ツールやコンパイラなどを使い、バイトコードへ変換しデプロイします。</p>



<h3 class="wp-block-heading">CLIツールとSDK</h3>



<p class="wp-block-paragraph">Everscaleには<strong>everdev</strong> CLIなどが提供され、コントラクトのコンパイル、ローカルテスト、ネットワークへのデプロイを支援します。</p>



<ul class="wp-block-list">
<li><strong>everdev sol compile</strong>: Solidityソースをコンパイル</li>



<li><strong>everdev contract deploy</strong>: デプロイ先を指定し、コントラクトを配置</li>
</ul>



<h3 class="wp-block-heading">Testnet/Mainnetへの接続</h3>



<p class="wp-block-paragraph"><strong>testnet</strong>や<strong>mainnet</strong>それぞれで異なるRPCエンドポイントがあり、<strong>everdev</strong>やGUIウォレットから接続を切り替えて運用可能です。<br><strong>波状</strong>に発展した高いスケーラビリティを試すにはtestnetが便利で、大量のトランザクション実験やDAppの機能チェックを通じて、本番デプロイ前に最適化ができます。</p>



<h2 class="wp-block-heading">DeBot: 独自のUI概念</h2>



<h3 class="wp-block-heading">DeBotとは何か</h3>



<p class="wp-block-paragraph">Everscaleには<strong>DeBot</strong>という独特のユーザーインターフェイス仕組みがあります。これは<strong>Decentralized Bot</strong>の略で、<strong>オンチェーンに存在するコード</strong>がユーザとのインタラクションを行うという発想に基づきます。</p>



<ul class="wp-block-list">
<li>Webサーバを介さず、<strong>直接ブロックチェーン上</strong>のロジックがUIフローを制御</li>



<li>CLIやモバイルアプリなどでDeBotを呼び出し、操作手順をオンチェーンの状態に従って動的に表示<br>DeFiやDAOの操作を<strong>Bot形式</strong>でユーザーに提供することで、<strong>中央集権のWebサーバを排除</strong>し、本当の意味での分散型アプリケーションを構築できる可能性があります。</li>
</ul>



<h3 class="wp-block-heading">DeBot開発例</h3>



<p class="wp-block-paragraph">以下はあくまで概念的なサンプルですが、<strong>DeBot</strong>では「ユーザーに選択肢を提示」「オンチェーンの状態を参照」「次のアクションへ移行」といったシナリオが<strong>UIロジック</strong>としてスマートコントラクト内に記述されます。<br>ユーザーがDeBotブラウザやCLIで起動し、デプロイされたDeBotコントラクトとやり取りするイメージです。</p>



<h2 class="wp-block-heading">代表的ユースケースとプロジェクト</h2>



<h3 class="wp-block-heading">DeFi</h3>



<p class="wp-block-paragraph">Everscale上でも<strong>Dex</strong>や<strong>レンディング</strong>、<strong>ステーブルコイン</strong>など各種DeFiプロトコルが展開されています。高スループットを活かしながら、<strong>通貨交換</strong>や<strong>ファーミング</strong>などの利回り運用が可能。<br><strong>EverSwap</strong>や<strong>FlatQube</strong>などのDEXがあり、ユーザーは<strong>EVER</strong>や他の代替トークンを取引できる仕組みが整備されてきています。</p>



<h3 class="wp-block-heading">NFTとゲーム</h3>



<p class="wp-block-paragraph">NFT対応も進み、<strong>Everscale NFT</strong>として独自の標準が策定されつつあります。イーサリアムのERC-721/1155にならった形で発行や取引が可能で、<strong>ブリッジ</strong>を介して他チェーンとの相互運用も期待されます。将来的には高速決済や大規模ユーザー向けの<strong>ゲームアプリ</strong>がEverscale上に登場する可能性もあります。</p>



<h3 class="wp-block-heading">企業ユース・大規模アプリ</h3>



<p class="wp-block-paragraph">Everscaleはシャーディングや高速合意により、<strong>企業アプリケーション</strong>や<strong>政府レベルのシステム</strong>にも対応可能と謳っています。例えば<strong>ロジスティクス追跡</strong>や<strong>ID認証</strong>、<strong>大規模決済基盤</strong>など、数千TPSを要するシナリオに適するという見解があります。</p>



<h2 class="wp-block-heading">セキュリティと課題</h2>



<h3 class="wp-block-heading">分散度・バリデータへの依存</h3>



<p class="wp-block-paragraph">EverscaleはPoS類似の仕組みでバリデータを選定しますが、<strong>バリデータの集中</strong>や<strong>大口ステーク</strong>が進めば検閲耐性を損なう恐れがあります。今後、より多くの参加者がステークしやすい仕組みづくりが重要となるでしょう。</p>



<h3 class="wp-block-heading">ユーザー体験とDeBot</h3>



<p class="wp-block-paragraph">DeBotは斬新なUIコンセプトですが、一般ユーザーにとっては<strong>Bot形式</strong>の操作に慣れる必要があるかもしれません。Web2風のUXを好むユーザーへの受け入れや学習コストが課題となる可能性があります。</p>



<h3 class="wp-block-heading">エコシステム成長</h3>



<p class="wp-block-paragraph">EverscaleがPolygonやBSC、Fantomなどの競合と比べ、どれだけ開発者とユーザーを集められるかが鍵です。現在は<strong>広告・コミュニティ</strong>を中心に徐々に拡大を目指しており、DeFiやNFTの主要プロジェクトが参入するかが普及の大きなポイントになるでしょう。</p>



<h2 class="wp-block-heading">今後の展望</h2>



<h3 class="wp-block-heading">グローバルコミュニティとガバナンス</h3>



<p class="wp-block-paragraph">Everscaleはもともと国際色豊かな開発者が集うコミュニティプロジェクトであり、今後も<strong>DAO的ガバナンス</strong>や<strong>グローバルなバリデータ参加</strong>を促進することで、分散と成長を両立するシナリオが考えられます。どのような仕組みで意見を集約し、プロトコルアップグレードを行うかが注目されます。</p>



<h3 class="wp-block-heading">ブリッジと相互運用</h3>



<p class="wp-block-paragraph">マルチチェーン時代に向け、イーサリアムやBSC、Polkadot、Nearなど、他チェーンとEverscaleをつなぐ<strong>クロスチェーンブリッジ</strong>が次々登場する可能性があります。ユーザーは自分のトークンやNFTを、<strong>Everscaleの高速環境</strong>に持ち込んで活用することでより大きな利便性を得られるでしょう。</p>



<h3 class="wp-block-heading">新しい言語サポート</h3>



<p class="wp-block-paragraph">FunCやC++だけでなく、<strong>Rust</strong>や<strong>Go</strong>など他の言語での開発が一段と容易になるか、あるいはEVMレイヤーの強化によって<strong>Solidity</strong>がフルサポートされるか、といったエコシステムの整備も今後の焦点となるでしょう。開発者の導入ハードルを下げることでDAppが増え、Everscaleがさらに普及する可能性があります。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">Everscaleは、かつてのTONプロジェクトの流れを汲みつつ、<strong>独自のシャーディング</strong>と<strong>Ever VM</strong>を用いて<strong>極めて高いスケーラビリティ</strong>を実現しようとする先進的なブロックチェーンプラットフォームです。</p>



<ul class="wp-block-list">
<li><strong>マルチシャード</strong>構造により、増加するトランザクション負荷に合わせて並列チェーンを動的に追加</li>



<li>**PoS（類似）**モデルでEVERトークンをステークし、バリデータがブロック検証を行う</li>



<li><strong>EVM互換レイヤー</strong>や**FunC, C++**など複数言語に対応したスマートコントラクト実装</li>



<li><strong>DeBot</strong>による分散型UIなどユニークな機能も多く、DeFiやNFTでの応用が進行中</li>
</ul>



<h3 class="wp-block-heading">メリット</h3>



<ul class="wp-block-list">
<li>高速かつスケーラブルな合意形成</li>



<li>イーサリアムに縛られない先進的アーキテクチャ</li>



<li>多言語サポート・DeBotなど革新的な開発モデル</li>
</ul>



<h3 class="wp-block-heading">デメリット・課題</h3>



<ul class="wp-block-list">
<li>他チェーンとのブリッジリスク</li>



<li>DeBotという独自UIへのユーザー/開発者の学習曲線</li>



<li>分散度と大口ステークへの依存</li>
</ul>



<p class="wp-block-paragraph">今後、マルチチェーン化やDeFi, NFTのさらなる拡大を背景に、Everscaleが高トランザクション領域の<strong>メジャープラットフォーム</strong>となる可能性があります。すでに<strong>低手数料、分散化、拡張性</strong>を欲するプロジェクトが着目しており、新しいWeb3サービスがEverscale上で続々登場しています。<br>もし<strong>イーサリアムのガス代</strong>や<strong>スケーラビリティ</strong>に限界を感じているなら、Everscaleでの開発を一考してみる価値があるでしょう。<strong>Solidity</strong>からの移植や<strong>DeBot</strong>など新しい概念を試しながら、分散アプリの可能性をさらに広げることができるかもしれません。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://techgrowup.net/blockchain-everscale/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Fantomを解説！高速・低コストなブロックチェーンの仕組みから開発手順までわかりやすく紹介</title>
		<link>https://techgrowup.net/blockchain-fantom/</link>
					<comments>https://techgrowup.net/blockchain-fantom/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[techgrowup]]></dc:creator>
		<pubDate>Tue, 08 Apr 2025 23:00:00 +0000</pubDate>
				<category><![CDATA[ブロックチェーン]]></category>
		<category><![CDATA[DeFi]]></category>
		<category><![CDATA[EVM互換]]></category>
		<category><![CDATA[Fantom]]></category>
		<category><![CDATA[Lachesis]]></category>
		<category><![CDATA[NFT]]></category>
		<category><![CDATA[スケーラビリティ]]></category>
		<category><![CDATA[スマートコントラクト]]></category>
		<category><![CDATA[高速最終性]]></category>
		<guid isPermaLink="false">https://techgrowup.net/?p=2748</guid>

					<description><![CDATA[はじめに イーサリアムをはじめ、多くのブロックチェーンが抱えるスケーラビリティ問題や高いガスコスト。これらの課題に対する解決策として、近年多様なプラットフォームが登場しています。その中でもFantomは、高速な取引処理と [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">はじめに</h1>



<p class="wp-block-paragraph">イーサリアムをはじめ、多くのブロックチェーンが抱える<strong>スケーラビリティ問題</strong>や<strong>高いガスコスト</strong>。これらの課題に対する解決策として、近年多様なプラットフォームが登場しています。その中でも<strong>Fantom</strong>は、高速な取引処理と低コストを実現するうえで独自のコンセンサス・プロトコルである <strong>Lachesis</strong> を採用し、<strong>DeFi</strong>や<strong>NFT</strong>など幅広いユースケースを展開できる環境として注目を集めているプロジェクトの一つです。<br>Fantom は <strong>EVM互換</strong>を備えており、Solidityで開発されたスマートコントラクトをほぼそのまま移植可能。さらに独自トークン FTM をステーキングしてバリデータになり、ネットワークの安全性を支える仕組みを持っています。本記事では、Fantomの技術的背景やコンセンサスの仕組み、スマートコントラクト開発フロー、そして実際のユースケースや強みを丁寧に解説していきます。</p>



<h2 class="wp-block-heading">Fantomの基本概要</h2>



<h3 class="wp-block-heading">PoSベースの高速ブロックチェーン</h3>



<p class="wp-block-paragraph">Fantomは<strong>Proof of Stake</strong>をベースとしたブロックチェーンですが、単なるPoSではなく<strong>Lachesis</strong>という合意形成アルゴリズムを採用し、高速な最終性を実現しています。従来のチェーンよりも<strong>ブロック生成間隔が短く</strong>、<strong>トランザクション最終承認</strong>（finality）のスピードが1秒程度になるといわれています。<br>これにより、<strong>DeFiやNFT</strong>など大量のトランザクションを処理するdAppにも対応しやすく、ユーザーは<strong>低い手数料</strong>で素早い取引を行える環境が整います。</p>



<h3 class="wp-block-heading">FTMトークン</h3>



<p class="wp-block-paragraph">Fantomのネイティブトークンである <strong>FTM</strong> は、</p>



<ul class="wp-block-list">
<li><strong>ネットワーク手数料</strong> の支払い</li>



<li><strong>ステーキング</strong></li>



<li><strong>ガバナンス投票</strong><br>などに利用されます。取引所では FTM が売買されており、ネットワークの利用度が増えれば FTM の需要が高まる可能性もあります。</li>
</ul>



<h3 class="wp-block-heading">EVM互換</h3>



<p class="wp-block-paragraph">Fantomは<strong>EVM（Ethereum Virtual Machine）互換</strong>を持っているため、<strong>Solidity</strong>や<strong>Vyper</strong>など既存の Ethereum 向け言語やツール（Truffle, Hardhat など）をそのまま使えます。これにより、開発者は新しい言語を学ぶ必要がなく、既存のDAppを移植しやすいというメリットがあります。</p>



<h2 class="wp-block-heading">Lachesisコンセンサスとは</h2>



<h3 class="wp-block-heading">DAG（有向非巡回グラフ）ベースのアルゴリズム</h3>



<p class="wp-block-paragraph">Lachesisは、<strong>ブロックチェーン</strong>に代わるデータ構造として<strong>DAG (Directed Acyclic Graph)を用いる一部のコンセンサス技術の系譜にあります。ただ、FantomのメインネットはOpera Chain</strong>と呼ばれ、見た目は従来のブロックチェーンに近い形を維持しつつ、内部ではDAGの要素を組み合わせて効率的な合意形成を行うよう設計されています。</p>



<h3 class="wp-block-heading">非同期・リーダーレス</h3>



<p class="wp-block-paragraph">Lachesisは<strong>非同期</strong>で<strong>リーダー不要</strong>なコンセンサス方式として宣伝されています。これは、従来のPoSチェーンがブロックプロデューサをリーダー的に指定するのと対照的で、<strong>各ノードが独立してトランザクションの検証</strong>を行い、一定のラウンドで<strong>合意</strong>を得る仕組みです。<br>結果として、<strong>高いトランザクションスループット</strong>と<strong>短い確定時間</strong>を獲得し、1〜2秒以内にファイナリティが得られることを目指しています。</p>



<h3 class="wp-block-heading">セキュリティモデル</h3>



<p class="wp-block-paragraph">Lachesisは<strong>ビザンチン耐性</strong>を確保するため、ネットワーク上の大多数のノードが誠実に振る舞う限り整合性を保てる仕組みを取っています。ノードが悪意ある振る舞いを行うと、ステーキングしているトークンがスラッシングされる可能性があり、不正のハードルが高いと考えられています。</p>



<h2 class="wp-block-heading">ステーキングとバリデータ</h2>



<h3 class="wp-block-heading">FTMステーキング</h3>



<p class="wp-block-paragraph">Fantomネットワークは<strong>Proof of Stake</strong>に近いモデルで運用されています。具体的には、</p>



<ol class="wp-block-list">
<li><strong>バリデータ</strong>になるには一定数の FTM をステークする</li>



<li>正常にブロック検証を続けるとブロック報酬を獲得</li>



<li>不正行為が検出されるとステークが減らされる（スラッシング）<br>ユーザーがバリデータに自分のトークンを<strong>デリゲート</strong>することも可能で、間接的に報酬を得られます。</li>
</ol>



<h3 class="wp-block-heading">バリデータ数とネットワーク分散</h3>



<p class="wp-block-paragraph">Fantomのバリデータ数は数十〜百程度が想定されており、多数のノードが参加すればするほど<strong>分散性が高まる</strong>一方、ハードウェア要件も存在し、参加ハードルがあります。イーサリアムやビットコインほどの分散度には及ばないとの指摘もありますが、その分高速処理が可能というトレードオフがあるわけです。</p>



<h2 class="wp-block-heading">スマートコントラクト開発フロー</h2>



<h3 class="wp-block-heading">Solidity + Hardhatでの例</h3>



<p class="wp-block-paragraph">Fantomは<strong>EVM互換</strong>なので、以下のような Hardhat 設定をすれば簡単にコントラクトをデプロイできます。</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="require(&quot;@nomiclabs/hardhat-waffle&quot;);

module.exports = {
  solidity: &quot;0.8.0&quot;,
  networks: {
    fantomTestnet: {
      url: &quot;https://rpc.testnet.fantom.network&quot;,
      chainId: 4002,
      accounts: [&quot;0xyourprivatekey&quot;]
    },
    fantomMainnet: {
      url: &quot;https://rpc.ftm.tools&quot;,
      chainId: 250,
      accounts: [&quot;0xyourprivatekey&quot;]
    }
  }
};" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">require</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;@nomiclabs/hardhat-waffle&quot;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #4EC9B0">module</span><span style="color: #D4D4D4">.</span><span style="color: #4EC9B0">exports</span><span style="color: #D4D4D4"> = {</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">solidity:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;0.8.0&quot;</span><span style="color: #D4D4D4">,</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">networks:</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">fantomTestnet:</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">url:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;https://rpc.testnet.fantom.network&quot;</span><span style="color: #D4D4D4">,</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">chainId:</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">4002</span><span style="color: #D4D4D4">,</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">accounts:</span><span style="color: #D4D4D4"> [</span><span style="color: #CE9178">&quot;0xyourprivatekey&quot;</span><span style="color: #D4D4D4">]</span></span>
<span class="line"><span style="color: #D4D4D4">    },</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">fantomMainnet:</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">url:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;https://rpc.ftm.tools&quot;</span><span style="color: #D4D4D4">,</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">chainId:</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">250</span><span style="color: #D4D4D4">,</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">accounts:</span><span style="color: #D4D4D4"> [</span><span style="color: #CE9178">&quot;0xyourprivatekey&quot;</span><span style="color: #D4D4D4">]</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"><span style="color: #D4D4D4">  }</span></span>
<span class="line"><span style="color: #D4D4D4">};</span></span></code></pre></div>



<p class="wp-block-paragraph"><code>fantomTestnet</code>（chainId: 4002） と <code>fantomMainnet</code>（chainId: 250）のRPCを指定し、<strong>npx hardhat run scripts/deploy.js &#8211;network fantomTestnet</strong> のように実行すればコントラクトがテストネットにデプロイできます。</p>



<h3 class="wp-block-heading">コントラクト例</h3>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract SimpleStore {
    uint256 public data;

    constructor(uint256 _init) {
        data = _init;
    }

    function setData(uint256 _val) public {
        data = _val;
    }
}" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #6A9955">// SPDX-License-Identifier: MIT</span></span>
<span class="line"><span style="color: #C586C0">pragma</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">solidity</span><span style="color: #D4D4D4"> ^0.8.0;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">contract</span><span style="color: #4EC9B0"> SimpleStore</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #4EC9B0">uint256</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">public</span><span style="color: #D4D4D4"> data;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">constructor</span><span style="color: #D4D4D4">(</span><span style="color: #4EC9B0">uint256</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">_init</span><span style="color: #D4D4D4">) {</span></span>
<span class="line"><span style="color: #D4D4D4">        data = _init;</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">function</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">setData</span><span style="color: #D4D4D4">(</span><span style="color: #4EC9B0">uint256</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">_val</span><span style="color: #D4D4D4">) </span><span style="color: #569CD6">public</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">        data = _val;</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"><span style="color: #D4D4D4">}</span></span></code></pre></div>



<p class="wp-block-paragraph">EthereumやBSCなどで使うコードと全く同じ。コンパイル結果のバイトコードはEVM互換チェーンでそのまま使えます。</p>



<h3 class="wp-block-heading">確認とブロックエクスプローラー</h3>



<p class="wp-block-paragraph">Fantomには<strong>FtmScan</strong>という<strong>ブロックエクスプローラー</strong>が提供されており、EthereumのEtherscanと同様に、トランザクションやコントラクトアドレスを検索・検証できます。デプロイ後のアドレスを<strong>FtmScan</strong>で検索してコントラクトの動作を確認し、ソースコードの検証なども行えます。</p>



<h2 class="wp-block-heading">DeFi・NFTの活用例</h2>



<h3 class="wp-block-heading">SpookySwapやSpiritSwap</h3>



<p class="wp-block-paragraph">Fantomエコシステム内には、<strong>Uniswap</strong>のような自動マーケットメイカー (AMM) DEX が複数存在します。<strong>SpookySwap</strong>や<strong>SpiritSwap</strong>などが代表的で、イーサリアムメインネットよりも低いガス代でトークンスワップや流動性提供が可能です。</p>



<h3 class="wp-block-heading">Lending/Borrowing</h3>



<p class="wp-block-paragraph">AaveやYearnなどもFantomへ拡張しており、ユーザーは低手数料で資産を貸し出したり借りたりすることができます。<strong>Reaper Farm</strong>のような利回り最適化サービス（Yield Aggregator）も人気で、複数のDeFiプロトコルを組み合わせて運用効率を高める動きが盛んです。</p>



<h3 class="wp-block-heading">NFTとゲーム</h3>



<p class="wp-block-paragraph">Fantom上にも<strong>NFTマーケット</strong>が存在し、<strong>Opera</strong>チェーン上でNFTをミント・取引できる環境が整いつつあります。ガス代が安いメリットを活かして、ゲーム内アイテムやアートNFTなどの取引を手軽に行えるようになります。<br>さらに、<strong>マルチチェーンNFT</strong>として、他チェーンとのブリッジを通じてFantomでもNFTを扱うプロジェクトが増えている点も注目ポイントです。</p>



<h2 class="wp-block-heading">セキュリティや懸念点</h2>



<h3 class="wp-block-heading">バリデータ数・分散化</h3>



<p class="wp-block-paragraph">Fantomのコンセンサスモデルは高速だが、ネットワークが大規模になるほどバリデータの数やステーク状況が分散化を支えられるかが鍵となります。他のPoSチェーンと同様、<strong>大口保有者</strong>が多い場合は中央集権的になるリスクがあるため、参加ハードル（最低ステーク量など）の調整が継続的に議論されています。</p>



<h3 class="wp-block-heading">ハッキングやブリッジリスク</h3>



<p class="wp-block-paragraph">ブロックチェーン全般の問題として、<strong>ブリッジ</strong>を介した攻撃やスマートコントラクトの脆弱性によるハッキングリスクが存在します。FantomもDeFi案件が盛んな分、それだけ多くの資金が集まっており、攻撃対象となりやすい側面があります。<br>ユーザーとしては<strong>信頼できる監査</strong>を経たプロトコルを利用し、ウォレットや秘密鍵管理に注意する必要があります。</p>



<h3 class="wp-block-heading">エコシステム拡充</h3>



<p class="wp-block-paragraph">PolygonやBSCなど競合も多い中、Fantomが流動性や開発者コミュニティをどれだけ取り込めるかが重要です。近年DeFiブーム時にはFantom上のTVL（Total Value Locked）が急増する場面も見られましたが、相場動向や他チェーンの台頭で流動性が分散するリスクもあります。</p>



<h2 class="wp-block-heading">将来の展望</h2>



<h3 class="wp-block-heading">さらなるガバナンス強化</h3>



<p class="wp-block-paragraph">Fantomは<strong>オンチェーンガバナンス</strong>を可能にする仕組みの検討も進めており、FTMステーキング参加者がプロトコルアップデートやパラメータ変更に直接影響を与えられる未来を目指しています。分散度が高まれば、コミュニティ主導型の開発やネットワーク運営が加速するでしょう。</p>



<h3 class="wp-block-heading">レイヤー2との競合・協調</h3>



<p class="wp-block-paragraph">多くのDeFiユーザーが「イーサリアム + Layer2」へ移行するシナリオも考えられる中、Fantomは<strong>イーサリアム互換チェーン</strong>として独自にユーザーを獲得中です。今後は<strong>クロスチェーンブリッジ</strong>や<strong>マルチチェーンDeFi</strong>が本格化すれば、Fantomが相互運用の一部として重要なハブになる可能性もあります。</p>



<h3 class="wp-block-heading">大規模アプリケーション</h3>



<p class="wp-block-paragraph">Fantomの高速決済と低レイテンシ特性は、<strong>リアルタイムトランザクション</strong>や<strong>IoTデータ管理</strong>、<strong>大規模ゲーム</strong>などで威力を発揮できると期待されます。実際に企業や自治体がテスト導入する動きもあるため、将来的には<strong>企業向けソリューション</strong>としても展開が進むかもしれません。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">Fantomは<strong>Lachesisコンセンサス</strong>を採用し、高速かつ低コストのトランザクション処理を実現したブロックチェーンプラットフォームです。EVM互換を備えているため、Solidityで開発されたイーサリアムのDAppを<strong>ほぼそのまま</strong>移植できる点が最大のメリットと言えるでしょう。</p>



<ul class="wp-block-list">
<li><strong>特徴</strong>
<ul class="wp-block-list">
<li>独自アルゴリズムであるLachesisによる短時間のトランザクション最終性</li>



<li>PoSに近いステーキングモデルでネットワークを運営し、FTMトークンが手数料や報酬に使われる</li>



<li>EVM互換によりSolidityやTruffle, Hardhatを利用可能</li>
</ul>
</li>



<li><strong>ユースケース</strong>
<ul class="wp-block-list">
<li>DeFi（SpookySwap, SpiritSwap, lendingプラットフォーム等）</li>



<li>NFTマーケットやゲームで安価かつ高速なユーザー体験</li>



<li>DAOやマルチシグを低コストで実装</li>
</ul>
</li>



<li><strong>開発フロー</strong>
<ul class="wp-block-list">
<li>Hardhatなどの設定でFantomのRPC（メインネット: 250, テストネット: 4002）を指定</li>



<li>Solidityコードをコンパイル・デプロイ</li>



<li>ethers.js等でスマートコントラクトを呼び出し、FtmScanなどで結果を確認</li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph">Fantomは他のレイヤー1やレイヤー2と競合する部分もありますが、その<strong>高速性</strong>と<strong>DAGベースの革新的コンセンサス</strong>が注目を集めており、DeFiを中心にエコシステムを成長させています。今後も<strong>ガバナンス強化</strong>や<strong>クロスチェーン展開</strong>が進むことで、新たなユースケースやビジネスが生まれる余地があります。もし<strong>低コストとスケーラビリティ</strong>を重視したブロックチェーンを選びたい場合、Fantomは一つの有力なプラットフォームと言えるでしょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://techgrowup.net/blockchain-fantom/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Avalancheのすべてを解説！高速・柔軟なマルチチェーンプラットフォームの仕組みとスマートコントラクト開発手法</title>
		<link>https://techgrowup.net/blockchain-avalanche/</link>
					<comments>https://techgrowup.net/blockchain-avalanche/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[techgrowup]]></dc:creator>
		<pubDate>Mon, 07 Apr 2025 23:00:00 +0000</pubDate>
				<category><![CDATA[ブロックチェーン]]></category>
		<category><![CDATA[Avalanche]]></category>
		<category><![CDATA[AVAX]]></category>
		<category><![CDATA[DeFi]]></category>
		<category><![CDATA[NFT]]></category>
		<category><![CDATA[Snowman]]></category>
		<category><![CDATA[Subnet]]></category>
		<category><![CDATA[スマートコントラクト]]></category>
		<category><![CDATA[マルチチェーン]]></category>
		<guid isPermaLink="false">https://techgrowup.net/?p=2745</guid>

					<description><![CDATA[はじめに ブロックチェーン技術が成熟し、多彩なプラットフォームが登場する中で、「高速かつ柔軟な設計」を備えたAvalancheは大きな注目を集める存在となっています。Avalanche は複数のチェーンを並行して稼働させ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">はじめに</h1>



<p class="wp-block-paragraph">ブロックチェーン技術が成熟し、多彩なプラットフォームが登場する中で、「高速かつ柔軟な設計」を備えた<strong>Avalanche</strong>は大きな注目を集める存在となっています。Avalanche は<strong>複数のチェーン</strong>を並行して稼働させる「Subnet（サブネット）」を取り入れ、高スループットでありながら分散性も実現しようというアプローチを採っています。また、独自のコンセンサス方式「Snowman」や、ネイティブトークン「AVAX」によるステーキングモデルなど、ほかのブロックチェーンとは一線を画す特徴を持っています。<br><br>本記事では、Avalanche の技術的背景やユースケース、スマートコントラクトの開発手順、さらにはコードサンプルまでを網羅的に紹介し、その魅力をわかりやすく解説していきます。DeFiやNFTをはじめ、高速性と柔軟性を同時に必要とするプロジェクトにとって、Avalanche は有力な選択肢となるでしょう。</p>



<h2 class="wp-block-heading">Avalancheの基本概要</h2>



<h3 class="wp-block-heading">高速・柔軟なマルチチェーンプラットフォーム</h3>



<p class="wp-block-paragraph">Avalanche は、<strong>マルチチェーン</strong>をネイティブにサポートし、各チェーン（サブネット）が独自のルールやバリデータセットを設定できるという構造をとっています。</p>



<ul class="wp-block-list">
<li><strong>高いトランザクションスループット</strong>: 数千TPSオーダーの処理を想定</li>



<li><strong>短い最終確認時間</strong>: 1秒以下でほぼ確定するブロック間隔</li>



<li><strong>分散性と安全性</strong>: 独自の Snowman コンセンサスにより、ビザンチン耐性を保持</li>
</ul>



<h3 class="wp-block-heading">AVAXトークン</h3>



<p class="wp-block-paragraph">Avalanche のネイティブトークンが <strong>AVAX</strong> です。</p>



<ul class="wp-block-list">
<li><strong>ステーキング</strong>: ネットワークのバリデータになるには一定量の AVAX をロックし、報酬を得る</li>



<li><strong>手数料</strong>: トランザクションやサブネット作成などの手数料を AVAX で支払う</li>



<li><strong>ガバナンス</strong>: 将来的にはコミュニティガバナンスなどの活用が議論されている</li>
</ul>



<h2 class="wp-block-heading">Avalancheのチェーン構造</h2>



<h3 class="wp-block-heading">三本柱：X-Chain, P-Chain, C-Chain</h3>



<p class="wp-block-paragraph">Avalanche は大きく <strong>X-Chain</strong>、<strong>P-Chain</strong>、<strong>C-Chain</strong> という3つの主要チェーンを備えています。それぞれ違った目的を持ち、協調して機能します。</p>



<ol class="wp-block-list">
<li><strong>X-Chain（Exchange Chain）</strong>
<ul class="wp-block-list">
<li>デフォルトの資産発行・移転チェーン。AVAX や他のトークンを作成・転送する</li>



<li>高速な決済に特化しており、DAG（Directed Acyclic Graph）的な仕組みを用いる</li>
</ul>
</li>



<li><strong>P-Chain（Platform Chain）</strong>
<ul class="wp-block-list">
<li>サブネットの管理やバリデータ登録など、ネットワーク全体のメタデータを扱うチェーン</li>



<li>Avalancheのコンセンサスを管理する役割を担い、サブネット作成・バリデーター追加などを行う</li>
</ul>
</li>



<li><strong>C-Chain（Contract Chain）</strong>
<ul class="wp-block-list">
<li>EVM互換のスマートコントラクト実行環境。Solidity などで書かれたコードをデプロイ可能</li>



<li>DeFiやNFT、DAppなど、イーサリアムのような機能を提供</li>
</ul>
</li>
</ol>



<h3 class="wp-block-heading">Subnet（サブネット）</h3>



<p class="wp-block-paragraph"><strong>サブネット</strong>は、Avalanche における「ネットワークの一部」を指し、それぞれが独自のバリデータやルールを設定できます。</p>



<ul class="wp-block-list">
<li><strong>メインサブネット</strong>: デフォルトで X-Chain, P-Chain, C-Chain を含む</li>



<li><strong>カスタムサブネット</strong>: 開発者や企業が自分たちのコンセンサスルールやトークン経済を設定し、専用チェーンを立ち上げられる</li>
</ul>



<p class="wp-block-paragraph">このサブネットの仕組みによって、Avalancheはアプリケーションごとに最適化されたブロックチェーンを同時に稼働させるポテンシャルを備えています。</p>



<h2 class="wp-block-heading">Avalancheのコンセンサス</h2>



<h3 class="wp-block-heading">SnowmanとAvalancheコンセンサス</h3>



<p class="wp-block-paragraph">Avalanche はブロックDAGベースのコンセンサスアプローチを取りつつ、チェーン型の<strong>Snowman</strong>コンセンサスを活用することで高速かつ安全な合意形成を行います。</p>



<ul class="wp-block-list">
<li><strong>Snowman</strong>: 線形なブロックチェーンとしての合意形成方式。EVM互換の C-Chain などが使用</li>



<li><strong>Avalanche</strong>(DAG): DAG構造を用いるX-Chain などが使用</li>
</ul>



<p class="wp-block-paragraph">いずれも<strong>繰り返しサンプリング</strong>（repeated sub-sampling）という確率的手法で、各ノードが少数のピアをランダムに問い合わせ、ブロックの支持状況を確認。一定回数同じ結果にたどり着けば「合意した」と見なす仕組みがベースにあります。</p>



<h3 class="wp-block-heading">高速性と最終性</h3>



<p class="wp-block-paragraph">このサンプリングアプローチにより、トランザクションが<strong>1〜2秒程度</strong>でほぼ不可逆な状態になるといわれています（厳密にはやや揺らぎがあるが、実用上十分速い）。従来のPoWチェーンとは桁違いに短い<strong>ファイナリティ</strong>を実現し、高速な支払い、取引所の入金確認などに役立ちます。</p>



<h2 class="wp-block-heading">開発の流れ</h2>



<h3 class="wp-block-heading">C-Chainへのコントラクトデプロイ</h3>



<p class="wp-block-paragraph">C-Chain は<strong>EVM互換</strong>を持ち、<strong>Solidity</strong> で書いたコントラクトを<strong>ほぼそのまま</strong>イーサリアムの開発フローで使えます。<code>truffle-config.js</code> や <code>hardhat.config.js</code> に Avalanche (C-Chain) のRPC エンドポイントとネットワークIDを設定すればOKです。</p>



<p class="wp-block-paragraph">例: Hardhat <code>hardhat.config.js</code></p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="require(&quot;@nomiclabs/hardhat-waffle&quot;);

module.exports = {
  solidity: &quot;0.8.0&quot;,
  networks: {
    fuji: {
      url: &quot;https://api.avax-test.network/ext/bc/C/rpc&quot;, // Fuji Testnet RPC
      chainId: 43113,
      accounts: [&quot;0xyourprivatekey&quot;]
    },
    mainnet: {
      url: &quot;https://api.avax.network/ext/bc/C/rpc&quot;, // Mainnet
      chainId: 43114,
      accounts: [&quot;0xyourprivatekey&quot;]
    }
  }
};" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">require</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;@nomiclabs/hardhat-waffle&quot;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #4EC9B0">module</span><span style="color: #D4D4D4">.</span><span style="color: #4EC9B0">exports</span><span style="color: #D4D4D4"> = {</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">solidity:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;0.8.0&quot;</span><span style="color: #D4D4D4">,</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">networks:</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">fuji:</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">url:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;https://api.avax-test.network/ext/bc/C/rpc&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #6A9955">// Fuji Testnet RPC</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">chainId:</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">43113</span><span style="color: #D4D4D4">,</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">accounts:</span><span style="color: #D4D4D4"> [</span><span style="color: #CE9178">&quot;0xyourprivatekey&quot;</span><span style="color: #D4D4D4">]</span></span>
<span class="line"><span style="color: #D4D4D4">    },</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">mainnet:</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">url:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;https://api.avax.network/ext/bc/C/rpc&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #6A9955">// Mainnet</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">chainId:</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">43114</span><span style="color: #D4D4D4">,</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">accounts:</span><span style="color: #D4D4D4"> [</span><span style="color: #CE9178">&quot;0xyourprivatekey&quot;</span><span style="color: #D4D4D4">]</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"><span style="color: #D4D4D4">  }</span></span>
<span class="line"><span style="color: #D4D4D4">};</span></span></code></pre></div>



<h3 class="wp-block-heading">スマートコントラクト例</h3>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract SimpleStore {
    uint public data;

    constructor(uint _initial) {
        data = _initial;
    }

    function setData(uint _val) public {
        data = _val;
    }
}" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #6A9955">// SPDX-License-Identifier: MIT</span></span>
<span class="line"><span style="color: #C586C0">pragma</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">solidity</span><span style="color: #D4D4D4"> ^0.8.0;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">contract</span><span style="color: #4EC9B0"> SimpleStore</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #4EC9B0">uint</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">public</span><span style="color: #D4D4D4"> data;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">constructor</span><span style="color: #D4D4D4">(</span><span style="color: #4EC9B0">uint</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">_initial</span><span style="color: #D4D4D4">) {</span></span>
<span class="line"><span style="color: #D4D4D4">        data = _initial;</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">function</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">setData</span><span style="color: #D4D4D4">(</span><span style="color: #4EC9B0">uint</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">_val</span><span style="color: #D4D4D4">) </span><span style="color: #569CD6">public</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">        data = _val;</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"><span style="color: #D4D4D4">}</span></span></code></pre></div>



<p class="wp-block-paragraph">これはイーサリアム用と同じSolidityコード。<strong>Avalanche C-Chain</strong>でコンパイル・デプロイすると、<strong>ethers.js</strong>等で呼び出せます。</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="npx hardhat run scripts/deploy.js --network fuji" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">npx</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">hardhat</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">run</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">scripts/deploy.js</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">--network</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">fuji</span></span></code></pre></div>



<h3 class="wp-block-heading">Subnet開発</h3>



<p class="wp-block-paragraph">カスタムサブネットを構築して独自チェーンを作る場合は、<strong>Avalanche-CLI</strong>などのツールを使ってバリデータ設定やトランザクションフォーマットを指定。より高度なスケーラビリティやプライバシー要件に合わせて、<strong>自分専用のブロックチェーン</strong>をAvalancheエコシステム内で運用できるメリットがあります。</p>



<h2 class="wp-block-heading">具体的ユースケース</h2>



<h3 class="wp-block-heading">DeFi</h3>



<p class="wp-block-paragraph">Avalanche上で動くDeFiプロトコルには<strong>Trader Joe</strong>や<strong>Pangolin</strong>といったDEXが存在し、ユーザーはイーサリアムより安価な手数料でトークンスワップや流動性提供ができます。また、<strong>Aave</strong>や<strong>Benqi</strong>など借入・貸出サービス、<strong>Curve</strong>などステーブルコインスワップ対応プラットフォームもAvalancheに展開済み。</p>



<h3 class="wp-block-heading">NFT・ゲーム</h3>



<p class="wp-block-paragraph">高速トランザクションとEVM互換を活かし、<strong>NFTマーケットプレイス</strong>や<strong>ブロックチェーンゲーム</strong>もAvalanche上で増加中。<strong>Kalao</strong>や<strong>NFTrade</strong>などのプラットフォームがあり、安いガスで大量のNFT発行・売買が可能。ゲーム領域ではサブネットを活用した専用チェーン化も期待されています。</p>



<h3 class="wp-block-heading">エンタープライズ・機関投資家向け</h3>



<p class="wp-block-paragraph">Avalancheは<strong>サブネット</strong>を用いて企業が独自ルールやプライバシー設定を持つブロックチェーンを構築可能と宣伝しています。機関投資家向けのDeFi商品やKYC要件を備えたサブネットなど、ビジネス用途への適合性が高いと言われています。</p>



<h2 class="wp-block-heading">セキュリティと課題</h2>



<h3 class="wp-block-heading">分散性</h3>



<p class="wp-block-paragraph">Snowmanコンセンサスは高速である反面、ノード数やバリデータの参加状況によって分散度が変わる可能性があります。PoSベースで多くのバリデータが参加することが望ましいですが、もしバリデータが集中化すれば攻撃リスクや検閲の懸念が高まる可能性も。</p>



<h3 class="wp-block-heading">ブリッジリスク</h3>



<p class="wp-block-paragraph">Avalancheをイーサリアムなど他チェーンと連携する<strong>ブリッジ</strong>に関しては、暗号資産界隈全般の課題ですが、ハッキング被害が発生するリスクがあるため、<strong>監査済みの公式ブリッジ</strong>や信頼できるプロバイダを利用することが重要です。</p>



<h3 class="wp-block-heading">競合との比較</h3>



<p class="wp-block-paragraph">Polygon、Fantom、BNB ChainなどEVM互換のチェーンが多数存在する中、Avalancheが差別化できるポイントとしては、<strong>独自のSnowman/Avalancheコンセンサス</strong>と<strong>サブネット</strong>による高い拡張性が挙げられます。しかしユーザーや流動性が分散すると、それぞれのチェーンでエコシステムを形成する競争が激しくなるでしょう。</p>



<h2 class="wp-block-heading">Avalancheの将来と展望</h2>



<h3 class="wp-block-heading">Subnetの普及</h3>



<p class="wp-block-paragraph">サブネットを利用して<strong>ゲーム専用チェーン</strong>や<strong>企業向けチェーン</strong>を立ち上げる事例が増えれば、Avalancheのユースケースが大きく拡張すると予測されます。特にガス代やトランザクション速度の最適化が可能なので、大規模ゲームや金融プロジェクトなどが採用する余地があります。</p>



<h3 class="wp-block-heading">zkRollupやハイブリッドソリューション</h3>



<p class="wp-block-paragraph">Avalancheも<strong>ZK技術</strong>やその他のレイヤー2的アプローチを採り入れる計画があり、今後さらにスケーラビリティやプライバシーを高める可能性があります。<br>また、マルチチェーン時代に合わせて<strong>クロスチェーンブリッジ</strong>が進化し、Avalancheが複数チェーンのハブのような役割を担うシナリオも考えられます。</p>



<h3 class="wp-block-heading">ガバナンスと分散の向上</h3>



<p class="wp-block-paragraph">Avalancheのトークンホルダーがプロトコルアップデートやパラメータ変更に参加できる仕組みが拡充されることで、<strong>コミュニティ主導型の分散ガバナンス</strong>が強化される見込みです。バリデータやステーキング参加者が増加し、ネットワークの分散度が上がれば、より強固なセキュリティと検閲耐性を確保できるでしょう。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">Avalancheはイーサリアムと高い互換性を持ちながら、<strong>高速トランザクション</strong>と<strong>柔軟なマルチチェーン構造</strong>を備えたブロックチェーンプラットフォームとして台頭しています。</p>



<ul class="wp-block-list">
<li><strong>Snowman/Avalancheコンセンサス</strong>: 高速かつ最終性の早い合意形成で数千TPSオーダーを目指す</li>



<li><strong>Subnets</strong>: 各プロジェクトごとに独自チェーンを展開でき、ユースケースに合わせた設計が可能</li>



<li><strong>C-Chain</strong>: EVM互換でSolidityコントラクトを簡単に移植・開発可能</li>



<li><strong>多数のユースケース</strong>: DeFiやNFT、ゲーム、企業向けソリューションなど幅広く対応</li>
</ul>



<p class="wp-block-paragraph">一方で、<strong>分散性</strong>や<strong>セキュリティリスク</strong>（ブリッジ攻撃など）、<strong>競合チェーンとのエコシステム争い</strong>などの課題も存在します。それでもAvalancheは<strong>ユーザーにストレスの少ないガス代</strong>と<strong>短い最終承認時間</strong>を提供する点で大きなアドバンテージを持ち、DeFiやNFT領域で着実に利用が拡大中です。<br>開発者はHardhat/Truffleなどイーサリアム互換ツールを使ってC-Chain上でスマートコントラクトをデプロイできるため、<strong>学習コストの低さ</strong>も魅力。さらなるアップデートやサブネット活用次第では、Avalancheがマルチチェーン時代の主要プラットフォームとしてますます存在感を増していく可能性があります。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://techgrowup.net/blockchain-avalanche/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>BNB Chainを解説！高速・低手数料なブロックチェーンの仕組みと開発手法、活用事例をわかりやすく紹介</title>
		<link>https://techgrowup.net/blockchain-bnb-chain/</link>
					<comments>https://techgrowup.net/blockchain-bnb-chain/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[techgrowup]]></dc:creator>
		<pubDate>Sat, 05 Apr 2025 23:00:00 +0000</pubDate>
				<category><![CDATA[ブロックチェーン]]></category>
		<category><![CDATA[Binance]]></category>
		<category><![CDATA[BNB]]></category>
		<category><![CDATA[BNB Chain]]></category>
		<category><![CDATA[BSC]]></category>
		<category><![CDATA[DeFi]]></category>
		<category><![CDATA[EVM互換]]></category>
		<category><![CDATA[スマートコントラクト]]></category>
		<category><![CDATA[トランザクション]]></category>
		<guid isPermaLink="false">https://techgrowup.net/?p=2739</guid>

					<description><![CDATA[はじめに 仮想通貨取引所として世界的に有名なBinanceが手掛けるBNB Chain（旧Binance Smart Chain: BSC）は、高速トランザクションと低手数料を特徴とし、イーサリアム（Ethereum）と [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">はじめに</h1>



<p class="wp-block-paragraph">仮想通貨取引所として世界的に有名なBinanceが手掛ける<strong>BNB Chain</strong>（旧Binance Smart Chain: BSC）は、<strong>高速トランザクション</strong>と<strong>低手数料</strong>を特徴とし、イーサリアム（Ethereum）との高い互換性を持つブロックチェーンプラットフォームとして注目を集めています。<br>BNB Chainは<strong>分散型アプリケーション（DApp）やDeFi、NFT</strong>などのエコシステムを広げるべく、<strong>EVM互換</strong>かつ<strong>Proof of Staked Authority (PoSA)</strong> というユニークなコンセンサスを採用し、ユーザーにとって安価でスケーラブルな環境を提供しています。本記事では、BNB Chainの基本構造や設計思想、使われている技術、そしてDApp開発フローやコードサンプルまで、幅広く紹介していきます。</p>



<h2 class="wp-block-heading">BNB Chainの基礎知識</h2>



<h3 class="wp-block-heading">Binance Smart Chain（BSC）からBNB Chainへ</h3>



<p class="wp-block-paragraph">元々は<strong>Binance Smart Chain (BSC)</strong> としてローンチされましたが、2022年頃から<strong>BNB Chain</strong>という名称にリブランディングが行われました。</p>



<ul class="wp-block-list">
<li><strong>BNB</strong> は Binance のネイティブトークンであり、BNB Chainにおいては<strong>ガス手数料の支払い</strong>や<strong>バリデータのステーキング</strong>に使われます。</li>



<li>新名称「BNB Chain」は BNB を「Build and Build」と説明し、コミュニティ主導の分散型エコシステムへ発展する意向を示しています。</li>
</ul>



<h3 class="wp-block-heading">高速・安価なEVM互換チェーン</h3>



<p class="wp-block-paragraph">BNB Chainは、イーサリアムのEVMと<strong>互換性</strong>を保ちながら、<strong>高スループット</strong>と<strong>低トランザクション手数料</strong>を実現することを目指しています。</p>



<ul class="wp-block-list">
<li><strong>Proof of Staked Authority (PoSA)</strong> をコンセンサスアルゴリズムとして採用し、バリデータ数を限定することでブロック生成を高速化</li>



<li>その代償として分散性（バリデータが少数）への懸念もあるが、ユーザーにとっては安価かつ多くのDAppが動くメリットがある</li>
</ul>



<h2 class="wp-block-heading">BNB Chainの技術的背景</h2>



<h3 class="wp-block-heading">Proof of Staked Authority (PoSA)</h3>



<p class="wp-block-paragraph">イーサリアムがPoWやPoSへ移行中なのに対し、BNB Chainは<strong>PoSA</strong> (Proof of Staked Authority)と呼ばれる合意形成アルゴリズムを用います。</p>



<ul class="wp-block-list">
<li>バリデータ候補者は一定のBNBをステークし、コミュニティ投票やBinance等の選定プロセスを経てバリデータに就任</li>



<li>バリデータが定期的にローテーションされ、ブロック生成を担当</li>



<li>ブロックがチェーンに追加されるたびにバリデータはブロック報酬や手数料を受け取る<br>この仕組みにより、イーサリアムなどよりも高速なブロックタイム（約3秒〜）を実現しています。</li>
</ul>



<h3 class="wp-block-heading">デュアルチェーンアーキテクチャ</h3>



<p class="wp-block-paragraph">かつてはBinance Chain（BC）とBinance Smart Chain（BSC）の「デュアルチェーン構造」が存在し、</p>



<ul class="wp-block-list">
<li><strong>Binance Chain(BC)</strong>: 高速DEXやトークン発行に特化</li>



<li><strong>Binance Smart Chain(BSC)</strong>: スマートコントラクトとEVMサポート<br>という役割分担をしていましたが、BNB Chainへのリブランディングにより両者の機能やブランドが統合的に扱われる傾向が強まっています。</li>
</ul>



<h3 class="wp-block-heading">ネイティブトークンBNB</h3>



<p class="wp-block-paragraph">BNBはもともとBinance取引所のトークンとしてICOされましたが、BNB Chain上でのガス支払い・バリデータステーキングにも使われる<strong>ユーティリティトークン</strong>として機能します。</p>



<ul class="wp-block-list">
<li>取引所での手数料割引など、Binanceエコシステムと密接な関係</li>



<li>バリデータ運営者はBNBステーク量に応じて選出され、ブロック報酬を獲得</li>
</ul>



<h2 class="wp-block-heading">BNB Chainのメリット</h2>



<h3 class="wp-block-heading">高速かつ安価なトランザクション</h3>



<p class="wp-block-paragraph">PoSAにより、ブロックの生成間隔が3秒ほどと短く、Gas料金もイーサリアムメインネットより大幅に低いのが特徴です。DeFiやNFT取引で<strong>頻繁な更新</strong>が必要な場合にコストを抑えられ、ユーザー体験が向上します。</p>



<h3 class="wp-block-heading">EVM互換性</h3>



<p class="wp-block-paragraph"><strong>Solidity</strong>や<strong>Vyper</strong>などで書かれたイーサリアム向けスマートコントラクトをほぼそのまま移植可能。TruffleやHardhatなど<strong>EVM用のツール</strong>を使えるので、開発者は学習コストを抑えてDAppを移行・開発できます。</p>



<h3 class="wp-block-heading">豊富なDAppと高い流動性</h3>



<p class="wp-block-paragraph">Binanceという大手取引所がバックアップしていることもあり、<strong>DeFiプロジェクト（PancakeSwap, Venusなど）やNFTマーケット</strong>が多く稼働し、流動性が高まりやすい環境です。これによりユーザーや開発者が集まり、<strong>ネットワーク効果</strong>を生み出しています。</p>



<h2 class="wp-block-heading">スマートコントラクト開発フロー</h2>



<h3 class="wp-block-heading">SolidityとHardhat/Truffle</h3>



<p class="wp-block-paragraph">BNB Chainにデプロイする際、一般的な流れは<strong>イーサリアムと同じ</strong>です。</p>



<ol class="wp-block-list">
<li><strong>Solidity</strong>などでコントラクトを記述</li>



<li>Hardhat/Truffleなどでコンパイルとテスト</li>



<li>BNB Chain（テストネット：Chapel もしくは本番：BSC Mainnet）に<strong>RPC</strong>接続を設定</li>



<li><code>npx hardhat run scripts/deploy.js --network bscMainnet</code> のようなコマンドでデプロイ</li>
</ol>



<p class="wp-block-paragraph">以下に Hardhat のシンプルな例を示します。</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="// hardhat.config.js
require(&quot;@nomiclabs/hardhat-waffle&quot;);

module.exports = {
  solidity: &quot;0.8.0&quot;,
  networks: {
    bscTestnet: {
      url: &quot;https://data-seed-prebsc-1-s1.binance.org:8545/&quot;,
      chainId: 97,
      accounts: [&quot;&lt;YOUR_PRIVATE_KEY&gt;&quot;]
    },
    bscMainnet: {
      url: &quot;https://bsc-dataseed.binance.org/&quot;,
      chainId: 56,
      accounts: [&quot;&lt;YOUR_PRIVATE_KEY&gt;&quot;]
    }
  }
};" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #6A9955">// hardhat.config.js</span></span>
<span class="line"><span style="color: #DCDCAA">require</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;@nomiclabs/hardhat-waffle&quot;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #4EC9B0">module</span><span style="color: #D4D4D4">.</span><span style="color: #4EC9B0">exports</span><span style="color: #D4D4D4"> = {</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">solidity:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;0.8.0&quot;</span><span style="color: #D4D4D4">,</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">networks:</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">bscTestnet:</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">url:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;https://data-seed-prebsc-1-s1.binance.org:8545/&quot;</span><span style="color: #D4D4D4">,</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">chainId:</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">97</span><span style="color: #D4D4D4">,</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">accounts:</span><span style="color: #D4D4D4"> [</span><span style="color: #CE9178">&quot;&lt;YOUR_PRIVATE_KEY&gt;&quot;</span><span style="color: #D4D4D4">]</span></span>
<span class="line"><span style="color: #D4D4D4">    },</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">bscMainnet:</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">url:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;https://bsc-dataseed.binance.org/&quot;</span><span style="color: #D4D4D4">,</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">chainId:</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">56</span><span style="color: #D4D4D4">,</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">accounts:</span><span style="color: #D4D4D4"> [</span><span style="color: #CE9178">&quot;&lt;YOUR_PRIVATE_KEY&gt;&quot;</span><span style="color: #D4D4D4">]</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"><span style="color: #D4D4D4">  }</span></span>
<span class="line"><span style="color: #D4D4D4">};</span></span></code></pre></div>



<h3 class="wp-block-heading">コントラクト例：簡単なCounter</h3>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract Counter {
    uint256 public count;
    
    constructor(uint256 _initialCount) {
        count = _initialCount;
    }
    
    function increment() public {
        count += 1;
    }
    
    function reset() public {
        count = 0;
    }
}" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #6A9955">// SPDX-License-Identifier: MIT</span></span>
<span class="line"><span style="color: #C586C0">pragma</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">solidity</span><span style="color: #D4D4D4"> ^0.8.0;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">contract</span><span style="color: #4EC9B0"> Counter</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #4EC9B0">uint256</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">public</span><span style="color: #D4D4D4"> count;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">constructor</span><span style="color: #D4D4D4">(</span><span style="color: #4EC9B0">uint256</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">_initialCount</span><span style="color: #D4D4D4">) {</span></span>
<span class="line"><span style="color: #D4D4D4">        count = _initialCount;</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"><span style="color: #D4D4D4">    </span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">function</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">increment</span><span style="color: #D4D4D4">() </span><span style="color: #569CD6">public</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">        count += </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"><span style="color: #D4D4D4">    </span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">function</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">reset</span><span style="color: #D4D4D4">() </span><span style="color: #569CD6">public</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">        count = </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"><span style="color: #D4D4D4">}</span></span></code></pre></div>



<p class="wp-block-paragraph">ハードハットで以下のようなスクリプトを実行すれば、BSC Testnet へデプロイ可能です。</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="// scripts/deploy.js
async function main() {
  const [deployer] = await ethers.getSigners();
  console.log(&quot;Deploying with account:&quot;, deployer.address);

  const Counter = await ethers.getContractFactory(&quot;Counter&quot;);
  const counter = await Counter.deploy(10);
  await counter.deployed();
  
  console.log(&quot;Counter contract deployed at:&quot;, counter.address);
}

main()
  .then(() =&gt; process.exit(0))
  .catch(error =&gt; {
    console.error(error);
    process.exit(1);
  });" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #6A9955">// scripts/deploy.js</span></span>
<span class="line"><span style="color: #569CD6">async</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">function</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">main</span><span style="color: #D4D4D4">() {</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> [</span><span style="color: #4FC1FF">deployer</span><span style="color: #D4D4D4">] = </span><span style="color: #C586C0">await</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ethers</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">getSigners</span><span style="color: #D4D4D4">();</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">console</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">log</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;Deploying with account:&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">deployer</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">address</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">Counter</span><span style="color: #D4D4D4"> = </span><span style="color: #C586C0">await</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ethers</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">getContractFactory</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;Counter&quot;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">counter</span><span style="color: #D4D4D4"> = </span><span style="color: #C586C0">await</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Counter</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">deploy</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">10</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">await</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">counter</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">deployed</span><span style="color: #D4D4D4">();</span></span>
<span class="line"><span style="color: #D4D4D4">  </span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">console</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">log</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;Counter contract deployed at:&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">counter</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">address</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">}</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">main</span><span style="color: #D4D4D4">()</span></span>
<span class="line"><span style="color: #D4D4D4">  .</span><span style="color: #DCDCAA">then</span><span style="color: #D4D4D4">(() </span><span style="color: #569CD6">=&gt;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">process</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">exit</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">))</span></span>
<span class="line"><span style="color: #D4D4D4">  .</span><span style="color: #DCDCAA">catch</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">error</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">=&gt;</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">console</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">error</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">error</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">process</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">exit</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  });</span></span></code></pre></div>



<p class="wp-block-paragraph">CLI:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="npx hardhat run scripts/deploy.js --network bscTestnet" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">npx</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">hardhat</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">run</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">scripts/deploy.js</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">--network</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">bscTestnet</span></span></code></pre></div>



<h2 class="wp-block-heading">BNB Chainエコシステムのユースケース</h2>



<h3 class="wp-block-heading">DeFi（分散型金融）</h3>



<p class="wp-block-paragraph">BNB Chainでは<strong>PancakeSwap</strong>が代表的な分散型取引所（DEX）として知られ、イーサリアムのUniswap同様にAMM（自動マーケットメイカー）方式を採用。PancakeSwapはガス代が低いことから、多くのトレーダーや流動性提供者が集まっています。<br>また、<strong>Venus</strong>や<strong>Alpaca Finance</strong>など、レンディング・借入プロトコルも活発に稼働。DeFiを動かすトータルバリューロック（TVL）の観点では、BNB Chainが主要ブロックチェーンの1つとなっています。</p>



<h3 class="wp-block-heading">NFTとゲーム</h3>



<p class="wp-block-paragraph">低手数料かつ高速で、メインストリームユーザーにとって利用しやすいことから、<strong>NFTプラットフォーム</strong>や<strong>ブロックチェーンゲーム</strong>が多く展開されています。<strong>BakerySwap</strong>や<strong>NFT marketplaces</strong>がBSC時代から存在し、スムーズなユーザー体験を提供。<br>ゲームではトランザクションを頻繁に行うケースが多いため、イーサリアムメインネットよりコストを抑えられるBNB Chainが好まれる傾向にあります。</p>



<h3 class="wp-block-heading">ミームトークンやトレーディング</h3>



<p class="wp-block-paragraph">BNB ChainはDeFiブームとともに<strong>ミームコイン</strong>や<strong>トークン投機</strong>も盛んになり、短期間で流行したトークンが多数誕生しました。これには注意が必要で、詐欺的なプロジェクトも混在しやすいため、DYOR（Do Your Own Research）が必須です。</p>



<h2 class="wp-block-heading">セキュリティと課題</h2>



<h3 class="wp-block-heading">中央集権性の懸念</h3>



<p class="wp-block-paragraph">BNB Chainはバリデータ数が20〜30程度に限定されており、バリデータの選定過程や議決プロセスに<strong>Binance</strong>の影響力が大きいと批判される場合もあります。完全分散型のイーサリアムやビットコインと比べると、<strong>より中央集権的</strong>という指摘を受けがちです。</p>



<h3 class="wp-block-heading">ハッキングリスクとRug Pull</h3>



<p class="wp-block-paragraph">DeFiなどで大きな資金が集まるBNB Chainでは、<strong>スマートコントラクトの脆弱性</strong>やプロジェクトの悪意により被害が発生した例もあります。</p>



<ul class="wp-block-list">
<li>ハッキングされてトークンが盗まれる</li>



<li>開発者が流動性を持ち逃げする（Rug Pull）<br>ユーザーや投資家は<strong>プロジェクトの監査状況</strong>やコミュニティの評判を十分に確認する必要があります。</li>
</ul>



<h3 class="wp-block-heading">スケーラビリティ限界</h3>



<p class="wp-block-paragraph">現状PoSAチェーンで高速に動作していても、ユーザー数が増え続けるとさらなるスケーリングが必要になるかもしれません。BNB Chainは<strong>ZK Rollup</strong>など新技術の導入を検討しており、より大規模なユーザーベースに対応するための研究が続けられています。</p>



<h2 class="wp-block-heading">BNB Chainの今後の展望</h2>



<h3 class="wp-block-heading">メインストリーム導入</h3>



<p class="wp-block-paragraph">Binanceが世界的な取引所としての影響力を持つことから、多くのプロジェクトがBNB Chain上でのサービス展開を検討しています。さらに、ユーザーフレンドリーなウォレットやフォークされたプロジェクトの登場で<strong>一般ユーザー</strong>が入りやすい土壌が整ってきました。<br>将来的には<strong>Web3サービス</strong>が大衆化するなかで、BNB Chainが**“エントリーポイント”**として多くの新規ユーザーを取り込む可能性があります。</p>



<h3 class="wp-block-heading">コミュニティガバナンス強化</h3>



<p class="wp-block-paragraph">BNB Chainは中央集権的と批判される部分もあるため、今後は<strong>よりコミュニティ中心のガバナンス</strong>への移行が注目されます。バリデータの増加やステーキングメカニズムの変更などにより、本来の分散性を高める努力が進む可能性があるでしょう。</p>



<h3 class="wp-block-heading">クロスチェーン連携</h3>



<p class="wp-block-paragraph">DeFiやNFTが複数のチェーンを横断する「マルチチェーン時代」に突入しつつある今、BNB Chainも<strong>クロスチェーンブリッジ</strong>の整備や、他のLayer2との相互運用を深めると考えられます。これによりユーザーが自由に資産やデータを行き来でき、より大規模なエコシステムを形成することが期待されます。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">BNB Chain（旧BSC）は、<strong>高速・低手数料</strong>の環境でイーサリアム互換のスマートコントラクトを動かせる、<strong>Binance由来</strong>のブロックチェーンプラットフォームです。</p>



<ul class="wp-block-list">
<li><strong>特徴</strong>
<ul class="wp-block-list">
<li>PoSAコンセンサスによる3秒程度のブロックタイム</li>



<li>ガス代がイーサリアムメインネットより安価</li>



<li>SolidityやTruffle/HardhatなどEVMツールと互換性</li>
</ul>
</li>



<li><strong>ユースケース</strong>
<ul class="wp-block-list">
<li>DeFi（PancakeSwapなど）の大規模流動性</li>



<li>NFTマーケットやゲームが低コスト・高速環境で展開</li>



<li>大手プロジェクトが続々と移行・拡張</li>
</ul>
</li>



<li><strong>課題と懸念</strong>
<ul class="wp-block-list">
<li>バリデータ数が少なく、中央集権的と批判される</li>



<li>セキュリティや詐欺リスクの発生</li>



<li>将来のスケーラビリティ拡大や分散性向上がどう進むか</li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph">現状、BNB Chainは<strong>Binance</strong>のエコシステムを背景に大量のユーザーと開発者を集め、DeFiやNFT領域で大きな成果をあげています。一方で、<strong>分散性の確保</strong>や<strong>セキュリティ面</strong>への継続的な取り組みも必要不可欠とされます。<br>もしイーサリアム上でのコストや遅延に悩んでいるなら、<strong>EVM互換</strong>を利用して、ほぼ同じ開発フローでBNB Chainにデプロイするのは1つの有力な選択肢です。すでに多数の開発者が使い慣れたSolidity + Hardhatのワークフローを適用できるため、新規学習コストも比較的低いでしょう。<br>今後もクロスチェーンや新たなスケーリング技術との連携が進めば、BNB Chainはさらに魅力的なプラットフォームに進化していく可能性があります。ぜひ公式Wikiやコミュニティ情報を参照し、BNB Chainを活用したDApp開発やDeFi参加を検討してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://techgrowup.net/blockchain-bnb-chain/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Polygonを解説！イーサリアムのスケーリングを変えるLayer2ソリューションの仕組み・メリット・開発手順</title>
		<link>https://techgrowup.net/blockchain-polygon/</link>
					<comments>https://techgrowup.net/blockchain-polygon/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[techgrowup]]></dc:creator>
		<pubDate>Sat, 05 Apr 2025 14:00:00 +0000</pubDate>
				<category><![CDATA[ブロックチェーン]]></category>
		<category><![CDATA[Layer2]]></category>
		<category><![CDATA[Matic]]></category>
		<category><![CDATA[Plasma]]></category>
		<category><![CDATA[Polygon]]></category>
		<category><![CDATA[PoS]]></category>
		<category><![CDATA[イーサリアム]]></category>
		<category><![CDATA[スケーラビリティ]]></category>
		<category><![CDATA[スマートコントラクト]]></category>
		<category><![CDATA[開発]]></category>
		<guid isPermaLink="false">https://techgrowup.net/?p=2736</guid>

					<description><![CDATA[はじめに ブロックチェーン技術の普及とともに、イーサリアムのネットワーク混雑や高騰するガス手数料が頻繁に取り沙汰されるようになりました。こうした問題を解決するための「Layer2ソリューション」が注目される中、Polyg [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">はじめに</h1>



<p class="wp-block-paragraph">ブロックチェーン技術の普及とともに、イーサリアムのネットワーク混雑や高騰するガス手数料が頻繁に取り沙汰されるようになりました。こうした問題を解決するための「Layer2ソリューション」が注目される中、<strong>Polygon（旧Matic Network）</strong> はイーサリアムとの高い互換性やマルチチェーン対応などを掲げ、<strong>高速かつ低コスト</strong>で大量のトランザクションを処理できる基盤として急速に存在感を高めています。<br><a rel="noopener" target="_blank" class="" href="https://wiki.polygon.technology/">Polygon公式Wiki<span class="fa fa-external-link external-icon anchor-icon"></span></a>にも詳しいドキュメントがある通り、Polygonは<strong>Plasma</strong>や<strong>PoS (Proof of Stake)</strong> ブリッジを活用し、EVM互換を維持しながら拡張性を提供するLayer2エコシステムを形成しています。本記事では、その仕組みからメリット、スマートコントラクトの開発手順、代表的なユースケースまで、総合的に解説します。イーサリアム上での開発・運用を考えている方や、安価で高速なブロックチェーンインフラを探している方にとって、Polygonが一つの有力な選択肢となるでしょう。</p>



<h2 class="wp-block-heading">Polygonの背景と特徴</h2>



<h3 class="wp-block-heading">イーサリアムのスケーラビリティ問題</h3>



<p class="wp-block-paragraph">イーサリアムは多くのDeFiやNFTプロジェクトを生み出しましたが、その人気の裏返しとしてネットワーク混雑時には手数料（ガス代）が高騰し、トランザクション処理速度も落ちるケースがしばしば起こります。こうしたスケーラビリティの制約を解消し、<strong>ユーザーが安価かつ迅速にDAppを利用できる環境</strong>を提供することがLayer2ソリューションの大きな使命です。</p>



<h3 class="wp-block-heading">Polygonとは</h3>



<p class="wp-block-paragraph">Polygon（旧名 Matic Network）は、イーサリアムチェーンと互換性を持ちながら<strong>独自のサイドチェーン</strong>を運用し、高速・低コストを実現しているプロジェクトです。</p>



<ul class="wp-block-list">
<li><strong>PoS (Proof of Stake)</strong> のチェーンを提供し、ブリッジを通じてイーサリアム上の資産やトークンを簡単に移動できる</li>



<li><strong>Plasmaフレームワーク</strong>を用いたオプションのセキュリティモデル</li>



<li>2021年以降は<strong>Polygon</strong>という名前で活動の幅を広げ、<strong>PoSチェーン</strong>に加えて<strong>ZK Rollup</strong>や<strong>Optimistic Rollup</strong>など複数のソリューションを取り込もうとする「マルチチェーンエコシステム」へと進化</li>
</ul>



<h3 class="wp-block-heading">MATICトークン</h3>



<p class="wp-block-paragraph">Polygonのネイティブトークンは<strong>MATIC</strong>（マティック）。PoSチェーンにおけるガス手数料の支払い、ステーキングによるバリデータのインセンティブなどに利用されます。Polygonネットワークの名称変更に伴ってトークン名を変える話もあったものの、最終的にはMATICが維持され、各種取引所で売買が行われています。</p>



<h2 class="wp-block-heading">Polygonの技術アーキテクチャ</h2>



<h3 class="wp-block-heading">PlasmaとPoSの連携</h3>



<p class="wp-block-paragraph">もともと<strong>Plasma</strong>はイーサリアムで提案されたオフチェーン処理の概念で、「小さなサブチェーン（子チェーン）」を構築し、大量のトランザクションをまとめて証明をイーサリアムに送信するという手法です。<br>Polygonの初期バージョンは<strong>Plasma + PoS</strong>のハイブリッドアプローチを採用し、<strong>安全性</strong>と<strong>高スループット</strong>を両立。具体的には、イーサリアムのメインネット上に<strong>Checkpoint</strong>を定期的に記録し、PoSチェーンの状態が不正にならないよう保証する設計がなされています。</p>



<h3 class="wp-block-heading">マルチチェーンエコシステム</h3>



<p class="wp-block-paragraph">Polygonは単なる1つのPoSサイドチェーンだけでなく、<strong>多様なスケーリング技術</strong>を取り入れる方向へ進化中です。</p>



<ul class="wp-block-list">
<li><strong>Polygon PoS</strong>（メインのPoSチェーン）</li>



<li><strong>Polygon Hermez</strong>（ZK Rollupを統合）</li>



<li><strong>Polygon Miden, Polygon Zero</strong>（ZKプロジェクト）</li>



<li><strong>Polygon Nightfall</strong>（Rollup + プライバシー技術）<br>開発者は自分のユースケースに合ったスケーリングソリューションを選択し、Polygon上でDAppを構築できるようになるという戦略が打ち出されています。</li>
</ul>



<h3 class="wp-block-heading">2層のセキュリティ</h3>



<p class="wp-block-paragraph">PolygonのPoSチェーンでは<strong>バリデータ</strong>たちがMATICをステークし、ブロックの提案・検証を行います。その一方でイーサリアム上の<strong>Root Contract</strong>がPoSチェーンの最終状態を追認し、もしチェーンが不正に改竄されるならイーサリアムへのメインチェーンにあるセキュリティメカニズムで保護する形となります。<br>これにより、<strong>プルーフ・オブ・ステーク</strong>での高速処理と、**メインネット（イーサリアム）**での最終的な安全性というハイブリッドを実現します。</p>



<h2 class="wp-block-heading">主要なメリットとユースケース</h2>



<h3 class="wp-block-heading">低手数料・高速トランザクション</h3>



<p class="wp-block-paragraph">Ethereumメインネットに比べると、<strong>数秒以内のブロックタイム</strong>かつガス代が数分の1〜数百分の1という環境が整えられています。そのため、<strong>マイクロペイメント</strong>や<strong>ゲーム内トランザクション</strong>、多数のNFT発行など小額・高頻度のトランザクションが必要なユースケースに適しています。</p>



<h3 class="wp-block-heading">DeFiの拡張</h3>



<p class="wp-block-paragraph">多くのDeFiプロジェクト（Aave、SushiSwap、Curveなど）がPolygon上でサービスを展開し、ユーザーはイーサリアムの資産をブリッジしてPolygonで運用することで<strong>大幅に手数料を節約</strong>できます。トレーダーや流動性提供者が混雑や高コストから解放され、DeFiの流動性が高まる効果が期待されます。</p>



<h3 class="wp-block-heading">NFTとゲーム</h3>



<p class="wp-block-paragraph">NFTマーケットやブロックチェーンゲームでも<strong>Polygon</strong>が人気を得ています。メインネットより格段に安い手数料でミントやトレードができ、<strong>ユーザー体験</strong>が向上。<strong>OpenSea</strong>などの大手NFTプラットフォームもPolygonをサポートしているため、アーティストやコレクターが参入しやすい環境が整っています。</p>



<h3 class="wp-block-heading">DAOsや支払いアプリ</h3>



<p class="wp-block-paragraph">PolygonのPoSチェーンを使えば、<strong>支払い</strong>や<strong>投票</strong>などのアクションを高速・安価に実行可能です。これによりDAOの投票コストが下がり、ユーザーの参加が活性化したり、公共サービスでの実装も検討される動きがあります。</p>



<h2 class="wp-block-heading">開発の流れ：Smart Contract &amp; DApp</h2>



<h3 class="wp-block-heading">Solidity互換</h3>



<p class="wp-block-paragraph">Polygonはイーサリアムと<strong>EVM互換</strong>があり、Solidity等で書かれたコントラクトを<strong>ほぼそのまま</strong>Polygon PoSチェーン上にデプロイできます。ツールチェーン（Truffle/Hardhatなど）もEVM互換の<strong>RPCエンドポイント</strong>を指定すればOKです。</p>



<h4 class="wp-block-heading">Hardhatでの簡易設定例</h4>



<p class="wp-block-paragraph"><strong>hardhat.config.js</strong>:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="require(&quot;@nomiclabs/hardhat-waffle&quot;);

module.exports = {
  solidity: &quot;0.8.0&quot;,
  networks: {
    polygon: {
      url: &quot;https://polygon-rpc.com/&quot;, // Matic/Polygon mainnet RPC
      accounts: [&quot;0xyourprivatekey&quot;] // テスト用秘密鍵
    },
    mumbai: {
      url: &quot;https://rpc-mumbai.maticvigil.com&quot;, // テストネット
      accounts: [&quot;0xyourprivatekey&quot;]
    }
  }
};" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">require</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;@nomiclabs/hardhat-waffle&quot;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #4EC9B0">module</span><span style="color: #D4D4D4">.</span><span style="color: #4EC9B0">exports</span><span style="color: #D4D4D4"> = {</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">solidity:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;0.8.0&quot;</span><span style="color: #D4D4D4">,</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">networks:</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">polygon:</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">url:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;https://polygon-rpc.com/&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #6A9955">// Matic/Polygon mainnet RPC</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">accounts:</span><span style="color: #D4D4D4"> [</span><span style="color: #CE9178">&quot;0xyourprivatekey&quot;</span><span style="color: #D4D4D4">] </span><span style="color: #6A9955">// テスト用秘密鍵</span></span>
<span class="line"><span style="color: #D4D4D4">    },</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">mumbai:</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">url:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;https://rpc-mumbai.maticvigil.com&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #6A9955">// テストネット</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">accounts:</span><span style="color: #D4D4D4"> [</span><span style="color: #CE9178">&quot;0xyourprivatekey&quot;</span><span style="color: #D4D4D4">]</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"><span style="color: #D4D4D4">  }</span></span>
<span class="line"><span style="color: #D4D4D4">};</span></span></code></pre></div>



<p class="wp-block-paragraph">あとは <code>npx hardhat run scripts/deploy.js --network polygon</code> のように実行するとデプロイされます。</p>



<h3 class="wp-block-heading">ブリッジを利用した資産移動</h3>



<p class="wp-block-paragraph">イーサリアム上のERC-20やERC-721をPolygonに移す場合、<strong>公式ブリッジ</strong>あるいはサードパーティツールを使って<strong>資産のロック＆Mint</strong>を行います。ユーザー目線では「イーサリアムからPolygonへ送金」のようなUIになることが多いです。</p>



<ul class="wp-block-list">
<li><strong>PoSブリッジ</strong>: トークン転送にPoS検証を使う。数分〜数十分程度で完了（場合により異なる）</li>



<li><strong>Plasmaブリッジ</strong>: セキュリティがより厳格だが引き出しに長めのチャレンジ期間がある</li>
</ul>



<h2 class="wp-block-heading">コードサンプル：SolidityコントラクトをPolygonにデプロイ</h2>



<p class="wp-block-paragraph">以下の例は、先ほどの Hardhat config を使って<code>Counter.sol</code>を Polygon のMumbaiテストネットにデプロイするイメージ。</p>



<h4 class="wp-block-heading"><code>contracts/Counter.sol</code></h4>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract Counter {
    uint256 public count;

    constructor(uint256 _initial) {
        count = _initial;
    }

    function increment() public {
        count++;
    }

    function reset() public {
        count = 0;
    }
}" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #6A9955">// SPDX-License-Identifier: MIT</span></span>
<span class="line"><span style="color: #C586C0">pragma</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">solidity</span><span style="color: #D4D4D4"> ^0.8.0;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">contract</span><span style="color: #4EC9B0"> Counter</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #4EC9B0">uint256</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">public</span><span style="color: #D4D4D4"> count;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">constructor</span><span style="color: #D4D4D4">(</span><span style="color: #4EC9B0">uint256</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">_initial</span><span style="color: #D4D4D4">) {</span></span>
<span class="line"><span style="color: #D4D4D4">        count = _initial;</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">function</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">increment</span><span style="color: #D4D4D4">() </span><span style="color: #569CD6">public</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">        count++;</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">function</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">reset</span><span style="color: #D4D4D4">() </span><span style="color: #569CD6">public</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">        count = </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"><span style="color: #D4D4D4">}</span></span></code></pre></div>



<h4 class="wp-block-heading"><code>scripts/deploy.js</code></h4>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="async function main() {
  const [deployer] = await ethers.getSigners();
  console.log(&quot;Deploying contract with account:&quot;, deployer.address);

  const Counter = await ethers.getContractFactory(&quot;Counter&quot;);
  const counter = await Counter.deploy(10); // initial value
  await counter.deployed();
  
  console.log(&quot;Counter deployed to:&quot;, counter.address);
}

main()
  .then(() =&gt; process.exit(0))
  .catch((error) =&gt; {
    console.error(error);
    process.exit(1);
  });" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #569CD6">async</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">function</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">main</span><span style="color: #D4D4D4">() {</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> [</span><span style="color: #4FC1FF">deployer</span><span style="color: #D4D4D4">] = </span><span style="color: #C586C0">await</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ethers</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">getSigners</span><span style="color: #D4D4D4">();</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">console</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">log</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;Deploying contract with account:&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">deployer</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">address</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">Counter</span><span style="color: #D4D4D4"> = </span><span style="color: #C586C0">await</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ethers</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">getContractFactory</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;Counter&quot;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">counter</span><span style="color: #D4D4D4"> = </span><span style="color: #C586C0">await</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Counter</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">deploy</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">10</span><span style="color: #D4D4D4">); </span><span style="color: #6A9955">// initial value</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">await</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">counter</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">deployed</span><span style="color: #D4D4D4">();</span></span>
<span class="line"><span style="color: #D4D4D4">  </span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">console</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">log</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;Counter deployed to:&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">counter</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">address</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">}</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">main</span><span style="color: #D4D4D4">()</span></span>
<span class="line"><span style="color: #D4D4D4">  .</span><span style="color: #DCDCAA">then</span><span style="color: #D4D4D4">(() </span><span style="color: #569CD6">=&gt;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">process</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">exit</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">))</span></span>
<span class="line"><span style="color: #D4D4D4">  .</span><span style="color: #DCDCAA">catch</span><span style="color: #D4D4D4">((</span><span style="color: #9CDCFE">error</span><span style="color: #D4D4D4">) </span><span style="color: #569CD6">=&gt;</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">console</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">error</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">error</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">process</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">exit</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  });</span></span></code></pre></div>



<p class="wp-block-paragraph">実行:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="npx hardhat run scripts/deploy.js --network mumbai" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">npx</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">hardhat</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">run</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">scripts/deploy.js</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">--network</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">mumbai</span></span></code></pre></div>



<p class="wp-block-paragraph">成功すれば、<code>counter.address</code> にコントラクトがMumbaiテストネット上でデプロイされる。あとはPolygonスキャンなどのブロックエクスプローラーでコントラクトを確認できる。</p>



<h2 class="wp-block-heading">セキュリティとリスク</h2>



<h3 class="wp-block-heading">セキュリティモデル</h3>



<p class="wp-block-paragraph">Polygonはイーサリアムとは異なる独自のバリデータセットがPoSでチェーンを運営しているため、<strong>イーサリアム本体ほどの分散性</strong>を必ずしも持たない可能性があります。ただし、定期的に<strong>イーサリアムのマスター契約</strong>と同期することで、不正なチェーン改ざんが起きにくい仕組みを敷いています。<br>DeFiやNFT等の重要プロジェクトがPolygon上で稼働していることから、ハッキングやブリッジ攻撃などのリスクは常に存在し、セキュリティ監査やコミュニティチェックが不可欠です。</p>



<h3 class="wp-block-heading">ブリッジ攻撃</h3>



<p class="wp-block-paragraph">過去にはクロスチェーンブリッジがハッキングされ、大量の資産流出が起こった事例が他プロジェクトで報告されています。Polygonでも同様のリスクがあり、ブリッジを利用する際は<strong>公式の信頼できるエンドポイント</strong>や、しっかりしたマルチシグや監査を受けているサービスを選ぶことが大切です。</p>



<h3 class="wp-block-heading">中央集権的要素</h3>



<p class="wp-block-paragraph">Polygonが独自のバリデータ選出ルールや管理者コントラクトを持つため、ネットワーク運営にどれほど<strong>中央集権</strong>が介在するか、コミュニティ内で議論されることもあります。検閲耐性や永久改ざん防止がどの程度保障されるかは、イーサリアムやビットコインと比べると若干異なる評価となるでしょう。</p>



<h2 class="wp-block-heading">今後の展望</h2>



<h3 class="wp-block-heading">ZK技術への注力</h3>



<p class="wp-block-paragraph">PolygonはPoSチェーンだけでなく、<strong>ZK Rollup</strong>や<strong>ZK EVM</strong>にも積極的に投資しています。ZK技術（ゼロ知識証明）を用いることで<strong>プライバシーとスケーラビリティ</strong>を両立し、より安全かつ高速なブロックチェーンプラットフォームを形成する計画が進んでいます。</p>



<h3 class="wp-block-heading">マルチチェーン時代との整合</h3>



<p class="wp-block-paragraph">今後、<strong>クロスチェーンブリッジ</strong>や<strong>マルチチェーン対応</strong>がさらに進む中で、Polygonは**“イーサリアムのインターネットオブブロックチェーン”**を標榜し、さまざまなレイヤー2やサイドチェーンを統合するハブになる可能性があります。<br>他のLayer2（Arbitrum, Optimism, zkSyncなど）や独自チェーンとの競争・協調関係がどう変化していくかに注目が集まっています。</p>



<h3 class="wp-block-heading">アプリ連合とエコシステム拡大</h3>



<p class="wp-block-paragraph">Polygon上で稼働するアプリケーション（Aave, QuickSwap, OpenSea, GameFi等）が増加することで、<strong>流動性</strong>や<strong>ユーザー基盤</strong>が強化され、さらなる開発者や企業が参入する好循環が期待されます。特に大手ゲーム会社やエンタープライズ企業がPoSチェーンを導入するケースも増えれば、多くのユーザーがブロックチェーンを意識せずに使える世界がより近づくでしょう。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">Polygonは「イーサリアムのスケーリングソリューション」として、<strong>高速トランザクション</strong>や<strong>低手数料</strong>を提供しながら、イーサリアムとの高い互換性を保つLayer2/Sidechainプラットフォームです。PlasmaやPoSなどの技術を組み合わせて独自のアーキテクチャを実現し、多くのDeFiプロジェクトやNFTサービスが活用を進めています。</p>



<ul class="wp-block-list">
<li><strong>メリット</strong>
<ul class="wp-block-list">
<li>EVM互換のため開発が容易で、Solidityや既存ツールを活用可能</li>



<li>トランザクション手数料が安く、高速処理が可能</li>



<li>大手DeFiやNFTマーケットが次々に参入し、ユーザー体験が向上</li>
</ul>
</li>



<li><strong>注意点</strong>
<ul class="wp-block-list">
<li>イーサリアム本体ほどの分散度があるかは議論が分かれる</li>



<li>ブリッジ攻撃などクロスチェーン特有のリスク</li>



<li>コミュニティ主導やガバナンス強化が進みつつあるが、中央集権的要素への批判も残る</li>
</ul>
</li>



<li><strong>今後の見通し</strong>
<ul class="wp-block-list">
<li>ZK技術の採用拡大や複数ソリューションの取り込みで、ハブ的な役割を果たす方向へ</li>



<li>マルチチェーン時代に対応し、イーサリアムの主要なサイドチェーンとして位置づけを強化</li>



<li>大規模ゲームや企業導入などのユースケースが増えれば、ユーザー数も急激に伸びる可能性</li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph">もしあなたがイーサリアムでDAppを開発中で、<strong>高いガス代や遅延</strong>に悩まされているなら、Polygonへのデプロイを検討してみる価値は大いにあります。EVM互換によって既存コードをほぼそのまま移植できるうえ、ユーザーは<strong>リーズナブル</strong>な手数料でトランザクションを行えます。ぜひ公式Wikiや開発者向けドキュメントを参照しながら、Polygonでのスマートコントラクト開発を試してみてはいかがでしょうか。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://techgrowup.net/blockchain-polygon/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>初めてのイーサリアム入門：基本構造・スマートコントラクト・開発手法を解説</title>
		<link>https://techgrowup.net/blockchain-ethereum/</link>
					<comments>https://techgrowup.net/blockchain-ethereum/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[techgrowup]]></dc:creator>
		<pubDate>Sat, 05 Apr 2025 13:00:00 +0000</pubDate>
				<category><![CDATA[ブロックチェーン]]></category>
		<category><![CDATA[DeFi]]></category>
		<category><![CDATA[Ethereum]]></category>
		<category><![CDATA[EVM]]></category>
		<category><![CDATA[NFT]]></category>
		<category><![CDATA[Solidity]]></category>
		<category><![CDATA[イーサリアム]]></category>
		<category><![CDATA[スマートコントラクト]]></category>
		<category><![CDATA[開発]]></category>
		<guid isPermaLink="false">https://techgrowup.net/?p=2733</guid>

					<description><![CDATA[はじめに イーサリアムは、ビットコインに続く第二世代のブロックチェーンとして誕生し、「スマートコントラクト」と呼ばれる仕組みを世界に広めたプロジェクトです。ブロックチェーンが持つ分散型・改ざん耐性といった特性を活かしなが [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">はじめに</h1>



<p class="wp-block-paragraph">イーサリアムは、ビットコインに続く第二世代のブロックチェーンとして誕生し、「スマートコントラクト」と呼ばれる仕組みを世界に広めたプロジェクトです。ブロックチェーンが持つ分散型・改ざん耐性といった特性を活かしながら、プログラム可能な仕組みを導入したことで、金融（DeFi）やアート（NFT）、ゲーム、サプライチェーン管理など幅広い領域にインパクトを与えています。<br><a rel="noopener" target="_blank" class="" href="https://ethereum.org/en/developers/docs/intro-to-ethereum/">公式ドキュメント<span class="fa fa-external-link external-icon anchor-icon"></span></a>でも言及されるように、イーサリアムは単なる暗号通貨プラットフォームではなく、「世界中の誰もが参加し、アプリケーションをデプロイできるグローバルコンピュータ」を目指す壮大なプロジェクトといえます。本記事では、イーサリアムの基本構造やスマートコントラクトの動作原理、開発に必要な言語・ツール、さらにはDeFiやNFTといったユースケースも含め、初心者にもわかりやすく解説していきます。<br>ブロックチェーンや暗号資産に関心を持つ方、具体的にdApp（分散型アプリケーション）を開発したい方にとって、本記事がイーサリアム理解の一助となれば幸いです。</p>



<h2 class="wp-block-heading">イーサリアムの概要</h2>



<h3 class="wp-block-heading">ブロックチェーンとスマートコントラクト</h3>



<p class="wp-block-paragraph">イーサリアムは「ブロックチェーンの上でプログラム（= スマートコントラクト）を実行できるプラットフォーム」として登場しました。ビットコインが送金・決済を主な機能としていたのに対し、イーサリアムでは<strong>任意のロジック</strong>をチェーン上に載せることで、分散型アプリケーション（dApp）を作れるようにした点が最大の特徴です。<br>スマートコントラクトはブロックチェーン上で改ざん不能な状態で動作し、自動的に条件分岐を行ったり、アセットの移転を実行したりできます。従来のサーバーベースのアプリと異なり、<strong>特定の管理者が存在しなくても</strong>動き続けるため、金融サービスなどで新しい可能性が切り開かれました。</p>



<h3 class="wp-block-heading">第二世代ブロックチェーンとして</h3>



<p class="wp-block-paragraph">ビットコインを「第一世代」とするならば、イーサリアムは「第二世代ブロックチェーン」と呼ばれます。以下のような進化が挙げられます。</p>



<ul class="wp-block-list">
<li><strong>チューリング完全なプログラム実行</strong>: EVM（Ethereum Virtual Machine）を用い、複雑な条件分岐・計算が可能</li>



<li><strong>ERCトークン標準</strong>: イーサリアム上で独自トークンを発行・管理できる仕組み（ERC-20, ERC-721など）が普及</li>



<li><strong>コミュニティと開発者</strong>: オープンソースのエコシステムが爆発的に広がり、多数のツール・ライブラリ・フレームワークが整備</li>
</ul>



<h2 class="wp-block-heading">基本構造：アカウントとEVM</h2>



<h3 class="wp-block-heading">アカウントモデル</h3>



<p class="wp-block-paragraph">イーサリアムは「アカウント」という概念で資産と状態を管理し、以下の2種類が存在します。</p>



<ol class="wp-block-list">
<li><strong>外部所有アカウント（EOA）</strong>: ユーザーが秘密鍵を持って操作するアドレス。残高（ETH）を保持し、トランザクションを送信する</li>



<li><strong>コントラクトアカウント</strong>: コードとストレージを持つアドレス。スマートコントラクトがデプロイされる場所。EOAからの呼び出しやコントラクト間呼び出しで動作し、内部にstateを保持可能</li>
</ol>



<h3 class="wp-block-heading">EVM（Ethereum Virtual Machine）</h3>



<p class="wp-block-paragraph">イーサリアムのトランザクションが実行される際、EVMがバイトコードを解釈し、<strong>ガスコスト</strong>に基づいて命令の実行を進めます。ハッシュ関数や算術演算、外部コールなど多数の命令が用意され、スマートコントラクトのあらゆる動作がEVM内部で再現される形です。<br>EVMはスタックベースのマシンであり、Solidityなどの高級言語がコンパイルされた<strong>バイトコード</strong>を読み取り、分散合意下で状態を更新する設計となっています。</p>



<h2 class="wp-block-heading">ガスと手数料の仕組み</h2>



<h3 class="wp-block-heading">ガスとは</h3>



<p class="wp-block-paragraph">イーサリアムでスマートコントラクトを実行する際、<strong>計算やストレージ操作</strong>に応じて「ガス」という単位が消費されます。トランザクションを送信するユーザーは、<strong>gasLimit</strong>を設定して最大消費量を制限し、かつ<strong>gasPrice</strong>（または EIP-1559導入後は baseFee + priorityFee）を指定して手数料を支払う形になります。<br>もしトランザクション実行中にガスが尽きれば、「Out of gas」エラーでロールバックされる仕組みです。こうした設計により、ブロックチェーン上でのリソース浪費（無限ループやスパムなど）を防いでいます。</p>



<h3 class="wp-block-heading">EIP-1559とベース手数料</h3>



<p class="wp-block-paragraph">EIP-1559 で導入された手数料メカニズムでは、<strong>baseFee</strong>がブロックごとに自動調整され、ネットワーク混雑時には値上がりし、空いているときは値下がりする仕組みになりました。さらに<strong>priorityFee</strong>（tip）をマイナー（またはバリデーター）へ渡すことで、取引を優先してもらうことが可能です。<br>ガスモデルは複雑に見えますが、要するに「トランザクション実行にはリソースが必要で、それに応じたコストを支払うことでネットワークをスパムから守る」という理念がベースにあります。</p>



<h2 class="wp-block-heading">スマートコントラクトの開発フロー</h2>



<h3 class="wp-block-heading">Solidity言語</h3>



<p class="wp-block-paragraph">現在最も一般的なイーサリアム向け言語は<strong>Solidity</strong>です。JavaScriptやC++の要素を取り入れた文法で、<strong>static typed</strong>かつEVMに最適化されています。以下はSolidityで書いた簡単なコントラクト例です。</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract Counter {
    uint256 public count;

    constructor(uint256 _initial) {
        count = _initial;
    }

    function increment() public {
        count += 1;
    }

    function reset() public {
        count = 0;
    }
}" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #6A9955">// SPDX-License-Identifier: MIT</span></span>
<span class="line"><span style="color: #C586C0">pragma</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">solidity</span><span style="color: #D4D4D4"> ^0.8.0;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">contract</span><span style="color: #4EC9B0"> Counter</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #4EC9B0">uint256</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">public</span><span style="color: #D4D4D4"> count;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">constructor</span><span style="color: #D4D4D4">(</span><span style="color: #4EC9B0">uint256</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">_initial</span><span style="color: #D4D4D4">) {</span></span>
<span class="line"><span style="color: #D4D4D4">        count = _initial;</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">function</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">increment</span><span style="color: #D4D4D4">() </span><span style="color: #569CD6">public</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">        count += </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">function</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">reset</span><span style="color: #D4D4D4">() </span><span style="color: #569CD6">public</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">        count = </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"><span style="color: #D4D4D4">}</span></span></code></pre></div>



<ul class="wp-block-list">
<li><code>constructor</code>はコントラクトの初期化処理。<code>_initial</code>の値を<code>count</code>に格納して初期設定</li>



<li><code>increment</code>関数を呼ぶと<code>count</code>が1つ増える</li>



<li><code>reset</code>関数でリセット可能</li>
</ul>



<p class="wp-block-paragraph">このシンプルなコントラクトを<strong>EVMバイトコード</strong>にコンパイルし、ブロックチェーンにデプロイすれば動的な状態管理が可能になります。</p>



<h3 class="wp-block-heading">開発ツール: Hardhat / Truffle / Foundry</h3>



<p class="wp-block-paragraph">開発者は主に以下のようなツールを利用します。</p>



<ol class="wp-block-list">
<li><strong>Hardhat</strong>：JavaScript/TypeScriptでテストやスクリプトを記述しやすく、プラグインが豊富</li>



<li><strong>Truffle</strong>：古参のフレームワーク。<code>truffle init</code>でプロジェクトを作り、<code>truffle compile</code>, <code>truffle migrate</code>, <code>truffle test</code>などのコマンドで開発できる</li>



<li><strong>Foundry</strong>：Rustに影響を受けた高速ツール。Solidity専用のテストフレームワークやデプロイ機能を備えている</li>
</ol>



<p class="wp-block-paragraph">これらのツールで<strong>テストネット</strong>（Ropsten, Goerli, Sepolia, etc）へデプロイし、動作確認やユニットテストを行い、本番ネットワークへのデプロイを準備します。</p>



<h2 class="wp-block-heading">dAppとインタラクション</h2>



<h3 class="wp-block-heading">Web3ライブラリ</h3>



<p class="wp-block-paragraph">フロントエンド（webアプリ）がイーサリアムのスマートコントラクトと通信する場合、<strong>web3.js</strong>や<strong>ethers.js</strong>などのJavaScriptライブラリが広く使われます。ユーザーは<strong>MetaMask</strong>等のウォレットを介してトランザクション承認を行い、<strong>RPC</strong>経由でネットワークとやりとりします。<br>以下は ethers.js でシンプルにコントラクトを呼び出す例です。</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="import { ethers } from &quot;ethers&quot;;

async function callContract() {
  const provider = new ethers.providers.Web3Provider(window.ethereum);
  await provider.send(&quot;eth_requestAccounts&quot;, []);
  const signer = provider.getSigner();

  const contractAddress = &quot;0x1234...&quot;; 
  const abi = [...]; // コントラクトのABI
  const contract = new ethers.Contract(contractAddress, abi, signer);

  const tx = await contract.increment();
  console.log(&quot;Transaction sent:&quot;, tx.hash);
  const receipt = await tx.wait();
  console.log(&quot;Transaction confirmed:&quot;, receipt.blockNumber);
}" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #C586C0">import</span><span style="color: #D4D4D4"> { </span><span style="color: #9CDCFE">ethers</span><span style="color: #D4D4D4"> } </span><span style="color: #C586C0">from</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;ethers&quot;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">async</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">function</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">callContract</span><span style="color: #D4D4D4">() {</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">provider</span><span style="color: #D4D4D4"> = </span><span style="color: #569CD6">new</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ethers</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">providers</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">Web3Provider</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">window</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">ethereum</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">await</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">provider</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">send</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;eth_requestAccounts&quot;</span><span style="color: #D4D4D4">, []);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">signer</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">provider</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">getSigner</span><span style="color: #D4D4D4">();</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">contractAddress</span><span style="color: #D4D4D4"> = </span><span style="color: #CE9178">&quot;0x1234...&quot;</span><span style="color: #D4D4D4">; </span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">abi</span><span style="color: #D4D4D4"> = [...]; </span><span style="color: #6A9955">// コントラクトのABI</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">contract</span><span style="color: #D4D4D4"> = </span><span style="color: #569CD6">new</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">ethers</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">Contract</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">contractAddress</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">abi</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">signer</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">tx</span><span style="color: #D4D4D4"> = </span><span style="color: #C586C0">await</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">contract</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">increment</span><span style="color: #D4D4D4">();</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">console</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">log</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;Transaction sent:&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">tx</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">hash</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">receipt</span><span style="color: #D4D4D4"> = </span><span style="color: #C586C0">await</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">tx</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">wait</span><span style="color: #D4D4D4">();</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">console</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">log</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;Transaction confirmed:&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">receipt</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">blockNumber</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">}</span></span></code></pre></div>



<ul class="wp-block-list">
<li><strong>provider</strong>: ノード（またはMetaMask）へのRPC接続</li>



<li><strong>signer</strong>: ユーザー秘密鍵を持ち署名できるオブジェクト</li>



<li><code>contract.increment()</code>で実際にスマートコントラクトを呼び出す</li>
</ul>



<h3 class="wp-block-heading">フロントエンド + スマートコントラクト</h3>



<p class="wp-block-paragraph">多くのdAppは<strong>React</strong>や<strong>Vue</strong>などのフロントエンドフレームワークと組み合わせ、ユーザーがボタンクリックやフォーム送信を通じてトランザクションを送信したり、コントラクトの状態を表示したりします。ブロックチェーンならではの特徴として、サーバーサイドを持たずに<strong>クライアント・分散ネットワーク</strong>構成をとることも可能です。</p>



<h2 class="wp-block-heading">ユースケース：DeFi, NFT, DAOなど</h2>



<h3 class="wp-block-heading">DeFi (分散型金融)</h3>



<p class="wp-block-paragraph">イーサリアム最大の成功事例ともいわれるDeFiは、<strong>貸し借りプロトコル（Aave, Compound）</strong>、<strong>分散型取引所（Uniswap, SushiSwap）</strong>、**ステーブルコイン（DAI, USDCなど）**などが代表的です。スマートコントラクトが資産を自動管理し、中央の銀行や取引所を介さずに大規模な金融サービスを実現できる点が特長です。</p>



<h3 class="wp-block-heading">NFTとデジタルアセット</h3>



<p class="wp-block-paragraph"><strong>ERC-721</strong>規格などを通じてNFT（Non-Fungible Token）を発行し、アートやゲームアイテム、メタバース資産をオンチェーンで表現する動きが盛んです。「CryptoKitties」や「Bored Ape Yacht Club」など、有名プロジェクトが大きな注目を集めています。NFTは<strong>唯一性</strong>を示すための仕組みとして、イーサリアムが最も活用されている分野のひとつです。</p>



<h3 class="wp-block-heading">DAO（分散型自律組織）</h3>



<p class="wp-block-paragraph">イーサリアムがもたらす「誰もが参加でき、透明性のある投票や資金管理」が可能な組織形態として<strong>DAO</strong>が登場しました。トークン保有者が提案や投票を行い、結果をコントラクトが自動で執行することで、<strong>トップダウンの指揮命令体系を排した</strong>組織運営を実現します。<br>この仕組みによりコミュニティが資金をプールし、共同でプロジェクトを立ち上げたり、クリエイティブ活動を支援したりと、多彩な試みがなされています。</p>



<h2 class="wp-block-heading">イーサリアムの課題と拡張</h2>



<h3 class="wp-block-heading">スケーラビリティとガス高騰問題</h3>



<p class="wp-block-paragraph">イーサリアムは<strong>PoW</strong>から<strong>PoS</strong>への移行（The Merge）を経て、エネルギー消費を大幅に削減しましたが、オンチェーンの<strong>スケーラビリティ</strong>はいまだ課題です。混雑時にはガス価格が高騰し、一般ユーザーが小額取引を行うのが困難になることも。<br>これに対し、<strong>レイヤー2</strong>（Optimistic Rollup, ZK Rollupなど）や<strong>シャーディング</strong>が計画されており、将来的に大幅なTPS向上が見込まれています。</p>



<h3 class="wp-block-heading">レイヤー2（L2）ソリューション</h3>



<p class="wp-block-paragraph">レイヤー2は、主に<strong>オフチェーンの処理</strong>や<strong>Rollup</strong>技術で多量のトランザクションをまとめ、最終的な要約をメインチェーンに書き込むアプローチです。<strong>Arbitrum</strong>や<strong>Optimism</strong>、<strong>zkSync</strong>などが代表的で、EVM互換を維持しつつ<strong>手数料が低い</strong>DApp開発環境を提供しています。</p>



<h3 class="wp-block-heading">セキュリティとユーザビリティ</h3>



<p class="wp-block-paragraph">Solidityのコントラクトはパワフルな反面、<strong>Re-entrancy</strong>や<strong>Overflow</strong>などの脆弱性が存在し、過去にも多額の資金流出事件が起きています。開発者や監査会社がセキュリティツールやベストプラクティスを整備し、ユーザーが慎重にプロジェクトを選べるようになってきたとはいえ、依然として<strong>注意が必要</strong>です。<br>また、<strong>ウォレットの秘密鍵管理</strong>や<strong>ガス代の仕組み</strong>など初心者にはハードルが高く、ユーザビリティの向上も大きな課題として残っています。</p>



<h2 class="wp-block-heading">今後の展望</h2>



<h3 class="wp-block-heading">イーサリアム2.0とシャーディング</h3>



<p class="wp-block-paragraph">イーサリアムは<strong>The Merge</strong>でPoSへの切り替えを完了し、次なる段階として<strong>シャーディング</strong>など大規模アップグレードが計画されています。シャーディングによってチェーンが分割され、データハンドリングや検証を分担することで、ネットワーク全体のスループットとコスト効率が向上すると期待されています。</p>



<h3 class="wp-block-heading">マルチチェーンと相互運用</h3>



<p class="wp-block-paragraph">DeFiやNFTがマルチチェーン化する流れの中で、<strong>イーサリアムがマルチチェーンの中心</strong>として機能する可能性が高いです。ブリッジやクロスチェーンソリューションが成熟すれば、イーサリアムの資産やNFTを他チェーンで利用したり、逆に他チェーンのトークンをイーサリアムDeFiで活用するなど、相互運用がより活発になるでしょう。</p>



<h3 class="wp-block-heading">RollupやZK技術の普及</h3>



<p class="wp-block-paragraph"><strong>ZK-Rollup</strong>や<strong>Optimistic Rollup</strong>がさらに発展すれば、レイヤー2上で多数のトランザクションをまとめつつEVM互換を保ち、実用的なdApp体験を提供できるようになります。これが<strong>グローバルスケール</strong>のサービス（SNSやゲームなど）にも対応できる道を開くと考えられています。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">イーサリアムは、ブロックチェーンを単なる送金だけでなく、<strong>汎用的な分散コンピューティングプラットフォーム</strong>に進化させた先駆的プロジェクトです。EVMという仮想マシンを通じてスマートコントラクトを動作させ、DeFiやNFT、DAOなど多彩なユースケースを生み出しました。</p>



<ul class="wp-block-list">
<li><strong>特徴</strong>
<ul class="wp-block-list">
<li>EVMによるチューリング完全なスマートコントラクト実行</li>



<li>ガスモデルによってリソース乱用を防ぎ、トランザクションごとに手数料を徴収</li>



<li>大規模コミュニティ・ツール・フレームワークが揃い、開発しやすい環境</li>
</ul>
</li>



<li><strong>開発フロー</strong>
<ul class="wp-block-list">
<li>SolidityやVyperでコントラクトを記述</li>



<li>Hardhat/Truffle/Foundryなどのツールでコンパイル・デプロイ・テスト</li>



<li>フロントエンドからweb3/ethers.jsでコントラクト呼び出し</li>
</ul>
</li>



<li><strong>課題と展望</strong>
<ul class="wp-block-list">
<li>スケーラビリティの不足をレイヤー2やシャーディングで解決へ</li>



<li>セキュリティとユーザビリティの向上が依然として重要</li>



<li>マルチチェーン化やZK技術など革新が続き、より幅広い分散アプリに対応</li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph">イーサリアムは暗号資産やブロックチェーンの世界を一変させた存在であり、今後もさらなるアップグレードや周辺技術の成長によって「分散型の世界コンピュータ」としての地位を確立していくでしょう。DeFiやNFT、DAOといったキーワードをきっかけに、イーサリアムが実現する次世代のインターネット（Web3）の姿を追いかける価値はますます高まっています。もし開発を始めたいなら、SolidityチュートリアルやHardhatなどのツールから入門し、公式ドキュメントやコミュニティリソースで最新の情報をキャッチアップするのが近道です。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://techgrowup.net/blockchain-ethereum/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
