# 连载一 伪代码解读区块链

By [John](https://paragraph.com/@johnchan) · 2022-02-09

---

本文是供稿于BanklessCN OG项目的专栏文章，此专栏目标是通过研发视角，以尽可能简单的伪代码来描述整个加密行业的所有基础知识。

区块
--

区块链就是逻辑上一个个区块链在一起的一种存储结构。区块用伪代码是这样表达的：

    区块=「
        序号，
        工作证明加密串，
        时间，
        交易列表=「
           发方，收方，金额
        」
        上一个区块的算法地址（很长的加密算法串）
    」
    

如何把一个区块和另一个链在一起呢？每个新来的块，都要对上一个块内容进行计算，这个计算后确定的内容就作为新区块中 “上一个区块的算法地址”，任何人拿上一个区块的内容，都能算出来这个相同的地址（hash）。于是这样就在逻辑中把所有的数据串成一串了。

工作证明加密串，挖矿的过程也就在计算这个串，谁先算出来并提交了，这个工作就是谁的，奖励就是谁拿。至于谁可以挖，挖出来怎么算，就构成了不同的式作量证明算法。

点对点
---

点对点也就是以前大家下载电影用的p2p网络协议，这相对于中心化服务器的机制，保障了所有的数据都没有集中的保存和计算点，当然也存在可能用海量的矿场做到占大多数。

转账
--

转账过程主要是做到新建交易，这个过程其实只需要添加几个关键属性：

        交易=「
           发方，收方，金额
        」
    

这个构建完成后，就可以放到当前区块的交易列表中，向网络中发送交易内容。此时整个网络就出现了等待计算的区块了。

挖矿
--

挖矿的过程本质上是完成区块的打包入链：

    循环计算新 工作量证明串 直到：
        证明串满足网络定义的要求后，进行交易打包生成新的区块。
        计算上一区块的算法地址，写到新区块里，完成链接。
    

整个过程矿工一般都会得到不同机制的奖励。

【下期预告】ETH和BTC的技术区别

本文的专业版本:

[https://www.54chen.com/cn/blockchain/](https://www.54chen.com/cn/blockchain/)

英文原文作者是dvf:

[https://hackernoon.com/learn-blockchains-by-building-one-117428612f46](https://hackernoon.com/learn-blockchains-by-building-one-117428612f46)

---

*Originally published on [John](https://paragraph.com/@johnchan/F34DX7JXjjCjWP2rg2QB)*
