深入浅出以太坊微盘_如何快速入门区块链

  ① 人工智能入门书籍

  人工智能是计算机科学的一个分支,并不是一个单一学科,图像识别、自然语言处理、机器人、语言识别、专家系统等等,每一个研究都富有挑战。对人工智能感兴趣,但无法确定具体方向,如何了解人工智能现状和研究领域?

  笔者推荐4本科普书,对于大多数人来说,阅读难度不高,公式和理论少,内容有趣,能读得下去;信息较新鲜且全,要有一定阅读价值,能够有深入的思考当然更好。书单不长,只用做科普入门。

  1、《超级智能》

  2、《我们最后的发明:人工智能与人类时代的终结》

  3、《智能时代》

  4、《人工智能:国家人工智能战略行动抓手》

  ② 002:以太坊简介|《ETH原理与智能合约开发》笔记

  待字闺中开发了一门区块链方面的课程:《深入浅出ETH原理与智能合约开发》,马良老师讲授。此文集记录我的学习笔记。

  课程共8节课。其中,前四课讲ETH原理,后四课讲智能合约。

  第一课分为四部分:

  这篇文章是第一部分的学习笔记:以太坊简介。

  以太坊是目前公认的区块链2.0,相比于区块链1.0(比特币),其最大的特点是引入了智能合约,从而从单一的数字加密 Token 技术转化为一个区块链分布式应用的平台。以太坊本身不包含任何具体的应用,它主要是提供基础平台和工具,使得开发者可以在其基础之上开发出各种各样的应用。可以说,以太坊有着巨大的潜力,它最终可能会发展出分布式、自动化、自组织的最高形态。

  第一,我们可以通过学习以太坊的技术,领会区块链技术发展的脉络,改进的思路/路径,从而紧跟区块链技术发展的前沿,预测下一步的趋势。

  第二,DAPP(分布式应用)生态系统目前的发展也是蒸蒸日上,蓬勃发展,据不完全统计,现在有数百种应用之多,显而易见的,对于开发人员的需求也是水涨船高,需要大量的开发人员。目前非常有名的应用有加密猫、各类侧链应用、ERC20 Token如币安币火币等等。

  2013年,创始人 Vitalik Buterin 针对比特币存在的一些问题以及局限性,提出把“智能合约”构想应用于区块链领域,希望打造一个基于区块链的多方计算的智能化通用平台,并通过比特币融资进行开发。

  2014年,以太坊基金会在瑞士成立,管理并运营整个项目。

  前5大矿池占83%的算力,很集中。

  目前大约有16000个全节点,其中,美国5461(34%),中国1839(11.5%),俄罗斯963(6%),德国920(5.7%),加拿大875(5.45%)。全节点每天都有动态变化。分布情况也反映出各个国家的参与热度。

  ③ 如何快速入门区块链

  目前市面上还没有多少系统学习区块链的视频,自学区块链还是比较难得。可以报班,黑马程序员新开区块链学科,老师以通俗易懂的授课方式,深入浅出的技术讲解,肯定可以学会的哦。来源区视网,想看懂区块链,看视频教程就来这里哦!

  ④ 006:MPT与RLP|《ETH原理与智能合约开发》笔记

  待字闺中开发了一门区块链方面的课程:《深入浅出ETH原理与智能合约开发》,马良老师讲授。此文集记录我的学习笔记。

  课程共8节课。其中,前四课讲ETH原理,后四课讲智能合约。

  第二课分为三部分:

  这篇文章是第二课第二部分的学习笔记:MPT与RLP。

  MPT,Merkle Patricia Tree,结合了Merkle Tree(默克尔树)和 Patricia Tree(帕特里夏树)的一种数据结构。

  RLP,Recursive Length Prefix,一种编码方法。

  这是两个非常重要的数据结构,在以太坊的区块和交易中都有用到。

  先分别介绍一下Merkle Tree 和 Patricia Tree。

  Merkle Tree 和 Patricia Tree Merkle Tree 和 Patricia Tree

  默克尔树的解释:对每一个交易计算其散列值(Hash),再对两个散列值求他们的散列值。如果是奇数个,就把最后一个重复一次。最后得到的一个散列值就是默克尔树根的值。如图,交易1、1、2、3的散列值分别是HASH0、HASH1、HASH2、HASH3。HASH0和HASH1结合在一起计算散列值得HASH01,HASH2和HASH3结合在一起计算散列值得HASH23,接下来HASH01、HASH23结合在一起,计算散列值得HASH0123。

  采用默克尔树的好处是可以方便的判断一个交易是否在区块中。

  Patricia Tree,可称为压缩前缀树。如上图右半部分。相同的前缀在同一分支中,后面一同的部分分叉出来,如test和toast,都有相同的t,est和oast在两个分支中。

  这个结构的好处是节省空间,因为每一级的键值可以是多个字符。

  了解了Merkle Tree 和 Patricia Tree后,再来看这两者混合后的产物——MPT。

  这里的原理知识单独来看不易理解,和具体的例子结合起来才更容易理解,此处先放上课件截图。在后面的例子中再做说明。

  Merkle Patricia Tree 规格 Merkle Patricia Tree 规格

  在MPT中,还涉及到三个小的编码标准。主要规则如图。下面结合两个例子说明一下。

  三个编码标准 三个编码标准

  HEX编码的例子:从ASCII码表中可以查出,b的十六进制编码为62,o的十六进制编码为6F,F在十六进制中就是15的意思。因为这是个叶子节点,最后加上0x10表示结束,也就是16。所以最后的编码为[6 2 6 15 6 2 16]

  HEX-Prefix编码的例子:[6 2 6 15 6 2 16],将其最后的0x10去掉,[6 2 6 15 6 2]。前面补一个四元组,其中(倒数)第0位是区分奇偶信息的,[6 2 6 15 6 2]是偶数位,第0位是0;第1位是区分节点类型的,这是叶子节点,第1位是1。所以这个四元组就是0010是2。“如果输入key的长度是偶数则再添加一个四元组0x0在flag四元组之后。”,所以,最终的前缀是0x20。本例最终的结果,[32 98 111 98],即[0x20, 0x62, 0x6F, 0x62]

  下面是综合性的例子,通过它可以很方便地理解前面的理论知识。值得多看几篇,仔细休会。

  初始的key-value对为:

  其中,<>中的数据为key的16进制编码。

  MPT.jpg MPT.jpg

  因为4组数据都有公共的6,所以这个节点的值为6,长度为1,奇数;节点类型:扩展节点;所以前缀就是0001,即1。

  这是个扩展节点,它的值是一个Hashvalue,它指向一个分支节点。Hashvalue,具体指的是分支节点RLP编码的结果的散列值。(RLP见下小节)

  分支节点。上面4组数据的第2位是4和8两种情况。在4的位置上存的是下面的扩展节点的散列值,在8的位置上存的是下面的叶子节点的散列值。

  叶子节点。以68开头的只有一个了。所以这个节点上的四元组就是6f727365了。它是偶数位。前缀是0x20(同前文HEX-Prefix编码的例子)。这个叶子节点的value值为’stallion’。

  扩展节点。在64之后,公共的部分是6f,这个扩展节点的key即为6f,前缀为0000,即00。这个扩展节点的value存放的是一个hashvalue,指向下一个节点,一个分支节点。

  分支节点。646f已经表达完,这个节点的value值就是646f对应的值,’verb’。

  除此之外,646f之后就是6,所以在这个分支节点的6位置上有一个散列值,指向下一个节点。

  扩展节点。在646f6之后,公共的部分是7,其长度为1,奇数。所以前缀为0001。这个节点的value是一个散列值,指向下一个节点。

  分支节点。646f67已经表达完,这个节点的value值就是646f67对应的值,’puppy’。

  除此之外,646f67之后就是6,所以在这个分支节点的6位置上有一个散列值,指向下一个节点。

  叶子节点。key为5,value为’coin’。长度为1,奇数,前缀0011,即3。

  整个分析过程结束。可结合上图和前文的理论多加复习。

  这小节也是理论性较强,通过例子可以方便理解。先放上课件,再根据我的理解举更多的例子。同样,学习方法也是理论和例子配合学习。其中,list的例子在下篇文章的上机实验部分再列举。 RLP的编码标准 RLP的编码标准 再举几个例子 再举几个例子

  ⑤ 011:Ethash算法|《ETH原理与智能合约开发》笔记

  待字闺中开发了一门区块链方面的课程:《深入浅出ETH原理与智能合约开发》,马良老师讲授。此文集记录我的学习笔记。

  课程共8节课。其中,前四课讲ETH原理,后四课讲智能合约。

  第四课分为三部分:

  这篇文章是第四课第一部分的学习笔记:Ethash算法。

  这节课介绍的是以太坊非常核心的挖矿算法。

  在介绍Ethash算法之前,先讲一些背景知识。其实区块链技术主要是解决一个共识的问题,而共识是一个层次很丰富的概念,这里把范畴缩小,只讨论区块链中的共识。

   什么是共识?

  在区块链中,共识是指哪个节点有记账权。网络中有多个节点,理论上都有记账权,首先面临的问题就是,到底谁来记帐。另一个问题,交易一定是有顺序的,即谁在前,前在后。这样可以解决双花问题。区块链中的共识机制就是解决这两个问题,谁记帐和交易的顺序。

   什么是工作量证明算法

  为了决定众多节点中谁来记帐,可以有多种方案。其中,工作量证明就让节点去算一个哈希值,满足难度目标值的胜出。这个过程只能通过枚举计算,谁算的快,谁获胜的概率大。收益跟节点的工作量有关,这就是工作量证明算法。

   为什么要引入工作量证明算法?

  Hash Cash 由Adam Back 在1997年发表,中本聪首次在比特币中应用来解决共识问题。

  它最初用来解决垃圾邮件问题。

  其主要设计思想是通过暴力搜索,找到一种Block头部组合(通过调整nonce)使得嵌套的SHA256单向散列值输出小于一个特定的值(Target)。

  这个算法是计算密集型算法,一开始从CPU挖矿,转而为GPU,转而为FPGA,转而为ASIC,从而使得算力变得非常集中。

  算力集中就会带来一个问题,若有一个矿池的算力达到51%,则它就会有作恶的风险。这是比特币等使用工作量证明算法的系统的弊端。而以太坊则吸取了这个教训,进行了一些改进,诞生了Ethash算法。

  Ethash算法吸取了比特币的教训,专门设计了非常不利用计算的模型,它采用了I/O密集的模型,I/O慢,计算再快也没用。这样,对专用集成电路则不是那么有效。

  该算法对GPU友好。一是考虑如果只支持CPU,担心易被木马攻击;二是现在的显存都很大。

  轻型客户端的算法不适于挖矿,易于验证;快速启动

  算法中,主要依赖于Keccake256 。

  数据源除了传统的Block头部,还引入了随机数阵列DAG(有向非循环图)(Vitalik提出)

  种子值很小。根据种子值生成缓存值,缓存层的初始值为16M,每个世代增加128K。

  在缓存层之下是矿工使用的数据值,数据层的初始值是1G,每个世代增加8M。整个数据层的大小是128Bytes的素数倍。

  框架主要分为两个部分,一是DAG的生成,二是用Hashimoto来计算最终的结果。

  DAG分为三个层次,种子层,缓存层,数据层。三个层次是逐渐增大的。

  种子层很小,依赖上个世代的种子层。

  缓存层的第一个数据是根据种子层生成的,后面的根据前面的一个来生成,它是一个串行化的过程。其初始大小是16M,每个世代增加128K。每个元素64字节。

  数据层就是要用到的数据,其初始大小1G,现在约2个G,每个元素128字节。数据层的元素依赖缓存层的256个元素。

  整个流程是内存密集型。

  首先是头部信息和随机数结合在一起,做一个Keccak运算,获得初始的单向散列值Mix[0],128字节。然后,通过另外一个函数,映射到DAG上,获取一个值,再与Mix[0]混合得到Mix[1],如此循环64次,得到Mix[64],128字节。

  接下来经过后处理过程,得到 mix final 值,32字节。(这个值在前面两个小节《 009:GHOST协议 》、《 010:搭建测试网络 》都出现过)

  再经过计算,得出结果。把它和目标值相比较,小于则挖矿成功。

  难度值大,目标值小,就越难(前面需要的 0 越多)。

  这个过程也是挖矿难,验证容易。

  为防止矿机,mix function函数也有更新过。

  难度公式见课件截图。

  根据上一个区块的难度,来推算下一个。

  从公式看出,难度由三部分组成,首先是上一区块的难度,然后是线性部分,最后是非线性部分。

  非线性部分也叫难度炸弹,在过了一个特定的时间节点后,难度是指数上升。如此设计,其背后的目的是,在以太坊的项目周期中,在大都会版本后的下一个版本中,要转换共识,由POW变为POW、POS混合型的协议。基金会的意思可能是使得挖矿变得没意思。

  难度曲线图显示,2017年10月,难度有一个大的下降,奖励也由5个变为3个。

  本节主要介绍了Ethash算法,不足之处,请批评指正。

免责声明: 文章源于会员发布,不作为任何投资建议

如有侵权请联系我们删除,本文链接:https://www.sws100.com/btc/311668.html

(0)
鸟叔鸟叔
上一篇 2023年 4月 1日
下一篇 2023年 4月 1日

相关推荐

  • 币安封面(验证器怎么验证币安)

    关于币安封面(验证器怎么验证币安)这个问题很多人都不太了解,下面由句子百科Sws100.com小编beery为大家详细讲解一下,大家来看下。 1.币安创始人赵长鹏位列第三,身家估值11-20亿美元,为前十名中唯一的中国人。 2.币安创始人赵长鹏位列第三,身家估值11-20亿美元,为前十名中唯一的中国人。 3.杂志封面的消息一出,不熟悉加密领域的人难免惊讶:赵…

    2023年 3月 23日
  • 比特币合约爆仓什么意思?比特币合约爆仓规则

      在回答这个问题之前,句子百科小编先跟大家聊聊比特币合约,比特币合约是指无需实际拥有比特币也可进行交易的合约,比特币合约使你能够预测比特币的价格走势和对冲风险。了解完比特币合约之后,回归本文正题,比特币合约爆仓是什么意思呢?比特币合约爆仓规则又是什么?下面句子百科小编就针对这两个问题来给大家说说比特币合约爆仓。   所谓比特币合约爆仓,是指在某些特殊条件下…

    比特币行情 2022年 12月 29日
  • 有没有靠谱的合约平台推荐?

    对比其它平台,58COIN自上线以来从未发生过宕机事件,也不存在定点爆仓和穿仓分摊的情况,58交易所一没有名人背书,二没有大肆宣传,而是将精力全部放在了产品研发及用户体验上,在目前交易平台竞争非常激烈的情况下,能够踏实做事的平台屈指可数。 比特币合约,是指无需实际拥有比特币也可进行交易的合约。 它与必须实际持有数字货币才可进行的币币交易有很大不同。 比特币合…

    比特币行情 2023年 2月 9日
  • 阿希币/XAS币项目有什么特色?可以买吗?

    xas属于聚币大赌场里面的一员。俗话说,炒新不炒旧。xas默默无闻,也会像其他什么币种一样,消失在区块链革命当中,而且有好技术的话,可以去做新币种啊,为什么非得在这个上面开发呢?所以说,区块链领域没有革命性的币种,是要失去价值的。给他3分,算是原来的辉煌吧 不看好,没知名度,连好一点的规划都没有,更别谈盈利模式,团队也是一般的很,上的交易平台也少,用户数量也…

    比特币行情 2023年 4月 18日
  • biki交易所提币备注填什么

    Biki交易所提币备注填什么? 摘要: 在数字货币交易所提币时,填写备注是很重要的一步。对于Biki交易所而言,填写正确的提币备注可以避免出现各种问题,包括但不限于提币失败、延误等情况。本篇文章将深度挖掘Biki交易所的特点和行业知识,为大家介绍在Biki交易所提币时应该填写的备注。 一、Biki交易所介绍 Biki交易所成立于2018年3月,总部位于新加坡…

    比特币行情 2023年 5月 18日

联系我们

在线咨询: QQ交谈

邮件:k37759@foxmail.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信