您的位置:网站首页 > 数字资产资讯 > 正 文 比特币

10分钟掌握比特币运行机理

【作者:姚勇】 来源:转载 日期:2013-6-17 13:09:30 人气: 标签:比特币 【打印】


三,P2P中建立全世界统一交易记录的解决 方案

1,统一交易记录的意义

有一套全世界唯一的交易记录,在一笔钱被支付时,就能够查出之前这笔钱有没有进行过 支付。类似刷卡交易,卡上的钱一定是之前没有支付出去的 。现实中,这是银行的统一交易单系 统保证的。钱被按照次序依次支付。比特币的支付都是靠电子交易单,如果没有统一的交易记录 和交易次序,交易单很容易复制后同时发送(修改支付对象)出去。等于同一笔钱支付了 2 次。 这个非法行为在网速不同的 P2P 网络上很难判别。

2,统一交易记录的 次序------时间戳机制(TimeStamps )

统一交易记录的核心数据,除了每笔交易内容,还有每笔交易的前后次序。只要有了全世 界所有交易的前后次序。尤其是对于一笔钱支付的先后顺序。就能够防止一笔钱被支付两次 。因 为一笔钱被支付过后,不可能再重复地从同样的支付人账户中支付出去。

我们知道比特币世界有一套全局统一并且唯一的账簿本集合 。每本账簿记录 10 分钟的交易。 按照时间顺序,账簿依次排列。我们肯定不能用一段字符串标记时间,来判断账簿的前后关系 。 这种明文在没有中央节点服务器的体系下是行不通的。因为用户机器上的时间不可能都严格一 致。

我们要做的只是把账簿数据产生的前后顺序用某种算法固定和记录下来,并且可以验证。 决定账簿前后关系的机制,采用了 时间戳机制( TimeStamps )。 这里时间戳的意思是对数据产生的先后次序进行标记。这个标记很难人为修改。很容易被

反复验证。在时间戳机制中,这个标记使用一个账簿数据的 hash。
 如果我们使得 每个账簿的 内容, 和前一个账簿内容相关,并且可以验证这一点。那么就可

以说明账簿的前后关系。因为如果没有前一个账簿的内容去生成后面的账簿 ,后一个账簿内容一 定是非法的。

举例说明:
 1,把账簿 A 的全部内容当成数据,计算一个散列数值 a。
 2,把这个散列数值 a 放入下一个账簿 B 里。
 3,验证账簿 A 一定产生于账簿 B 前一个:找到账簿 B 里的散列数值,姑且叫 x。 计算账簿

A内容的散列a 。 假如x = a ,那么结论成立。
 4,继续使用账簿 B 的全部内容生成一个散列数值,放入 C,依次类推,形成账簿链条。 如图:

形成这样的链条不用依据用户机器上的时间。只根据数据产生实际的先后关系。这样的链 条一但形成,没有任何人能够修改账簿的前后关系。因为牵一发而动全身。要颠倒 2 个账簿的次 序,就要重新计算改动账簿之后的所有账簿内容。再次提示,这是 P2P 网络,所有用户都备份同 一份账簿链,修改所有用户机器上的备份数据是不可能的。哪怕修改 51%用户机器上的数据都不 可能。 而验证数据产生的次序,概念上是要靠全网用户表决的。

3,统一交易记录的产生 1)综述

银行系统使用了大量人力物力,联合暴力国家机器,来保障中央服务器的安全,也就是产 生和维护一份全球唯一的,反应交易事实 和次序的交易单。

中央服务器带来的好处显而易见。互联网应用通常都基于 SERVER/CLIENT 模式。网站服务 器,网络银行服务器,游戏服务器,域名服务器等。但弊病是一旦服务器被攻击 ,占领,那么整 个服务体系全部沦陷崩溃。

P2P 网络没有中央节点。每个 PC 用户都是平等的。一套全世界统一的账簿,无法从一个中 央服务器中产生。这是 P2P 网络最大的特点。

作为 P2P 体系,没有中央节点是其最明显优势。但维护一套全局唯一且值得信任,不会被 攻击的数据,则没有简单易行的办法。而 P2P节点都是平等的。全局统一交易记录只能由全部 P2P 的节点协作来产生。

假如这套交易记录能够被 P2P 上的邪恶节点进行伪造,改写。那就会导致比特币经济崩溃。 所以必须靠算法解决。不让任何人轻易修改记录。

2)解决办法 ------ 全网节点协作产生

产生全局统一交易记录的解决的办法是:全体用户一起协作产生。 准确的说,是全网挖矿节点一起协作产生。
 注意,“挖矿节点”,以后被简称为 “节点”。 为了全体一起产生统一的交易记录和交易次序。需要每一笔交易都在全网广播。这样一来,

一笔交易就可以由全体用户都来验证是否通过。这等于是全体用户做了银行。 比如今天我在全网喊“我给张三 100 元”,全世界人都知道了。大家一起协作,把这个交易

记录到一个全局统一的交易记录账簿中。

到了明天我要抵赖不给张三钱, 是不行的。同样,假如我给张三钱的时候如果同时喊 “我 这笔钱同时再给李四”,或者过了一天我又喊“我昨天的那笔钱 100 元再给张三一次”, 也是不 行的。

原因是:我手里没有实际的钱币,钱都是写在交易单上,交易单由大家维护,全世界唯一, 备份保存在所有用户机器上,扣钱的时候,张三会问全世界人是不是有这么一 笔交易存在。这个 时候,我要抵赖,只有通过强行修改这个世界上所有 P2P 节点上的交易单。显然这不可能。

也就是说,一个中央银行,变为了所有用户都维护一套中央银行数据。大家一起维护这个 数据。随时更新。一起决定某个交易是不是合法。

要集体维护一个统一的交易记录不是一件容易的事情。这可以解释为什么这个世界要每 10 分钟创建一个账簿。为何账簿创建(挖矿)如此困难。为何 10 分钟内的交易单要打包到一个账 簿。为何全局唯一的账簿要用一个链子串起来。

这些全都是因为要解决比特世界中交易的时序问题。以及防止这个机制被作弊者破坏。因 为比特币交易是基于算法安全,而不是基于信任,法律,集权,强迫,惩罚等手段。

3)P2P 诚实用户节点创建账簿(交易记录)

由于交易单是全网络广播。每个用户都可以得到所有交易单。其实,只要一个诚实的用户, 根据接收到交易单的次序,创建的交易单记录,就可以给大家作为全局统一的账簿。账簿作为对 交易单的永久封存。

P2P 上不同的诚实节点,也许某一时刻收到的交易单的顺序不一样。但这没有关系。如果 我有 100 块,先买 20 块的 PIZZA 还是先买 50 块的手表,都是花钱。只要我的钱足够,我的付 款交易就有效。如果我先花掉一些钱,账户变空,又收到一些钱,再花掉这些钱。这就对交易的 顺序记录有所要求。由于交易单都是可以回溯的,并且一笔钱相关的交易单也都串成一条链 。一 个诚实节点只用等待所有交易单发送到自己机器上 ,进行记录便可。交易单本身就知道交易顺序 (每个交易单都会记录这笔支付款的资金来源交易单索引 )。

所以,创建账簿的问题,其实归结为: 如何判定一个 制造账簿的用户是诚实的 。这就需要 全网诚实节点协作了。

确认一个节点是诚实的之后,就采纳这个节点创建的账簿。作为全世界统一的账簿作为交 易记录。每个比特币用户都复制一份这个账簿的数据到自己机器上。

4,诚实 P2P 挖矿节点判定 1)hashcash 的工作量证明

hashcash 机制大致描述如下(http://www.hashcash.org):

如果希望判定一个 人提供的 的信息是本着正常使用,具备一定价值的。那么我们倾向认为 提供这个信息的人,愿意为此付出一定工作量来证明他的诚实。假如有一种机制,能够容易的证 明提供信息的人为此付出了一定工作量,那么此信息是可以接受,并被认为合理的。

比如,我收邮件的时候,做了一个规定:“把邮件内容数据,加入一个随机数,求一个 sha256 散列数值。这个散列值一共 256bit 。前 20bit 必须都为 0”.

这样, 要给我发信的人,就必须反复尝试一个随机数,以保证邮件内容数据加上这个随机 数,能够产生 sha256 的结果------前 20bit 都是 0.

如何产生出指定要求的整数?完全靠运气和 CPU 运算时间。这就是一个工作量。工作本身 毫无意义。但是如果谁愿意付出这个工作量 ,就意味着他给我的邮件多半是有意义的 。这就叫“工 作量证明”。也就是意味着这个人很有可能是诚实的。

这个机制被广泛用于防止垃圾邮件等。因为群发垃圾邮件的人,不可能有那么多时间去给 每个人算一个毫无意义的数字,浪费时间,降低发垃圾邮件的效率。

2)比特币的工作量证明

 比特币系统最棒的做法产生于此:把工作量证明与建立全局统一交易记录结合起来

一个 P2P 用户节点如果要试图创建一个被全网认可的新账簿(挖矿节点),要花很大力气做 一些毫无意义的运算(挖矿)。运算结果可以被所有人容易的证明他确实做了这些工作。得到结 果的同时,他就创建了一个数据块,这个数据块里面可以放入一些经过这个用户节点检验的交易 单。这些交易单有 严格的顺序 。由于他创建这个数据块 花费了很大力气,所以多半他是诚实用 户,这个数据块也许值得信任 。里面的交易单的真实性也就值得信任 。于是这个数据块就有可能 作为账簿被全网接受。

这就是比特币最核心的工作机理:依靠“工作量证明”来创建存放交易单的账簿。 下面介绍比特币中如何进行“工作量证明”:

为了证明我是一个诚实的用户,我需要做一个数字游戏。 目的是猜出一个随机数。 游戏的规则是:
1,得到这个世界中已经创建好的账簿链中最后一个账簿 ,用这个账簿内容做数据,计算一

个 hash 值 2,不断接收这个世界被广播出来,且没有被放入账簿链的交易单。检验这些交易单(根据

交易单链信息和支付款项等信息 ),剔除掉不合理的(比如账户余额不足的支付 )。 3,猜一个幸运随机数 n(比如从 0 一直到 999999.... )
4,把 1-3 步骤得到的数据都组织起来成为一个数据 buffer,送入 sha256,得到一个 256bit

的散列值 x
 5,检查 x 这个整数,前面若干 bit(比如 96bit)是否都是 0?如果是,这个 x 符合“工作

量证明难度”么? 如果符合,那么“工作量证明”游戏结束!
6,如果不是,从步骤 2 开始不断重复。假如这个时候收到了一个其他节点发来的新的账簿

数据块。 还没有猜出满足要求的随机数,需要重新开始游戏。

“工作量证明难度”:有一个本地难度标准。这个标准是一个浮点数,可以换算为一个 256bit 的整数。算出的 sha256 散列值 x 必须小于这个难度数字。

 这种重复性的计算往往要重复上亿次,才会得到一个幸运随机数。

游戏如果及时结束,我们就得到了一个幸运随机数 n , 以及一组未放入世界统一账簿集里 的交易单! 这个随机数 n 代表了我为了证明我的诚实做出的努力。

到此为止,一个“工作量证明”结束。 我证明了我是个诚实的用户。

不过,一个 用户最终被判定为诚实用户 并且能够创建出账簿 ,还要靠另外一个 P2P 竞争机 制。我们在下面“账簿的创建”中讲解。

5,账簿的创建,以及重复支付检验 得到幸运数字并不等于能够成功创建账簿。最终判定需要得到全网节点的认可。

1)全网账簿创建速度控制 ------10分钟一个

前面说过,得到幸运随机数后,计算的 sha256 值要经过难度检测。看计算出的散列值是否 小于某个“工作量证明难度值”。

比特币依靠这个难度数字,来进行全网账簿创建的速度调整。每过一段时间,节点都会检 测新账簿的创建是否符合 10 分钟一个。 如果不符合,则调整这个难度数字,使得下一个账簿 创建的时间或延长或缩短,让这个世界的账簿创建速度始终保持 10 分钟一个。

 这个机制屏蔽了日益增快的硬件计算速度带来的影响。把摩尔定律闭之门外。

2)创建临时账簿,打包广播

当我得到了一个幸运随机数,意味着我只是获得了一个创建临时账簿的权利。我马上把以 下数据打包成一个账簿数据块:

1,sha256 算出的 x,作为这个数据块 ID!这个 ID 前面几十 bit 全部是 0. 2,做游戏时收集到的所有经过我检验的交易单,
3,幸运随机数 n,
4,世界账簿链中最后一个账簿的 hash 值

5,账簿需要的其他信息 如图:

账簿结构
 账簿 ID(0x0000000000001e34f2a234ea33f.....)

 初始比特币奖励交易单   创建这个账簿过程中收到的交易单数据   上一个账簿的散列数据   幸运随机数

上一个账簿 id

账簿数据块被我在全网广播。意思是:“大家看,我算出了一个幸运随机数,大家把我创建 的账簿加入到世界统一账簿链中 ”

3)检测重复支付

当由节点创建出来的临时账簿在全网广播后,每个收到账簿的节点都要判断这个数据块中 的交易单都是合法的。并且,根据已经创建的世界账簿链中交易单 ,逐一查找,以判断这个临时 账簿内所有的交易单,在世界中已经发生的所有交易中从来没有出现过 。这点很重要,判定是否

有重复支付,就在这个环节完成。   当所有节点检测一个临时账簿没有重复支出,交易单都合法后,节点会把收到的这个账簿,

临时挂接到本地备份的世界账簿链的最后。

4)账簿链分支判断,最终创建账簿

在一个节点进行工作量证明的同时,全网其他希望创建账簿的挖矿节点(要知道创建账簿 成功是会有钱的!),也在做同样的事情------不断接收网上广播的交易单,根据这些交易数据 ,计 算出幸运随机数。然后打包成临时账簿,广播出来。

全网到处广播着被新创建出来的临时账簿。有时候一个节点会先后收到连接在同一个链尾 部的多个新创建临时账簿。

这时候,一个节点在本地会把自己维护的本地账簿链建立分支。比如一个节点先后收到 2 个临时账簿块。它们两个同位于世界账簿链的最后一个账簿链表的后面。 于是在本地数据的账 簿链上,生成 2 个分支(两根链条)。之后此节点继续在先收到的账簿分支后面进行工作量证明 的工作------利用先收到的临时账簿,进行创建下一个账簿的工作。

每个节点收到新建临时账簿的时间不同,在本地建立的账簿链分支也会不同。 当节点收到最长的工作链账簿时,会抛弃掉比较短的分支。转为在最长的链条上工作。 注意,这里所谓 “最长的工作量 ”,是指计算难度最大的工作链。 计算难度由一个节点本

地的难度系数控制。这个难度系数随着随机数计算速度而改变 。每个账簿块里面会记录一个难度 系数。

举例如图:

绿色为世界第一块创建的账簿(创世纪账簿 )。 黑色方块为这个世界最长的账簿链。也是 最终被全网所有用户确认为世界统一账簿。并在本地备份。 灰色的方块代表某个节点临时工作 的本地账簿链分支 。当某个分支收到新账簿而延长后 ,另外一条短的分支会被抛弃 。里面的交易 单会被拿出来检查,如果存在没有放入现存账簿的交易单,会继续用作新工作量证明的素材。

 这条账簿链形成的步骤如下:

1,先后收到连接在同一个尾部的 2 个不同临时账簿,都以绿色上面的黑块作为前一个账簿。 打分支

2,右边账簿收到了后续账簿,抛弃左边分支

3,右边收到了连接在同一个尾部的 2 个不同临时账簿

4,先收到了链接在右支路的账簿块

5,又收到了 2 个链接在左边支路的账簿块,这时 2 个分支还是一样长,都无法抛弃

6,新支路上收到一块,彻底抛弃最右边的 2 个灰块

7,左路又收到一块

8,最终左路又收到一块,成为最长链,

9,假如左路继续收到账簿块链接,则右路彻底会被抛弃

临时账簿被不断创建,广播。当全网节点全部确认一个共同的难度总和最大的账簿链条, 并开始在这个链条之后开始工作量证明 ,这个账簿链中的账簿 ,就被最终确认为世界统一账簿链 。 里面记录的交易单,就作为世界统一交易,被永久封存。

创建账簿的过程,也就是检测交易单正确性和顺序的过程,也是保存交易单的过程。同时 它还是创建比特币的过程。创建账簿的机制是比特币的核心。

由于全网节点一起在不停的计算,创建新账簿。所以账簿链增长最长的分支,代表了全网 用户做出的最大工作量证明(每一个黑快代表一个用户得到了一个工作量证明随机数 )。凡是在这 个最长链中的账簿,就被全网所有用户认为是最诚实,最可信的。

换句话说,是全网络诚实的节点一起工作,进行工作量证明的工作。并且全网还要一起来 判别,哪个账簿工作在最长账簿链上,就代表了最诚实的账簿创建。

5)全网协作与竞争,每 10 分钟唯一的最诚实赢家

P2P 网络是个完全平等的网络。你可以挖矿创建账簿得到钱。我也可以。在同一时间,也 许全球网络中有无数个账簿被创建出来 。但是比特币世界 依靠前面账簿创建的难度机制 ,以及最 大工作量分支机制,限制了 每 10 分钟只有一个账簿会被确认。因为账簿是全局唯一,每 10 分 钟的交易单和交易单次序当然只能放入唯一的账簿中被大家承认 。这就保证了全网统一的交易记 录。

PC 电脑速度越来越快,计算那个幸运随机数的速度也越来越快。这个世界账簿的创建不能 受到越来越快电脑硬件的影响。于是引入工作量难度机制,电脑越快,难度系数会被调整得越高。 电脑计算出幸运随机数的速度就都慢下来了。

全网所有挖矿节点都在争相用 “工作量证明“创建数据块。每十分钟只有一名幸运的用户 从竞争中脱颖而出。这种竞争保证了全网不断增加的账簿链中,难度最大的分支代表工作量最大 累计的证明。一个用户一秒钟内做了更多的 sha256 运算,说明他越诚恳,越诚实。于是他产生 的账簿的难度系数可能越高 ,就越有可能添加到最长的账簿链分支上 。最长分支代表了最大工作 量证明,从而被全网节点认可。简单说,如果我算得快,在最长链上工作,增加这条链的难度总 和就大,就越有可能竞争过其他对手。把自己工作的链变成最长。但我尽管算得比别人快,但我 的账簿产生速度并不会很快。因为我计算难度大。所以还是很可能被其他节点抢先算出下一个账 簿块。从而加到最长链上。

由于大家创建账簿块的速度差不多,而我创建账簿的难度系数大,所以在竞争中我会比较

有优势。 这就是靠协作与竞争,判断出最诚实,最卖力气的一些节点。它们创建出的账簿被全网确

认账簿的几率就大。从而会得到更多的钱。 由于这些机制保证,所以伪造一个新账簿,从而为自己账号加钱,非常困难。因为你要作

弊,就需要算出一个合法的账簿 ID。这个 ID 要得到全网承认,必须在 10 分钟内所有竞争对手 中脱颖而出。想竞争过全网络的所有挖矿节点 ,你的计算能力必须要比他们加起来的计算量还要 大!

6,交易确认 过程

到此为止,介绍完全部比特币工作机理。下面描述 一个完整的交易确认过程,交易单的确 认,是靠账簿的不断创建和确认来进行。过程如下
1,新交易单广播到全 P2P 网络
2,挖矿节点收集所有的新有效交易单,放入一个新数据块 3,节点开始根据新数据块内容结合老数据块散列,计算一个符合要求的随机数,试图产生一个 新的账簿 -------比特币工作量证明 4,如果一个节点找到了幸运随机数,表明创建了一个账簿。马上广播到其他节点 5,其他节点开始验证这个新账簿的有效性,检测账簿内的交易单都是新的,之前没有重复支付 过。

6,如果其他节点验证此账簿有效 (账簿链上账簿创建难度之和最大 ),则承认它。这个账簿算 正式挂接到全局账簿链后。然后开始在此账簿后面继续创建新账簿

一个交易单,要想被最终确认。需要首先被放入一个新成功创建的账簿。然后,再经历几 个(一般是 5 个)新账簿的创建后,这个交易单才被最终确认安全通过。表明支付成功。 因为往往世界账簿链被增加 6 个之后,账簿链被修改和作弊的可能性已经几乎降为 0

。这个时候确认交易成功是绝对可靠的 。这么做背后的原理是,作弊者无法找到足以抗衡网络所 有诚实节点计算能力的计算机集群,去强力计算持续在世界账簿链上增加 6 个假账簿。

一旦一个交易单被所有节点确认通过,再想修改和取消,几乎是不可能的。这保证了比特 币体系的不可逆转性和不可更改性。

7,保证账簿合法性机制详解
1)P2P 所有网络用户监督交易,保存全局统一交易记录备份

其次,P2P 网络不接受非法交易。比如我伪造一个新交易单,挖矿所得 5000 元。 这种交 易单,在 P2P 的其他网络用户客户端上,无法通过鉴定。也就无法支付我伪造的 5000 元。

交易用投票进行,而全体用户的交易记录和客户端无法同时被篡改。保证数据安全性。

2)时间戳保证交易顺序,无法修改账簿链

 交易顺序的保障,制止了电子货币的重复支付。

利用时间戳机制, 创建新账簿要包含一个 ”上个账簿 数据散列值“,是为了把所有账簿创 建都联系起来。新的账簿创建总是依赖于老的账簿数据 。这个机制保证了这个世界的账簿是一环 扣一环创建的。每一环的数据都决定了下一个账簿 ID 的产生。所以,即确定了账簿产生的顺序。 也保证没有人能够孤立地改变其中一个账簿内交易单的数据而不被检查出来。

因为如果改变了账簿链中的一个账簿内交易单的数据。这个账簿的散列值就一定会变化。 账簿散列值变化,一定会引起这个账簿之后创建的所有账簿的 ID 号发生变化!要改变这个作弊 账簿之后所有账簿的 ID,我们都知道,不可能。因为全网用户机器上都有一个账簿链备份。

3)sha256 保证创建合法账簿极难 ,检验账簿合法性极其容 易

创建一个有效账簿异常困难,但检查一个账簿是否有效非常简单快速,把一个账簿的 当初 创建时用到的数据送入 sha256 函数重新计算一次,必然得到此账簿的 ID。所以每次交易,每个 用户都可以使用全世界统一的账簿链 ,通过里面的交易单 ,追溯钱的来龙去脉 ,彻底搞清历史交 易清单。从而保证自己的交易安全。

4)非对称加密保证无法伪造别人支付给作弊者的交易单 无论我怎么修改交易单,或者新添加一张伪造交易单,我都无法伪造其他人的签名。也就

无法从别人的账户偷来钱。

5)工作量证明机制,保证数量占优的诚实节点产生的统一 交易记录内容与次序真实

前面的机制,把伪造挖矿,伪造他人支付,伪造非法交易单,伪造交易次序,重复支付等 情况完全杜绝。

作弊的方式在比特比体系中,只有很少几种可能,比如改变刚刚发生的交易单,试图拿回 刚支付出去的钱。也就是抹掉类似向全世界喊的“我支付给张三 1000 元”这样的交易。

要这么作弊,就要试图创建假的账簿和交易单。附加在已有账簿链的最后。然后在假账簿 后面持续制造新的假账簿,以维持世界统一账簿链,不被诚实节点创建的账簿所冲掉(假账簿链 分支难度和变为短分支,被丢弃 )。这需要作弊的节点制造的账簿能够被全网判定为最长分支上 的账簿。这需要比全网计算能力还要强的运算能力 。或者掠夺诚实网络节点的一半以上成为作弊 节点。

 下面详细解释对交易单和账簿的作弊是如何被避免的。

做个假账簿也需要链接到世界账簿链最后,形成连续的假账簿链。比如我在第 240000 个账 簿之后要产生一个假账簿,链接到已存在账簿链最后。假账簿里面删除掉我向世界喊的“我支付

给张三 1000 元”这个交易单。由于一个交易确定,需要在交易发生之后,世界上产生 6 个被全 网认可的新账簿。所以我需要连续生成 6 个假账簿,里面不包含“我支付张三 1000”的交易单。

要这么做,我必须生成 6 一个难度系数很高的工作量证明随机数。然后把假账簿打包 广播 出去。其他诚实节点一定会产生含有“我支付张三 1000 元“交易单的账簿。我的 6 个假账簿必 须在全网挖矿节点竞争中连续胜出 。这需要我的账簿制作的难度系数比所有诚实节点产生账簿的 难度系数之和都高。

之所以要比其他诚实节点制作账簿难度之和要高,是因为,我 作弊生成假账簿的同时,全 网都在共同协力生成新账簿。一个账簿要被认可,需要从 10 分钟内全网竞争中产生。

考虑极端情况,可能有的节点,在收到我广播的假账簿之前,就已经把其他诚实节点的账 簿都串接到了账簿链上(由于网络延时,且诚实节点间没有竞争)。 这样,我的账簿制作难度必 须比这些诚实账簿制作难度之和要大 。这样才能在假账簿链分支的长度上领先诚实节点创建的分 支。由于之后不能让任何一个含有“我支付张三 1000 元”的账簿出现在世界统一账簿链中。所 以我需要再制作 5 个假账簿。继续保持我创建账簿的难度系数,比全网全部的诚实节点创建账 簿的难度之和要大。

这需要比全网络所有节点总和还要大的计算能力。而代价只是我收回了刚刚 10 分钟内支付 的几笔交易。这完全不现实,也不划算。

如果有了比全网节点计算力还强大的电脑,我应该持续做诚实节点挖矿,这个收益会比作 弊要强。从动机上也避免了这种作弊发生。

四,从“做局”角度分析比特币

 其实应该这么说,从“暴富”角度分析比特币更恰当。如果我想发财,懂软件,懂加密学, 懂金融。比特币应该是这个星球人类能够想出最聪明的发财办法之一。

也许全部的奥秘就在比特比挖矿的价值成指数递减。而挖矿速度其实不变。 待续。。

五,比特币技术在游戏方面的应用

Bitmessage 已经是使用比特币技术的应用。这个纯 P2P 的聊天软件,可以在完全没有聊天 服务器的情况下,支持点对点或多人的聊天。并且聊天记录无法修改和删除(。。。。这。。。)。

网络游戏,迄今为止,全部是 SERVER/CLIENT 模式。由运营商来开辟机房,大堆大堆的 服务器,运行着游戏服务器软件。玩家使用客户端,进行多人在线游戏。当一个玩家使用道具时, CLIENT 会向 SERVER 发送一个“我张三要用一个烟花道具!”。 于是 SERVER 开始去 DB 查询, 张三有烟花道具么?哦,有。那么告诉 CLIENT“张三可以放一个烟花 ”。 于是 CLIENT 在屏幕 上播放张三脑袋上冒几个粒子特效。同时 5 块钱从 SERVER 上张三的户头扣走。

这种模式如果换成比特币会怎么样。
 首先,没有 SERVER
其次,每个 CLIENT 软件都维护一套全世界所有玩家所有道具的数据库 最后,张三说我要放烟花,于是每个 CLIENT 看看数据库里有烟花给张三放么?大家投票说

YES,然后张三 CLIENT 播放一些特效。同时一笔张三支付给游戏开发者户头的交易生成。交易 按照比特币的流程进行。同时每个 CLIENT 还在拼命计算账簿链......

这个前景确实不大美妙.... 待续...

六,比特币相关论文

   

原始论文:
 中文版:《比特币:一种点对点的电子现金系统》 http://wenku.baidu.com/view/f26c8d916bec0975f465e236.html

英文版:《Bitcoin: A Peer-to-Peer Electronic Cash System》 http://wenku.baidu.com/view/2e3f91bb1a37f111f1855b50.html

网络上介绍比特币的文章。

https://en.bitcoin.it/wiki/Main_Page 很详细。 http://blog.codingnow.com/2011/05/bitcoin.html http://zhiqiang.org/blog/it/technical-document-of-bitcoin.html http://www.showmuch.com/a/20110530/233347.html http://ivarptr.blogspot.com/2011/05/bitcoin_31.html http://www.8btc.com


七,比特币源码

https://github.com/sdhjob/bitcoin


返回顶部】【关闭窗口 风险提示:本站分享转载的信息均来自互联网,且仅供阅读参考,不作为具体投资的依据,据此入市,风险自担。本站所有内容涉及到的“货币”字眼需谨慎研判,我们维护各国法币的合法地位,同时数字资产具有货币的某些属性,目前是不能替代任何国家的法定货币的,请谨慎理解投资并严格遵守各国法律法规!详见本站[免责声明]。】
【读完这篇文章后,可否发表您的感受?】
0
0
0
0
0
0
0
0
本文网址:
安全联盟站长平台 互联网举办平台 公共信息安全网监 中国网安 赛门铁克安全响应中心