<?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%82%aa%e3%83%97%e3%83%86%e3%82%a3%e3%83%9f%e3%82%b9%e3%83%86%e3%82%a3%e3%83%83%e3%82%af/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</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>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Disk: Enhanced  を使用したページ キャッシュ

Served from: techgrowup.net @ 2026-05-23 18:05:09 by W3 Total Cache
-->