ブロックチェーン社会実装のための基礎知識概論〜ブロックチェーンの基本機能(トランザクション)〜

# 第３章　ブロックチェーンの基本機能

本章では、ブロックチェーンの基本的な機能について取り上げます。スマートコントラクト、トークン、マルチシグ、スワップなど、ブロックチェーン上で実行される機能がどのように構成され、どのような利点を持つかを詳細に説明します。これにより、ブロックチェーンが単なる取引記録の技術にとどまらず、複雑な契約や資産管理に応用されることを理解できます。


## 3-2.トランザクション

「トランザクション」は、ブロックチェーンの核心的な要素であり、ネットワーク上で行われる全ての取引やアクションを指す重要な概念です。トランザクションは、資産の移転やスマートコントラクトの実行など、ブロックチェーン上で行われるあらゆる操作を具体的に実行します。ブロックチェーンが提供する透明性、信頼性、セキュリティの土台には、このトランザクションの概念が深く関わっています。

ここでは、トランザクションの基本的な仕組み、種類、処理方法、セキュリティの確保、そしてブロックチェーンにおけるトランザクションの役割について詳しく論じます。

### トランザクションの基本構造

ブロックチェーンにおけるトランザクションは、特定のアカウントから別のアカウントへ価値（一般的には暗号通貨）を移動させる操作や、スマートコントラクトを実行する命令のことを指します。トランザクションは次のような要素を含んでいます：

- **送信者のアドレス（公開鍵）**：トランザクションを発行したアカウントの公開鍵アドレス。これにより、誰がトランザクションを作成したかを示します。
- **受信者のアドレス**：トランザクションの対象となるアカウントの公開鍵アドレス。送信者が資産を送る相手を示します。
- **送信量**：トランザクションで移動する資産の量（例えばビットコインやイーサリアムの数量）。
- **署名**：トランザクションが送信者によって正当に発行されたことを証明するために、送信者の秘密鍵によって生成されたデジタル署名。
- **データ**（任意）：スマートコントラクトや他のプログラムを実行するための追加情報を含む場合もあります。

トランザクションは、ブロックチェーンネットワークにブロードキャストされ、参加しているノードによって検証されます。検証が成功すると、そのトランザクションはブロックに含まれ、ブロックチェーン上に永続的に記録されます。

### トランザクションの種類

ブロックチェーン上のトランザクションにはいくつかの種類があり、これらはネットワークの設計や目的によって異なります。主に、以下の2種類がよく知られています。

#### 1. 資産の移動トランザクション

資産移動トランザクションは、ブロックチェーンにおいて最も基本的で広く利用されるトランザクションです。ビットコインやイーサリアムといった暗号通貨のネットワークでは、ユーザーが自分のアカウントから別のアカウントに通貨を送るときにこのタイプのトランザクションが利用されます。

- **ビットコインのトランザクション**：ビットコインでは、トランザクションは「インプット」と「アウトプット」の形式で構成されます。インプットは、送信者が受け取ったビットコインを使う際に参照する以前のトランザクションを示し、アウトプットは受信者のアドレスと送信量を指定します。インプットの合計はアウトプットの合計に等しくなり、余剰分は手数料としてマイナーに支払われます。

- **イーサリアムのトランザクション**：イーサリアムでも資産移動トランザクションが基本となりますが、イーサリアムはスマートコントラクトをサポートしているため、トランザクションにはプログラム的なデータを含むことができる点が特徴です。

#### 2. スマートコントラクトの実行トランザクション

スマートコントラクトの実行トランザクションは、特定の条件が満たされたときに自動的に実行されるプログラムを起動するために利用されます。スマートコントラクトは、プログラムコードによって制御されるアカウントであり、これを操作するためにはトランザクションが必要です。

- **イーサリアムのコントラクト実行**：イーサリアムでは、スマートコントラクトが保存されたアカウントに対してトランザクションを送信することで、契約が実行されます。例えば、自動的に資産を転送する契約や、トークンの管理を行う契約などがあります。

- **データのやり取り**：スマートコントラクトには、通常の資産移動トランザクションに加えて、データや条件を含むことができます。このデータに基づいてコントラクトが実行され、その結果はブロックチェーン上に記録されます。

### トランザクションの処理プロセス

トランザクションがネットワークでどのように処理されるかを理解することは、ブロックチェーンの機能を理解するうえで重要です。以下は、一般的なトランザクション処理の流れです。

#### 1. トランザクションの作成

ユーザーは自分のアカウントからトランザクションを作成します。トランザクションには送信者のアドレス、受信者のアドレス、送信する資産量、そして署名が含まれます。スマートコントラクトのトランザクションの場合は、実行するプログラムや条件に関するデータも含まれます。

#### 2. ブロードキャスト

作成されたトランザクションは、P2Pネットワーク内の他のノードにブロードキャストされます。すべてのノードがそのトランザクションを受信し、それを処理します。

#### 3. 検証

ネットワーク内のノードは、受信したトランザクションが有効かどうかを検証します。検証には以下の要素が含まれます：

- **署名の検証**：送信者の秘密鍵による正しい署名が行われているか確認します。
- **資産残高の確認**：送信者のアカウントに指定された資産量が十分にあるかどうかを確認します。
- **ダブルスペンドのチェック**：同じ資産が複数回使われていないことを確認します（ダブルスペンド問題の防止）。

#### 4. トランザクションの承認

トランザクションが検証されると、そのトランザクションはブロックに含まれます。ブロックは一連のトランザクションで構成され、マイナーやバリデーター（Proof of Stakeなどのコンセンサスアルゴリズムを使用するネットワークでは、検証者）によって新しいブロックが生成されます。

#### 5. ブロックチェーンへの追加

検証が完了したトランザクションを含むブロックは、他のノードによって承認され、ブロックチェーンに追加されます。これにより、トランザクションが永続的に記録され、改ざんが不可能になります。

#### 6. 確定（ファイナリティ）

ブロックがチェーンに追加された後、一定数のブロックが生成されると、そのトランザクションは「確定」されます。これにより、ネットワーク全体でそのトランザクションが変更されることは事実上不可能になります。

### トランザクション手数料

ブロックチェーン上でトランザクションを実行するためには、通常、手数料が発生します。手数料は、ネットワークを維持するために重要な役割を果たし、次のような目的で使用されます：

1. **ネットワークの維持**：手数料は、トランザクションを検証してブロックに追加するマイナーやバリデーターへの報酬として支払われます。これにより、ネットワークのセキュリティが保たれます。
   
2. **スパムの防止**：手

数料を課すことで、悪意あるユーザーが無制限にトランザクションを送信してネットワークに負荷をかけることを防ぎます。手数料が高く設定されている場合、ネットワークのリソースが無駄に消費されることを防止します。

イーサリアムの場合、手数料は「ガス」と呼ばれ、スマートコントラクトの実行にかかる計算リソースに応じて手数料が変動します。

### トランザクションのセキュリティ

トランザクションは、暗号技術に基づいて非常に高いセキュリティを提供しています。具体的には、次の要素がトランザクションの安全性を確保しています：

- **公開鍵暗号方式**：トランザクションは送信者の秘密鍵によって署名されているため、他人が偽のトランザクションを作成することは不可能です。公開鍵を使って署名の正当性を検証することで、取引の信頼性が確保されます。

- **分散型検証**：ブロックチェーンのP2Pネットワークにおいて、すべてのノードがトランザクションを検証します。これにより、ネットワーク全体で合意が形成され、不正行為が防止されます。

- **改ざん耐性**：ブロックチェーンに記録されたトランザクションは、ハッシュツリーによって保護されています。新しいブロックが追加されるたびに過去のトランザクションがさらに保護され、改ざんが極めて困難になります。

### トランザクションの役割

トランザクションは、ブロックチェーン上で以下のような重要な役割を果たしています：

1. **価値の移動**：トランザクションは、ブロックチェーン上でデジタル資産やトークンの所有権を移動させるための手段です。これにより、ユーザー間の安全かつ透明な資産取引が実現されます。

2. **スマートコントラクトの実行**：スマートコントラクトは、ブロックチェーン上で自動化された契約を実行するプログラムです。これらの契約はトランザクションによってトリガーされ、実行されます。

3. **信頼性の確保**：トランザクションは、公開されたブロックチェーン上で行われ、全ノードによって検証されるため、透明性と信頼性が確保されています。この仕組みによって、取引の真正性やデータの改ざん防止が実現されます。

### 結論

「トランザクション」は、ブロックチェーンの基盤的な機能であり、価値の移動やスマートコントラクトの実行を可能にする重要な要素です。公開鍵暗号方式やP2Pネットワーク、ハッシュツリーといった技術を駆使することで、トランザクションは高いセキュリティと信頼性を提供します。

さらに、トランザクションの処理プロセスによって、デジタル資産の所有権が安全に管理され、改ざんされることなく全ノードで一貫性を持って記録されます。ブロックチェーンの透明性と信頼性を実現するために、トランザクションは欠かせない役割を果たしており、これがさまざまな分野での応用を支えています。

---

### バックナンバー

#### はじめに
https://qiita.com/kicnft/items/6036c9455a12e99ab5da

#### 第１章　既存システムの仕組みと制約

https://qiita.com/kicnft/items/6badc48ca775d9d2e8c3

https://qiita.com/kicnft/items/5b3cc592239e53710f35

https://qiita.com/kicnft/items/88f753e88266862dde8a

#### 第２章　P2Pネットワークと電子署名

#### 2-1.P2Pネットワーク
https://qiita.com/kicnft/items/23c4cc4372ba93a9c7a2

#### 2-2.電子署名
https://qiita.com/kicnft/items/cdec78c9b0a63dab219f

#### 2-3.改ざん耐性
https://qiita.com/kicnft/items/d6341037d8db5fd7576c

#### 2-4.コンセンサス
https://qiita.com/kicnft/items/c99bd787c4d517473e27

#### 第３章　ブロックチェーンの基本機能

#### 3-1.アカウント
https://qiita.com/kicnft/items/8ed6fc8443e9b0ef9dd1