BlockChain 区块链原理 简易版

2018/01/24 blockchian

Blockchain 的原理

我们从起源说起,人们在一起生活需要交易,张三李四之间拿多少钱换了别人的多少东西。 如何证明这些交易发生过且记录下交易的信息呢? 于是人类发明了记账本,好脑子不如烂笔头。

自从有了记账本,交易变得有据可查,谁有多少钱,谁干过什么,靠账本说话,于是账本成为了权威。那么,如何保证账本不被伪造,是一个可信的账本呢? 于是一波大佬在一起说:咱们开个银行吧,我们保管着世界上最完整的账本,并且人们都信我们的记录是真的。于是乎,大家对账本的可信度的问题变成了对银行的可信度问题。现代社会,好在银行由国家担保,基本可信。

但是人们总在怀疑,怀疑万一万一你银行联合国家干坏事怎么办?作为平民我除了相信你还能干什么?蚂蚁可以控制大象么? 于是最近有人提出,我发明个新的记账办法,每个人都能出力,人人都可以保证参考的账本是可信的,并且每个人手里都有最新的账本。

于是,最初大家都只有一个页纸(一个block)当账本,由于纸张大小有限,只能记录有限的交易量。随着交易量的增加,我们需要更多的账本页,每添加一页,这页账本的信息需要同步给所有人。

这里涉及到两个问题,第一个,交易的信息是否可信?第二个,新的账本页从哪来? 首先,每笔交易由某种可信的加密方法生成(private/public key),一旦交易发生了,它就会被在整个人群中(网络)广而告之,所有人都知道谁和谁发生了交易。 接下来,人们做了一个约定,所有人用目前已知且等待被记录的交易,加上某个工具(nonce)来接一个很难谜题(Hash)。这个难题是基于目前已有账本中上一页的所有信息(包括交易信息),糅合在一起产生的题目。

当有解出来之后,他马上把答案告诉所有人,其他人都来验证他做的对不对,验证所用的时间跟解题相比忽略不计。如果对了,那么则由他发布一个新的账本页,记录上之前的交易,其他人同步此页。如果不对,继续解题。 根据上面的方法,每当交易需要被记录但账本不够用的时候,人们就在一起解一个难题,贡献新的账本页。

那么使用这种办法,账本会越来越厚,可以记录的交易越来越多,并且后面一页跟前面一页密切相关。如果有坏人改动了其中某页的信息,并且告诉其他人我的账本是正确的,由于改动页的之后的内容都是基于改动页生成的,大家一查就会发现,根据你的账本,后面的账全不对了,牵一发而动全身,没人会信你。

以上的过程不断循环,就成为了一个chain,一个blocks的chain,简称Blockchian.

结束之前,还有几个Tips:

  1. 为什么需要这种解难题的模式呢?答:防止大家同时解出难题,保证每次只出现一个账本页(block),避免混乱。
  2. 整套机制建立在每个人保证自己的利益,不相信其他任何权威的前提下。(trustless environment)
  3. 为什么说比特币建立在blockchain基础上?那些解答出谜题的人,会被授予奖励,即比特币,用来表彰他为大家记账记得又快又好。

Reference: [1] K. Christidis and M. Devetsikiotis, “Blockchains and Smart Contracts for the Internet of Things,” in IEEE Access, vol. 4, pp. 2292-2303, 2016.

Search

    Table of Contents