# なぜブロックチェーンなのか?

ブロックチェーンは、多様な参加者の間の分散型合意であり、二つのことに関しています。

1. トランザクションの公式な順序（台帳）
2. 口座残高やさまざまなプログラムの状態を含む、世界の公式の状態。

Ethereumのような現代のブロックチェーンでは、トランザクションは残高の転送、新しいプログラムの作成、既存のプログラムに対する関数呼び出しで構成されます。これまでの全てのトランザクションの集約結果が現在の状態を生み出し、これが（1）についての合意が（2）についての合意を意味する理由です。

ブロックチェーンシステムには、現在同期している分散ノードセットが、それぞれが適用すべき新しいトランザクションリストについて互いに通信して合意する方法を記述した一連のプロトコルルールがあります。帰納法はノードを同期させます：彼らは同じ状態から始め、同じトランザクションを適用するため、新しいトランザクションリストを適用した終わりには、彼らはまだ一貫した状態を持っています。（このエッセイでは、そのようなノードシステムがどのように合意を達成するかの詳細は無視しますが、さらなる詳細についてはMonadの[コンセンサスメカニズム](/japanads-doc/na/konsensasu/monadbft.md)のドキュメントを参照してください。）

共有グローバル状態は、分散型アプリの開発を可能にします。ブロックチェーン上に存在するアプリ、つまりブロックチェーンシステムの各ノード上に。分散型アプリは、コードの塊（および永続的でアプリ固有の状態）であり、任意のユーザーがそのアプリ上の関数を指すトランザクションを提出することによって呼び出すことができます。ブロックチェーン内の各ノードは、呼び出されたバイトコードを正確に実行する責任があり、複製が各ノードを正直に保ちます。

## アプリの例 <a href="#an-example-app" id="an-example-app"></a>

分散型アプリは、中央集権的に実装されることが期待されるかもしれない機能を実装できます。たとえば、非常にシンプルな分散型アプリの例は、バーチャルバンクです（通常、暗号ではレンディングプロトコルと呼ばれます）。

物理的な世界で、銀行は預金を受け入れ、より高い利率でそれらを貸し出すビジネスです。銀行は高利率と低利率の差額を稼ぎます；借り手は何か経済的に生産的なことをするためのローンを得ます；そして、あなたは預金に対して利息を稼ぎます。みんな勝ちです！

バーチャルバンクは、単純に預金、引き出し、借入、返済の4つの主要なメソッドを持つアプリです。これらのメソッドの各ロジックは、主に預金とローンが正しく追跡されていることを保証するための簿記です：

```
class VirtualBank:
  def deposit(sender, amount):
    # transfer amount from sender to myself (the bank)
    # do internal bookkeeping to credit the sender

  def withdraw(sender, amount):
    # ensure the sender had enough on deposit
    # do internal bookkeeping to debit the sender
    # transfer amount from myself (the bank) to sender

  def borrow(sender, amount):
    # ...

  def repay(sender, amount);
    # ...
```

イーサリアムまたはMonadでは、誰かがこの仮想銀行のコードを作成してアップロードできます。そうすれば、誰もがそれを貸し借りに利用できるようになり、自国で銀行サービスにアクセスするよりもはるかに簡単になる可能性があります。

この簡単な例は、分散型アプリの威力を示しています。他にも注目すべき利点がいくつかあります。

* **オープンAPI / コンポーザビリティ** : 分散型アプリは他の分散型アプリからアトミックに呼び出すことができるため、開発者は既存のコンポーネントを積み重ねることにより、より複雑な機能を構築できます。
* **透明性** : アプリのロジックはコードのみで表現されるため、誰でもロジックの副作用を確認できます。状態は透明で監査可能です。 DeFiでは準備金の証明がデフォルトです。
* **検閲耐性と信頼できる中立性 :** 誰でもトランザクションを送信したり、許可のないネットワークにアプリケーションをアップロードしたりできます。
* **グローバルなリーチ** : インターネットにアクセスできる誰もが、銀行口座を持たないユーザーや銀行口座を持たないユーザーも含め、重要な金融サービスにアクセスできます。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://neafs-organization.gitbook.io/japanads-doc/na/nazeburokkuchnnanoka.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
