本文是供稿于BanklessCN OG项目的专栏文章,此专栏目标是通过研发视角,以尽可能简单的伪代码来描述整个加密行业的所有基础知识。
区块链就是逻辑上一个个区块链在一起的一种存储结构。区块用伪代码是这样表达的:
区块=「
序号,
工作证明加密串,
时间,
交易列表=「
发方,收方,金额
」
上一个区块的算法地址(很长的加密算法串)
」
如何把一个区块和另一个链在一起呢?每个新来的块,都要对上一个块内容进行计算,这个计算后确定的内容就作为新区块中 “上一个区块的算法地址”,任何人拿上一个区块的内容,都能算出来这个相同的地址(hash)。于是这样就在逻辑中把所有的数据串成一串了。
工作证明加密串,挖矿的过程也就在计算这个串,谁先算出来并提交了,这个工作就是谁的,奖励就是谁拿。至于谁可以挖,挖出来怎么算,就构成了不同的式作量证明算法。
点对点也就是以前大家下载电影用的p2p网络协议,这相对于中心化服务器的机制,保障了所有的数据都没有集中的保存和计算点,当然也存在可能用海量的矿场做到占大多数。
转账过程主要是做到新建交易,这个过程其实只需要添加几个关键属性:
交易=「
发方,收方,金额
」
这个构建完成后,就可以放到当前区块的交易列表中,向网络中发送交易内容。此时整个网络就出现了等待计算的区块了。
挖矿的过程本质上是完成区块的打包入链:
循环计算新 工作量证明串 直到:
证明串满足网络定义的要求后,进行交易打包生成新的区块。
计算上一区块的算法地址,写到新区块里,完成链接。
整个过程矿工一般都会得到不同机制的奖励。
【下期预告】ETH和BTC的技术区别
本文的专业版本:
英文原文作者是dvf: