读书笔记-《易懂的比特币工作机理详解》

1.比特币运行机理概述

账本(区块)

掌握核心概念是学习任何学科的关键。

区块,区块链,交易单,比特币,交易是比特币体系中的重要概念。

比特币区块链可以看做是全世界唯一的一个账本。

区块可看做是账本中的一页。

交易单就是一页当中一条交易记录。

只要账本收支记得清楚,不需要单独的货币也可以交易。就像现在的刷卡付款,或者支付宝,微信支付一样,不需要现金。

节点上的比特币系统会将10分钟里的交易先临时记录下来(存在内存中),然后再用这些交易创建一个区块

比特币的由来

比特币是货币,是账本上记录的钱,那初始的钱从哪来?商品货币时代,有多少黄金制造多少货币,信用货币时代,政府说开印钞机,那货币就有了。比特币世界中,初始的货币是“谁创建了账本(区块),就给谁钱”,一箭双雕,既能激励别人创建账本,又解决了比特币的发行问题。创建一个区块,奖励50个比特币,注意没有独立的钱,只有数字,“50”记录在交易单里。

旷工挖矿除了有新币奖励外,还有交易费,也称旷工费。

交易过程(Transaction)

假设张三转给李四10个币,张三用比特币交易软件给李四的地址转10个币,那么在区块中的交易单会是这样的:

张三资金的来源(比如王二给的)

王二对这笔资金的签名

李四的收款账号

金额10个币

张三的签名

每个用户在比特币世界中都用一串数字表示,可以查到任何一笔交易的来源与去向,但不知道对应现实中的谁

比特币世界里的钱根本上是创建区块奖励的钱。

每个人的钱的来源有3种:创建区块奖励的,旷工费,别人转给你的

2.安全机制

中心化机构发行的信用货币有诸多弊端,依靠银行等中介结构提供的金融服务也有诸多不便和高昂的成本,假如通货不再膨胀,假如可以像发送email一样直接交易,显示世界会变得更好一点。

去中心化交易的前提是安全,否则一切无从谈起。

想象一个场景,张三给李四转10元钱,要安全交易,需要达成下面的条件:钱确实是张三付的;张三有10元钱(类似生活中的钱是真的,不是假的);张三没有把这10元钱给了别人(生活中的纸币没有这个问题,因为给了一个人就不能给了另一个人,这是数字货币独有的问题)

SHA-256是一个散列函数,输入可以是任意长度的字符串,输出是固定的256位长度的字符串。2^256是一个非常大的数,比地球上所有的沙粒数还多。

256bit,32Byte,64个16进制数

数字签名

签名者有一个只有他自己知道密码的密钥(私钥),可以对任何信息进行签名,签名者向别人发布一个公开的密钥(公钥),用公钥可以解密用私钥加密的信息。如果加密的明文在解密之前是知道的,那么解密后的内容如果和明文一致,这能证明签名确实是私钥拥有者的,且私钥拥有者无法抵赖。

解决是否是某个人支付的问题

对交易单的签名和验证

签名:

A像B付款,构建交易单T;

交易单T上有B的“公钥”(这里加引号,表明实际并不是公钥,而是公钥的散列值),有A资金来源的交易单的数据;

用B的公钥和前一个交易单得出一个哈希值h

A用私钥对哈希值 h 进行签名,得到 s,签名信息保存在交易单上

验证:

B拿到交易单T后,从前一个交易单拿到A的公钥,对签名 s 解密,得到 x

B用自己的公钥和前一个交易数据进行哈希运算,得到哈希值 y

如果 x 等于 y ,就证明交易单确实是 A 签字的,且 A 无法抵赖,因为全世界只有 A 有能力进行这个签名,因为这个私钥别人是不会得到的。

解决是否有足够的钱支付

因为资金来源索引到之前的交易单,对资金来源的交易单进行回溯,直到证明这些钱来源于挖矿奖励

解决重复支付

禁止重复支付,是比特币技术要解决的核心问题。它的核心,就是在 P2P 网络体系下, 创 建一套全世界统一且唯一的 有前后次序的 交易记录。

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

没有统一的交易记录的账本是没有意义的(账簿数据不一致),生活中这样的统一交易记录的账本由中央节点保证,那P2P网络中如何做到呢?

统一交易记录的核心数据包括每笔交易内容,和每笔交易的前后次序。

交易顺序确定,就可以解决双花问题(双重支付),已经已经支付出去的钱,不可能再支付出去一次。

决定账簿前后关系的机制,采用了 时间戳机制( TimeStamps),用某种算法把区块的顺序固定下来,且记录,并且可以验证。

比特币采用的是将前一个区块的hash值保存在后一个区块中。

比特币解决交易的时序问题,以及防止被作弊者破坏,其是基于算法安全,而不是基于信任,法律,集权,强迫,惩罚等手段。

对比特币的工作量证明算法的形象描述

1,得到这个世界中已经创建好的账簿链中最后一个账簿,用这个账簿内容做数据,计算一 个 hash 值

2,不断接收这个世界被广播出来,且没有被放入账簿链的交易单。检验这些交易单(根据 交易单链信息和支付款项等信息),剔除掉不合理的(比如账户余额不足的支付)。

3,猜一个幸运随机数 n(比如从 0 一直到 999999.... )

4,把 1-3 步骤得到的数据都组织起来成为一个数据 buffer,送入 sha256,得到一个 256bit 的散列值 x

5,检查 x 这个整数,前面若干 bit(比如 96bit)是否都是 0?如果是,这个 x 符合“工作 量证明难度”么? 如果符合,那么“工作量证明”游戏结束!

6,如果不是,从步骤 2 开始不断重复。假如这个时候收到了一个其他节点发来的新的账簿 数据块。 还没有猜出满足要求的随机数,需要重新开始游戏。

得到幸运随机数 n ,工作量证明结束, 工作量证明 的目的是为了证明节点的诚实,为了获取记账权,将区块放到最长链的末尾。

获得记账权并不能保证打包的区块会被加入到最长链,如果你打包的交易单有问题呢,如果同时其他节点也得到幸运随机数呢。

区块的创建的过程:

1.通过工作量证明获得记账权

2.打包区块,全网广播

3.重复支付检测。其他节点对收到的区块中的交易单进行重复支持检测,根据已经创建的世界账簿链中交易单,逐一查找,以判断这个临时 账簿内所有的交易单,在世界中已经发生的所有交易中从来没有出现过。如果检测交易单都合法后,节点会把收到的这个账簿 , 临时挂接到本地备份的世界账簿链的最后

4.区块链分支判断。全网到处广播着被新创建出来的临时账簿。一个节点在收到多个区块后,会在本地自己维护的账本上建立分支,之后此节点在先收到的账本后面继续工作量证明工作。当节点收到最长的工作链账簿时,会抛弃掉比较短的分支。转为在最长的链条上工作。

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

交易确认过程:

1.交易单全网广播

2.挖矿节点收集所有的新有效交易单,放到一个新区块

3.节点根据新区块数据和上一个区块的散列值,计算一个随机数(工作量证明)

4.工作量证明成功,打包区块,全网广播

5.其他节点验证新区块的有效性

6.验证成功,正式挂到区块链的末尾,在此区块继续创建新账本

交易单被打包到区块,挂到区块链的末尾后,其后再挂6个账本就能确认交易成功。因为要推翻6个区块,几乎不可能。这保证了比特币体系的不可逆,不可篡改。

读后感

这篇文章,用通俗易懂的的例子,讲解了比特币区块链的运行原理。看完后对比特币区块链的理解更深入了。

但对技术细节,这篇文章没有仔细交代,更多技术实现细节在《精通比特币》中有描述。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容