比特币原理简介

中本聪发明比特币,解决了什么问题?看比特币白皮书的第一句话

本文提出了一种完全通过点对点技术实现的电子现金系统,它使得在线支付能够直接由一方发起并支付给另外一方,中间不需要通过任何的金融机构。

比特币其实是一种通过点对点技术实现的电子现金,其发行不依赖任何的金融机构。它是怎么做到的?技术手段。

比特币中可挖掘的技术点很多,这里就介绍几个:

  1. 默克尔树,是一种哈希二叉树,用于快速归纳和校验大规模数据完整性。
  2. PoW(工作量证明),实现公平、去中心的网络
  3. 区块链结构,这是数据不可篡改的基础。
  4. UTXO 模型,非账户系统,只存交易输入输出记录,用脚本锁定交易输入输出。

前三个都是前人研究的结果,并不是中本聪的首创,但中本聪却能这几个理论结合在一起,最先创造出可靠的电子现金,这就是大师和专家的区别。

默克尔树(Merkel Tree)

在比特币网络中,默克尔树用于生成一个区块中所有交易的数字指纹,且提供了一种校验区块是否存在某交易的高效方法。

“默克尔哈希树”是一棵树状的数据结构(二叉或多叉),该树状结构的所有节点都是Hash值。如下图

Merkle tree

默克尔树是自底而上进行构建的,叶子节点成对分组后将两个hash值组合后生成新的hash值,形成上层的树节点,重复整个过程直到只有一个树节点为止,也就是所说的根节点。根节点的 hash 值是整个交易集的唯一标识,保存在 block 头信息中,用于 PoW 过程。

默克尔树在简易支付验证(SPV)SPV节点广泛使用,与全节点相比,SPV节点数据量小很多。SPV节点不保存所有交易也不会下载整个区块,仅仅保持区块头。它们使用默克尔路径来验证交易是否存在于区块中,而不必下载区块中所有交易。

工作量证明(PoW)

工作量证明指通过有效计算得到的一小块数据。这个网站anders.com/blockchain/block.html,可以展示 PoW 算法的过程。

image

如上图,在Data框中随意输入一些数据,点击Mine,网站就开始做 hash 运算,直到结果满足一定的条件,比如这里是前四位为0,这个过程被称为挖矿。挖矿就是重复计算区块头的哈希值,不断修改 nonce 参数,直到与哈希值匹配的一个过程。在比特币的网络中,这个计算的 hash 结果会根据当前网络的算力动态调整,以保证每10分钟出一个区块。

区块链结构

区块链的基本结构:


image

区块分为区块头和区块数据,区块头包含当前区块的hash,上一个区块的 hash。

在这个网站 anders.com/blockchain,可以很直观地展示区块间相互连接的过程。

image

如上图,初始块(第一个块)的Prev 是 0,其后每个区块的Prev都是前一个区块的 Hash 值。

这个 Hash 是通过当前区块中交易数据算出来的。一旦改变区块中的任何一笔交易,则该区块的 hash 就会改变,其后的每个区块都要重新计算 hash,才能使得这条区块链的数据有效。

image

上图,改变第一个区块的内容,随便输入几个字符,比如“today”,该区块的hash就改变了,背景色变为粉色,表示当前链的数据无效。点击 Mine 按钮重新计算 hash。第一个区块背景色变绿,但其后的区块依然是粉色,因为第二个的 prev hash 不指向第一个的,要重新计算。

image

点击第二个区块的 Mine,第二个区块 ok了。

image

然后继续第三个,以此类推,也就是改变区块链中某个区块的任意数据,其后的区块都要重新做工作量证明,而这非常耗 CPU。因比特币的共识算法,是认网络中最长的链,所以只有算力达到全网的 51%,才有100%的把握最终成为网络中最长的链。

需要注意的是,51%攻击能达到修改的数据只能是自己地址的交易,无法修改他人地址的交易,即双重支付。比特币每一笔交易都由输出地址的私钥锁定,只有拥有私钥才能花费这笔交易。这就是下面我们要介绍的 UTXO 模型。

UTXO 模型

比特币交易的基本单位是未经使用的一个交易输出,简称 UTXO。UTXO是不能再分割、被所有者锁住或记录于区块链中的并被整个网络识别成货币单位的一定量的比特币货币。

当一个用户接受比特币时,金额被当做 UTXO 记录到区块链中。这有点类似于复制账本,如下图:

image

一笔交易会包含一到多个输入和一到多个输出。更详细的介绍看这里,把这本书中的代码敲一下,就理解了 UTXO 模型。

脚本支付,多重签名,每个交易输出都有一个锁,这个锁只有输出者的私钥才能打开。V神由此得到启发:在区块链上运行智能合约,然后有了以太坊。

参考:
Dummies for Blockchain 中译版
《精通比特币(第二版)》
区块链的发展历史

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

推荐阅读更多精彩内容

  • 一、快速术语检索 比特币地址:(例如:1DSrfJdB2AnWaFNgSbv3MZC2m74996JafV)由一串...
    不如假如阅读 15,770评论 4 88
  • 1 货币的演变——从贝壳到比特币 当社会分工产生之后,人类就产生了商品交换的需求。在货币被发明之前,人类是以以物换...
    longlee阅读 7,535评论 1 23
  • 比特币是第一个成功的区块链项目, 研究他对我们了解区块链技术的现状和发展很有帮助. 通过了解比特币的工作原理来了解...
    但莫阅读 1,079评论 0 0
  • 以下为金马老师《精通比特币》解读的文稿整理。 第一章 介绍 1.1 什么是比特币 (1)比特币是一个区块链实现 (...
    梦之郎阅读 13,064评论 6 61
  • 2018.5.9复盘Days149章孝萍 当一个人心怀感恩的时候,才会遇见更多的惊喜,并且一切的美好自然呈...
    章孝萍阅读 224评论 0 0