区块链背景知识

下面的内容主要是学习了以太坊爱好者中的区块链背景知识部分。里面的文章干货满满。

拜占庭将军问题

在存在消息丢失的不可靠信道上试图通过消息传递的方式达到一致性是不可能的,所以拜占庭将军问题也是一个共识问题,用来为描述分布式系统一致性问题。

如何达成共识?

解决分布式系统一致性问题主要是Lamport提出的Paxos算法或其衍生算法。Paxos类算法仅适用于中心化的分布式系统,这样的系统的没有不诚实的节点。

在区块链中解决共识问题通过”工作量证明“机制,通过工作量证明就增加了发送信息的成本,降低节点发送消息速率,这样就以保证在一个时间只有一个节点(或是很少)在进行广播,同时在广播时会附上自己的签名。

学习区块链,首先了解区块链是如何解决拜占庭将军问题的,很有引导作用。

加密经济学

密码学和经济学的结合,区块链运用密码学主要体现在如下四个方面:

  • 哈希
  • 签名
  • 工作量证明
  • 零知识证明

区块链运用经济学主要体现在如下:

  • 激励机制
  • 博弈论的运用
密码学运用
  1. 哈希

哈希也就是散列,他有如下几个特点

  • [x] 确定性:无论在同一个哈希函数中解析多少次,输入同一个A总是能得到相同的输出h(A)。
  • [x] 高效运算:计算哈希值的过程是高效的。
  • [x] 抗原像攻击(隐匿性):对一个给定的输出结果h(A),想要逆推出输入A,在计算上是不可行的。
  • [x] 抗碰撞性(抗弱碰撞性):对任何给定的A和B,找到满足B≠A且h(A)=h(B)的B,在计算上是不可行的。
  • [x] 细微变化影响:任何输入端的细微变化都会对哈希函数的输出结果产生剧烈影响。
  • [x] 谜题友好性:对任意给定的Hash码Y和输入值x而言,找到一个满足h(k|x)=Y的k值在计算上是不可行的。

运用:

区块链的基本数据结构是链表,在链表中每个新区块都包含一个哈希指针。指针指向前一区块及其含有的所有数据的哈希值。。借此特性,区块链拥有了不可更改性(immutability)的伟大特质。

  1. 签名

签名运用了非对称加密技术,采用私钥和公钥对信息进行加解密。

  1. 工作量证明

它是达成共识的一种手段。通过不断的计算一个值,并在找出满足条件的这个nonce值后,具有‘权威’,然后进行信息共享,最后达成共识。然而这个nonce值是一个随机数的hash值,由于hash的特点,寻找这个原本的随机数只能穷举,耗时耗力。设定nance值的条件越多,也就缩小了这个值的数量,寻找起来越困难。其中的计算寻找工作也就是挖矿的工作。

  1. 零知识证明
    我所理解的零知识证明的运用也就是默克尔证明,如下:

全节点说:我知道所以交易的信息

轻节点说:你知道某某某笔交易存在吗

全节点说:这笔交易存在,它的hash路径是......

轻节点说:我根据你返回的路径计算了这个根节点的hsah值,和我本地一样,那应该没错了。

也就是说验证者知道某个信息的true和false而不需要知道信息的具体的细节,并且通过一个简单的校验证明证明者没有说谎,true和false可靠。

经济学运用
  1. 激励机制

区块链用到了以下两种激励组合:

第一种激励组合:

  • 代币:加密货币作为奖励分配给那些活跃度高且为区块链做出贡献的参与者。
  • 特权:参与者可以获得决策权,这将给予他们收取租金的权利。例如,挖出新区块的矿工们可以成为新区块的临时决策者,将短暂地成为新区块的独裁者,并有权决定将哪些交易添加至该区块。他们可以对收录在区块内的所有交易收取手续费。

第二种激励组合:

  • 奖励:好的参与者可以获得货币奖励,或因尽职而得到决策权。
  • 惩罚:坏的参与者必须支付货币罚款,或因作恶而丧失权利。

加密货币和普通货币拥有价值的原因大体上是一样的,即基于信任。当人们信任某一种商品并赋予其价值,它就成为一种通货。这就是起初法币和黄金有价值的原因。因此,当某个给定的商品拥有一个给定的价值时,价值就会随着供求关系而发生改变。供求关系是经济学中最古老的规则。

  1. 博弈论

区块链中运用了博弈论,博弈论本质上是对战略决策的研究。其核心是做对自己最有利的决策,并记住对手的决策。博弈论中一个最基本的概念是:“纳什均衡”。

纳什均衡是一种状态。在此状态下,每个参与者的策略是对其他参与者策略的最优反应。没有一个参与者可以通过独自变换策略来增加收益。

区块链在一个自我强加性的纳什均衡里,所以不夸张的说,区块链是真实存在的,而矿工们也可以维持诚信。

通过密码学和经济学可以理解区块链为何可信,比特币这些虚拟货币为何有价值,其中博弈论运用于区块链上我觉得很有意思,就感觉一个没有思想的东西变得有思想了。

Merkle Patrica Tree

是一种经过改良的,融合了默克尔树和前缀树两种树结构有点的数据结构,在以太坊中用来组织管理账户数据,生成交易集合哈希的重要数据结构。

作用:

  1. 存储任意长度的key-value键值对数据;
  2. 提供了一种快速计算所维护数据集哈希标识的机制
  3. 提供了快速状态回滚的机制
  4. 提供了一种称为默克尔证明的证明方法,进行轻节点的扩展,实现简单支付验证。
前缀树

优点:查询拥有共同前缀的key的数据十分高效

缺点:

  1. IO开销(磁盘操作)比较大
  2. key值比较长,且没有相同前缀的分支时,存储该节点需要创建许多节点路径来存储该数据,造成空间浪费。
默克尔树

在比特币网络中,merkle树被用来归纳一个区块中的所有交易,同时生成整个交易集合的数字指纹。

特点:

  1. 它具有树结构的所有特点
  2. 默克尔树叶子节点的value是数据项的内容
  3. 非叶子节点的value根据其孩子节点的信息,然后按照hash算法计算而得来。

优点:

  1. 快速重哈希
  2. 轻节点扩展。

缺点:

  1. 存储空间开销大。
两种树的合并

尽管前缀树可以起到维护key-value数据的目的,但是其具有十分明显的局限性。无论是查询操作,还是对数据的增删改,不仅效率低下,且存储空间浪费严重。故,在以太坊中,为MPT树新增了几种不同类型的树节点,以尽量压缩整体的树高、降低操作的复杂度。

MPT树中,树节点可以分为以下四类:

  1. 空节点
  2. 分支节点
  3. 叶子节点
  4. 扩展节点

叶子节点和扩展节点数据结构相似,可以根据数据项的末尾是否具有ASCII值为16的字符作为终止标志符来区分。


image

为了避免树的高度过长,MPT采取了对key值进行hash,使得每个hash值为16位,稳定了树的高度。

什么是默克尔证明

默克尔证明指一个轻节点向一个全节点发起一次证明请求,询问全节点完整的默克尔树中,是否存在一个指定的节点;全节点向轻节点返回一个默克尔证明路径,由轻节点进行计算,验证存在性。

区块链的底层数据存储结构,原文逻辑清晰,拜读一定会有所收获。

一次学习,一次进步

彼小星

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

推荐阅读更多精彩内容

  • 1 货币的演变——从贝壳到比特币 当社会分工产生之后,人类就产生了商品交换的需求。在货币被发明之前,人类是以以物换...
    longlee阅读 7,630评论 1 23
  • (感触赋) 文/菊 万古不迭寒日雪, 千年难遇雪漫天; 麦科着被寒酥去, 松树琼芳挂白棉。 素裹银装寰楚地, 粉妆...
    斌之志阅读 522评论 11 10
  • 简书一个月快结束了,暑假已快一个月了,今天总结下看自己的暑假计划没完成,真是应该好好反省。 从当学生...
    宜然阅读 225评论 0 0
  • 1,所谓坚持就是:不断的发狠放弃,然后又不得不咬牙拿起。 2,以为打开窗,就有了月光。却忘了今夜下雨。 3,谁没年...
    梅心梅飞阅读 105评论 9 11