资料源:http://blog.jobbole.com/53433/

定位:科普

第一部分:货币发展历史

几个阶段:(货币发行,交易记录)

1)以物易物的阶段(比如拿一袋面粉换一只羊。但是不方便交易)

2)实物货币(如贝壳)【便于分割且稀有,作为一般等价物】(但是量太少,开采难度大,且易损耗)

3)符号货币(纸币)(但是纸币不能谁都能写,得找个所有人都信任的人)

4)中央系统虚拟货币(把你手中的纸币都给到支付宝,你交易的时候直接让支付宝给你记个账就可以了)

5)分布式虚拟货币(一看钱全在自己手里、账也全在自己手里,别人都不知道,那我就把大户的人的零头抹一些,给自己,哈哈哈)(账本在一个人手里这事有很大弊端)

第二部分:分布式货币践行的原理

但是分布式虚拟货币如何落地呢?

中本村给了解决方案

基础设施搭建

1.1)账簿公开机制

1.2)身份与签名机制(公匙加密系统)

1.3)成立虚拟矿工组织(挖矿群体)

1.4)建立初始账簿(创世块)

2.1)支付与交易

2.2)矿工的工作

2.3)工作机制分析

1.1)账簿公开机制

首先对账簿进行如下改造:

1.账簿不再记载每户的余额,而只记载每一笔交易(包含付款人、收款人、金额)。只要账簿的初始状态确定,每一笔交易记录可靠并有时序,当前每个人持有多少钱都是可以推算出来

2.账簿私有改为公开,只要任何村名需要,都可以获得当前完整的账簿(记录了从账簿创建到当前的所有的记录)

但是透明这事不太好吧,如何解决呢?

1.2)身份与签名机制(公匙加密系统)

任何人都不需要使用真实的身份交易,而是使用一个唯一的代号交易。

而在这个代号后面必须使用密码(保密印章)

然后再反过来理解,“印章扫描器”可以扫描“保密印章”盖得章,读出隐含的信息,以代号的形式展示

(私匙,公匙,地址——保密印章,印章扫描器,代号)

1.3)成立虚拟矿工组织(挖矿群体)

招募矿工,要求如下

1.矿工以组为单位,可以是一户,也可以多户(矿工池)

2.每天的任务就是挖矿(负责计算,打包区块)

3.可以获得报酬(奖励+别人的交易费)

4.可随时进出。

5.不影响自己使用这种模式交易

1.4)建立初始账簿(创世块)

新拿出来一个账簿,第一页记录了一些记录,这些记录的付款人一栏全都是系统,而收款人分别是各个代号

2.1)支付与交易

那么做这样的一个体系下,如何完成一次交易

体系:公开账簿(区块链),密匙及地址,矿工记录,(初始账簿)

交易流程:(付款人签署交易单——>收款人确认单据签署人——>收款人确认付款人余额)

1.付款人签署交易单

问到对方的标志符,写张单子“A给B比特币1个”,用自己的密匙标记(还要记录下这些钱来自哪里,比如可能是系统的,可能是上次交易谁支付给A的,一个不够就多找一些,另外找到的那次交易如果比这次要支付的多了,还需要让B给退回来-退回来的方式就不追溯了)

2.收款人确认单据签署人

收款方通过付款人的标记,来判断交易里的付款人是否是是他本人签署的这条交易

3.收款人确认付款人余额

去矿工那或一些区块(SPV简单识别)、甚至区块链那找记录,余额是否足够支付

2.2)矿工的工作

矿工的工作是整个系统的核心,也是复杂性最高的地方,下面逐个介绍矿工的工作内容和目的

(矿工的工作:矿工的工具——收集交易单——填写账簿——确认账簿——账簿确认反馈)

1.矿工的工具

初始账簿。每个组首先自己复制一份初始账簿,初始账簿只有一页,记录了系统的第一次赠送空账簿纸。

每个小组有若干账簿纸,每一页纸上仅有账簿结构,没有填内容。下面是一张空账簿纸的样子

编码生成器(哈希函数)。有如下功能:

生成的编号仅与账簿纸上填入的内容有关,与填写人、字体、填写时间等因素均无关

内容相同的账簿纸生成的编号总是相同,但是如果内容哪怕只改一个字符,编号就会面目全非

编码生成器在打印编码时还需要将所有填入账簿纸的交易单放入,机器会扫描交易单和填入交易单的一致性,尤其是保密印章,如果发现保密印章和付款人不一致,会拒绝打印编码

将一张已打印的账簿纸放入,机器会判定编号是否是有效的机器打印,并且判定编号和内容是否一致,这个编号无法伪造

交易单收件箱。每个矿工小组需要在门口挂一个箱子用于收集交易单。 公告板。每个矿工小组同样需要一个公告板公示一些信息。

2.收集交易单

中本聪规定,每笔交易的发起人,不但要将交易单给到收款人,还要同时复制若干份一模一样的交易单投递到每个矿工小组的收件箱里。

矿工小组的人定期到自己的收件箱里把收集到的交易单一并取出来。

3.填写账簿

此时小组的人拿出一张空的账簿纸,把这些交易填写到“交易清单”一栏,同时找到当前账簿最后一页,将最后一页的编号抄写到“上一张账单编号一栏”。 注意还有个“幸运数字”,可以随便填上一个数字,如12345。然后,将这样账簿纸放入编号生成器,打印好编号,一张账簿就算完成了。

如果你以为矿工的工作就这么简单,那就大错特错了,中本聪有个变态的规定:只有编号的前10个数均为0,这页账簿纸才算有效。

根据之前对编号生成器的描述,要修改编号,只能修改账簿纸的内容,而“交易清单”和“上一张账簿纸编号”是不能随便改的,那么只能改幸运数字了。于 是为了生成有效的账簿纸,小组里的矿工就不断抄写账簿纸,但每张纸的幸运数字都不同,然后不断的重复将纸放入编码器,如果生成的编号不符合规定,这张纸就 算废了,重复这个过程直到生成一串有效的编号。

我们知道,如果编号的每一个数字都是随机的,那么平均写1000多张幸运数字不同的纸才能获得一个有效的编号。

这就奇怪了,这些矿工为什么要拼命干这看似无意义的事情呢?还记得之前说过矿工有报酬吧,这就是矿工的动力了。中本聪规定:每一张账簿纸的交易清单 第一条交易为“系统给这个小组支付50个比特币”。也就是说,如果你生成了一张有意义的账簿纸,并且被所有挖矿小组接受了,那么就意味着这条交易也被接受 了,你的挖矿小组获得了50个比特币。

这就是矿工被叫做矿工的原因,也是为什么之前说随着交易和矿工的活动,比特币的数量会不断增多。例如下面是一个挖矿过程,这个小组的公共比特币帐号为“UVWXYZ”。

在幸运数字尝试到“533”时,系统生成了一页有效账簿。

4.确认账簿

当某挖矿小组幸运的生成了一张有意义的账簿,为了得到奖励,必须立刻请其它小组确认自己的工作。前面说过,当前村里有7个挖矿组,所以这个小组必须将有效账簿纸誊抄6份快马加鞭送到其他6个小组请求确认。

中本聪规定,当某个小组接到其他小组送来的账簿纸时,必须立即停下手里的挖矿工作进行账簿确认。

需要确认的信息有三个:

账簿的编号有效

账簿的前一页账簿有效

交易清单有效

首先看第一个,这个确认比较简单。只要将送来的账簿纸放入编码生成器进行验证,如果验证通过,则编号有效。

第二部分需要将账簿页上的“上一页账簿纸编号”和这个小组目前保存的有效账簿最后一页编号比对,如果相同则确认,如果不同,需要顺着已有账簿向前比对,直到找到这个编号的页。如果没有找到指定的“上一页账簿纸编号”对应的页,这个小组会将此页丢掉。不予确认。

注意,由上面的机制可以保证,如果各个小组手里的账簿纸是相同的,那么他们都能按同样的顺序装订成相同的账簿。因为后面一张纸的编号总是依赖前面的 纸的编号,编码生成器的机制保证了所有合法账簿纸的相对先后顺序在每个小组那里都是相同的(可能会有分支,但不会出现环,后面细讲)。

最后是如何确认交易清单有效,其实也就是要确认当前每笔交易的付款人有足够的余额支付这笔钱。由于交易信息里包含这笔钱是如何来的,还包含了记录来 源交易的账单编号。例如,HIJKLMN要给ABCDEFG10个比特币,并注明了这10个比特币来自之前OPQRST支付给HIJKLMN的一笔交易, 确认时首先要确认之前这笔交易是否存在,同时还要检查HIJKLMN在这之前没有将这10个比特币支付给别人。这一切确认后,这笔交易有效性就被确认了。

其中第一笔是系统奖励给生成这页账簿的小组的50个,这笔交易大家都默认承认,后面的只要按照上述方法追溯,就可以确认HIJKLMN是否当前真有10个比特币支付给ABCDEFG。

如果完成了所有了上述验证并全部通过,这个小组就认可了上述账簿纸有效,然后将这张账簿纸并入小组的主账簿,舍弃目前正在进行的工作,后面的挖矿工作会基于这本更新后的主账本进行。

5.账簿确认反馈

对于挖矿小组来说,当账簿纸送出去后,如果后面有收到其他小组送来的账簿纸,其“上一页账簿纸编号”为自己之前送出去的账簿纸,那么就表示他们的工作成功被其他小组认可了,因为已经有小组基于他们的账簿纸继续工作了。此时,可以粗略的说可以认为已经得到了50个比特币。

另外,任何一个小组当新生成有效账簿纸或确认了别的小组的账簿纸时,就将最新被这个小组承认的交易写到公告牌上,那么收款人只要发现相关交易被各个小组认可了,基本就可以认为这笔钱已经到了自己的账上,后面他就可以在付款时将钱的来源指向这笔交易了。

2.3)工作机制分析

以上就是整个比特币的支付体系。下面我们来分析一下,这个体系为什么可以工作下去,以及这个体系可能面临的风险。

机制涉及的一些细节问题

results matching ""

    No results matching ""