LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资产 > 思考 KEY和YAS都不涨 DeFi热点退去PDF会崛起吗?|ETH智能合约学习002 |投道438

思考 KEY和YAS都不涨 DeFi热点退去PDF会崛起吗?|ETH智能合约学习002 |投道438

2020-08-22 牛币集了 来源:区块链网络




投资之道

独立思考,复利思维




01

每日思考

When one teaches, two learn.


●最近YAS和KEY是一对难兄难弟


对比一下走势图,好像YAS稍强一点:




对于一直在等待牛市的币东和椰东来说,一直静静地等待......

可以结果好像是......

可是追热点真的能赚很多钱?

可能像南宫远这样,实话实说的不多吧。毕竟行动就有风险,什么转错帐,入错坑的可能性都大增。

这世界上有很多生物,有不同的生存策略,在投资领域里也一样。不同的策略需要由不同的人来执行,或者换句话说不同的人适合用不同的策略。

这就好比狐狸和刺猬,狐狸知道很多事,刺猬只知道一件事。

古希腊寓言《刺猬与狐狸》中有这样的内容:

狐狸十分狡猾,诡计多端,总是向刺猬发起进攻。但是刺猬每一次都缩成一个球,把满身的尖刺朝四面八方展开。任狐狸多么狡诈,刺猬就一招鲜,反而屡战屡胜。

在投资领域,不停地出击,追击热点,需要有狐狸的那种能力,诡计多端,而又灵活多变,这种投资者要像老白那样知道很多事,还要有迅速判断价值的能力,实在是万里挑一的。


而另外还有一种像刺猬的投资者,他就一招,定投。因为他只知道一件事,牛市里从头吃到尾,一般都会有很大的收益,只要BTC能涨多少倍,其它的币一般都能涨多少倍甚至更多。



●ETH智能合约学习002


既然现在的行情与你无关,你又自认为自己当不了狐狸,那么还是好好学习吧,通过学习来提高自己的认知水平,提前布局一些未来可能会大涨的项目才是真正能赚到钱的刺猬。


世界树,默克尔树


在学习它之前,必需先深刻理解一个重要的概念,就是HASH大名鼎鼎的哈希,但是真正能弄懂的人不多。


其实所谓哈希,大家都用过,你在下载软件的时候一般会有一个文本文件,里面有个很长的字符串(英文加数字)叫MD5码,这个大家应该有印象吧?


MD5是message-digest algorithm 5(信息-摘要算法)的缩写,被广泛用于加密和解密技术上,它可以说是文件的“数字指纹”。任何一个文件,无论是可执行程序、图像文件、临时文件或者其他任何类型的文件,也不管它体积多大,都有且只有一个独一无二的MD5信息值,并且如果这个文件被修改过,它的MD5值也将随之改变。因此,我们可以通过对比同一文件的MD5值,来校验这个文件是否被“篡改”过。


这个其实就是一种哈希算法,因为不管是图片还是一个游戏程序,本质上它们打包后都是一些由0和1组成的二进制代码块。用一种算法比如说MD5将这个巨大的代码块进行计算,得到一个它的摘要,就是对它进行哈希。


它的特点是如果有人把这个代码块里改了哪怕只是一个字节,最后得到的MD5码就和原来的那个完全不一样了。


牛币解读后你再来看程序员写的,是否就弄明白了:


这个是关于Hash在BT下载中的应用。


1、Hash

Hash是一个把任意长度的数据映射成固定长度数据的函数。例如,对于数据完整性校验,最简单的方法是对整个数据做Hash运算得到固定长度的Hash值,然后把得到的Hash值公布在网上,这样用户下载到数据之后,对数据再次进行Hash运算,比较运算结果和网上公布的Hash值进行比较,如果两个Hash值相等,说明下载的数据没有损坏。可以这样做是因为输入数据的稍微改变就会引起Hash运算结果的面目全非,而且根据Hash值反推原始输入数据的特征是困难的。




如果从一个稳定的服务器进行下载,采用单一Hash是可取的。但如果数据源不稳定,一旦数据损坏,就需要重新下载,这种下载的效率是很低的。


2、Hash List

在点对点网络中作数据传输的时候,会同时从多个机器上下载数据,而且很多机器可以认为是不稳定或者不可信的。为了校验数据的完整性,更好的办法是把大的文件分割成小的数据块(例如,把分割成2K为单位的数据块)。这样的好处是,如果小块数据在传输过程中损坏了,那么只要重新下载这一快数据就行了,不用重新下载整个文件。


怎么确定小的数据块没有损坏哪?只需要为每个数据块做Hash。BT下载的时候,在下载到真正数据之前,我们会先下载一个Hash列表。那么问题又来了,怎么确定这个Hash列表本身是正确的哪?答案是把每个小块数据的Hash值拼到一起,然后对这个长字符串在作一次Hash运算,这样就得到Hash列表的根Hash(Top Hash or Root Hash)。下载数据的时候,首先从可信的数据源得到正确的根Hash,就可以用它来校验Hash列表了,然后通过校验后的Hash列表校验数据块。


上面的这种思想被应用到了区块链技术的验证中。


牛币啰嗦几句:程序员写的东西就这样,他根本不管你看不看得懂,上面这张图的意思是每一个数据都对应一个哈希值,我们知道了那个哈希计算的特点,下载的文件只要有一个数据被改变了,那么整个数值就变化很大。当把每个小块拼在一起的时候,同样也是这样,也可以称它为二次哈希,那么通过这种方式就可以知道下载的数据是否被人改变过,而且计算量很小。


下面又是烧脑的部分了:


好了,我们知道了以太坊的全局状态就是由账户地址和账户状态的一个映射组成。这个映射被保存在一个叫做Merkle Patricia树的数据结构中默克尔树(也被叫做Merkle trie)是一种由一系列节点组成的二叉树,这些节点包括:


1、在树底的包含了源数据的大量叶子节点

2、一系列的中间的节点,这些节点是两个子节点的Hash值


3、一个根节点,同样是两个子节点的Hash值,代表着整棵树




牛币啰嗦来了:尼妹的,这里看了多少遍都不知道他在说啥,要不是去了解了BT下载的原理,你直接看这里试试。他的意思就是这个树也是以这种向上合并计算哈希的的方法来保证数据的完整性。


树底的数据是通过分开我们想要保存到chunks(尼妹这个chunks又是个什么鬼?英文翻译过来是大块)的数据产生的,然后将chunks(大块)分成buckets(水桶......),再然后再获取每个bucket(大块)的hash值(哈希值)并一直重复直到最后只剩下一个Hash:根Hash。


牛币吐槽:你说人话会死啊!不就是把大块的数据分成小块吗?什么chunks,什么buckets。



这棵树要求存在里面的值(value)都有一个对应的key(不是币乎的key啊,翻译为键)。从树的根节点开始,key(贱)会告诉你顺着哪个子节点可以获得对应的值,这个值存在叶子节点。在以太坊中,key/value是地址和与地址相关联的账户之间状态的映射,包括每个账户的balance, nonce, codeHash和storageRoot(storageRoot自己就是一颗树)。

牛币吐槽:不就是这棵树要求储存的值有一个索引吗?



同样的树结构也用来存储交易和收据。更具体的说,每个块都有一个头(header),保存了三个不同Merkle trie结构的根节点的Hash,包括:

牛币觉得这里是重点:(因为如果销毁合约账户的时候其实是让它的状态树不可用)如果是这样,合约被销毁不会影响交易树和收据树。


状态树

交易树

收据树

在Merkle tries中存储所有信息的高效性在以太坊中的“轻客户端”和“轻节点”相当的有用。记住区块链就是一群节点来维持的。广泛的说,有两种节点类型:全节点和轻节点。


牛币记得当时YAS主网上就只有神奇迈克做了一个全节点,而AP的全节点一直在传数据,也不知道现在怎么样了。因为全节点太消耗储存空间了,那个相当于是一个成本无限增加的东西。而轻节点之所以能够让大家完成交易,是因为它里面也保存了从创世区块到现在的信息,只不过它里面保存的都是只是哈希值。


全节点通过下载整条链来进行同步,从创世纪块到当前块,执行其中包含的所有交易。通常,矿工会存储全节点,因为他们在挖矿过程中需要全节点。也有可能下载一个全节点而不用执行所有的交易。无论如何,一个全节点包含了整个链。


不过除非一个节点需要执行所有的交易或轻松访问历史数据,不然没必要保存整条链。这就是轻节点概念的来源。比起下载和存储整个链以及执行其中所有的交易,轻节点仅仅下载链的头,从创世纪块到当前块的头,不执行任何的交易或检索任何相关联的状态。由于轻节点可以访问块的头,而头中包含了3个tries的Hash,所有轻节点依然可以很容易生成和接收关于交易、事件、余额等可验证的答案。


这个可以行的通是因为在Merkle树中hash值是向上传播的—如果一个恶意用户试图用一个假交易来交换Merkle树底的交易,这个会改变它上面节点的hash值,而它上面节点的值的改变也会导致上上一个节点Hash值的改变,以此类推,一直到树的根节点。


牛币解读一下上面的图:最下面是一个无效的数据,也就是一笔恶意的交易。当它向上验证的时候就会和其它正确的哈希值一起被验证,我们知道,一个错误的加上一个正确的,哈希后会面目全非,所以会一路错到根!


任何节点想要验证一些数据都可以通过Merkle证明来进行验证,Merkle 证明的组成:(节点验证这个默克尔证明的过程其实就是我们大家熟知的挖矿

一块需要验证的数据

树的根节点Hash

一个“分支”(从chunk到根这个路径上所有的hash值)

牛币解图:先需要了解什么是挖矿和POW工作量证明,才能理解上面的图。先看(1),你可以把它理解为一笔交易,它需要验证一些数据,这样它会先去找和它相连的区块,一直找到根部,因为根部是创世区块的哈希,那是正确性最高的权威。


反过来看,我们从创世纪状态(genesis state)开始。这差不多类似于一片空白的石板,在网络中还没有任何交易的产生状态。当交易被执行后,这个创世纪状态就会转变成最终状态。在任何时刻,这个最终状态都代表着以太坊当前的状态。


以太坊的状态有百万个交易。这些交易都被“组团”到一个区块中。一个区块包含了一系列的交易,每个区块都与它的前一个区块链接起来。这个组团的过程其实就是通过默克尔树的这种结构来完成的。



为了让一个状态转换成下一个状态,交易必须是有效的。为了让一个交易被认为是有效的,它必须要经过一个验证过程,此过程也就是挖矿。挖矿就是一组节点(即电脑)用它们的计算资源来创建一个包含有效交易的区块出来。


任何在网络上宣称自己是矿工的节点都可以尝试创建和验证区块。世界各地的很多矿工都在同一时间创建和验证区块。每个矿工在提交一个区块到区块链上的时候都会提供一个数学机制的“证明”,这个证明就像一个保证:如果这个证明存在,那么这个区块一定是有效的。


划重点这就默克尔证明。


为了让一个区块添加到主链上,一个矿工必须要比其他矿工更快的提供出这个“证明”。通过矿工提供的一个数学机制的“证明”来证实每个区块的过程称之为工作量证明(proof of work)。


任何可以读取证明的人都可以验证分支的hash是连贯的,因此给出的块在树中实际的位置就是在此处。这就是防止有人伪造交易的办法,但是如果有人控制了51%以上的算力,就像这次ETH上的攻击事件,它就是通过超过了这个网络的算力保护力量,一力降十会,在短时间内强行制造了一条包含双花交易的“真链”出来了。所以社区就面临了一个困局,不可能回滚交易,因为那个是最终的游戏规则。


总之,使用Merkle Patricia树的好处就是该结构的根节点加密取决于存储在树中的数据,而且根据点的hash还可以作为该数据的安全标识。由于块的头包含了状态、交易、收据树的根hash,所有任何节点都可以验证以太坊的一小部分状态而不用保存整个状态,这整个状态的的大小可能是非常大的。



牛币总结:今天学习的内容很烧脑,可能需要多看几遍,默克尔树是以太坊上的一个重要概念,它需要你理解一些其它方面的概念来支持。如果看不明白也不要着急,我们会在实践中慢慢再来理解它。今天你主要要理解什么是哈希,然后知道默克树是由三个部分组成的:状态树、交易树和收据树。然后知道为什么轻节点也能验证交易,理解那种向上哈希验证数据完整性的思想。


明天我们来讲点好玩的东西,怎么发币,和其中一些玩法。



吹牛币

终生学习,共同进步





02

社区动态



●DeFi热潮退去后PDF会崛起吗?


这次的DeFi和1 C O 是何其的相似,又会是一地鸡毛吗?我看还没有到那个时候,毕竟现在牛市还在最早期。


现在热度有点下降罢了,现在的项目中也有大量的空气项目,最终很多人会慢慢理性起来,FOMO情绪也会消退。


而在众多的喧嚣声中,我认为PDF会慢慢地被人们所接受,社区成员静下心来趁这时候,把手中的事情做好。


YAS已经经过了很长时间的调整了,随时有可能爆发,而PDF是由它来托底的,只会是水涨船更高。


在牛市里,也会有调整,但是牛市里的调整一定是比熊市要更猛烈,时间上更短的,而上涨也许就那么几个小时的事,所以只能是长期埋伏在里面的人才能吃到利润,追高的人很容易被套。


PDF本质上就是在ETH链上的YAS,虽然它是经过拆分的,但是总量只有9500万个,而且是真正地做到了永不增发。


牛市不会是几天就结束,它也需要有一个过程,而从前几次的情况来看,这个过程一般会持续一年到一年半,最有可能高点会在2021年底到2022年初的时候出现。


SO,我们






谢谢您的阅读



文章中提到的都是高风险投资品种,我是以归零的心态在持有,请不要模仿。以上文章里的内容不作为投资建议,鉴于您赚了钱不会分给我,所以笔者也不会对您的投资亏损负责!


我是收集牛币的牛币,希望以上观点对您有所帮助。



了解区块链从这开始(新人入口)

椰子社区专用词速查(传送之门)




今后文章主要以“吹牛币、学投资”为主题。


想交流的加V (lengjing2007)



—-

编译者/作者:牛币集了

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...