> ## Documentation Index
> Fetch the complete documentation index at: https://docs.monad.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# 为何选择区块链?

> 关于"是什么"和"为什么"的简单心智模型。

区块链是由一组多样化参与者对以下两件事达成的去中心化共识:

1. 交易的官方**排序**(账本)
2. 官方的**世界状态**,包括账户余额和各类程序的状态。

在 Ethereum 等现代区块链中,交易包括余额转账、创建新程序,以及对现有程序的函数调用。到目前为止所有交易的聚合结果产生了当前状态,这就是为什么\_对上文(1)的一致意味着对(2)的一致\_。

区块链系统有一组协议规则,也称作共识机制,用于描述当前处于同步状态的分布式节点集如何相互通信,以就要添加到账本中的额外交易达成一致。([MonadBFT](/zh/monad-arch/consensus/monad-bft) 就是共识机制的一个例子。)

归纳法保持了节点的同步性:它们从相同的状态出发,应用相同的交易,因此在应用完一批新交易后,它们仍然拥有一致的状态。

共享的全局状态使得去中心化应用的开发成为可能——这些应用"运行在区块链上",即运行在区块链系统的每个节点上。去中心化应用是一段代码(以及持久化的、应用特定的状态),任何用户都可以通过提交指向该应用上某个函数的交易来调用它。区块链中的每个节点都负责正确执行被调用的字节码;冗余保证了每个节点的诚实性。

## 一个应用示例

去中心化应用可以实现我们通常预期以中心化方式实现的功能。例如,一个非常简单的去中心化应用示例是\_虚拟银行\_(在加密领域通常称为借贷协议)。

在现实世界中,银行是一种接受存款并以更高利率放贷的业务。银行赚取高利率与低利率之间的差价;借款人获得贷款以从事经济生产活动;而您则因存款而赚取利息。三方共赢!

虚拟银行本质上就是一个包含四个主要方法的应用:`deposit`、`withdraw`、`borrow` 和 `repay`。每种方法的逻辑大多是簿记,以确保存款和贷款被正确跟踪:

```python theme={null}
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);
    # ...
```

在 Ethereum 或 Monad 中,有人可以为这家虚拟银行编写代码并上传;然后任何人都可以利用它进行借贷,或许比在其本国申请银行服务要容易得多。

这个简单的例子展示了去中心化应用的力量。这里还有一些其他值得强调的好处:

* **开放的 API / 可组合性**:去中心化应用可以被其他去中心化应用原子地调用,使开发者能够通过堆叠现有组件来构建更复杂的功能。
* **透明性**:应用逻辑完全通过代码表达,任何人都可以审查其副作用。状态是透明且可审计的;DeFi 中的储备证明是默认能力。
* **抗审查性和可信中立性**:任何人都可以向无需许可的网络提交交易或上传应用。
* **全球触达**:任何有互联网访问权限的人都可以使用关键的金融服务,包括无银行账户/银行账户不足的用户。
