区块链最重要的一堂课

作者: 德罗巴007_592 | 来源:发表于2019-12-09 21:20 被阅读0次

    感谢您的阅读

    今天的文章内容是张应平张老师在开发者大会上的分享,我向你保证,如果能够看懂以下内容,那么恭喜你,你已经跨入区块链的大门了,

    2014年密码学不太被重视,吴军老师2015年提到了比特币和区块链,这个技术刚接触时就像是一个神话,它的核心就是密码学,区块链真正的创新是共识机制,它把经济学和博弈学结合起来,很多人看不懂。

    大家对区块链最大的认知就是分布式,这是有偏见的,你没有看到经济学的一面,如果把经济学和区块链结合起来看的话,你一定会有很多的新的认知,所以,对区块链的理解是需要多方面的。

    强烈反对区块链的神秘化,它只是一项技术,但它又是一个综合的技术,有密码学,有分布式,有p2p,还有一系列的综合,且还要有经济学思维,才能真正看懂它为什么不是传统意义的分布式。

    区块链的解释非常多,官方的,民间的,其实,只需要理解区块链是一种分布式账本的技术就够了。

    它和传统的账本不一样,中心化的账本不管是什么,只要服务器隶属于一个组织,它带来的问题就是信任的程度低。

    区块链的分布式记账是由利益相关方共同来完成的,所以公开降低了信任成本,并且还会得到共识激励,而共识机制又是区块链的关键核心。

    区块链的技术原理包括密码学,共识机制,经济学等等,所以需要很长的时间来学习,但,它到底能干些什么呢?

    要了解区块链的基本原理,必须从比特币的一笔转账开始,比如a给b转0.1个比特币买一个苹果手机,这里有三个步骤:

    1:钱包会把b钱包的公钥做一个哈希运算。

    2:用a的私钥对这个哈希做一个签名。

    3:把签名公钥和0.1个比特币的原文一起发给b。

    这就是比特币的主要工作原理只要弄明白这三个步骤后面学习就容易多了。

    在这三个步骤中,我们还需要明白什么是哈希,什么是非对称密钥,什么是签名,什么是加密,只要弄明白了这些,区块链的大门就算已经为你打开了。

    什么是哈希?

    顾名思义,哈希有些像人类的指纹,就是任何一段字符串经过哈希运算都是一串定长的字符串,它可以保证数据的唯一性。

    什么是非对称加密?

    首先对称加密有一个巨大的问题,就是加密密钥和解密密钥是一样的,这样带来的一个问题,是你把数据加密了,密钥怎么办?

    所以密钥安全很难保证,而非对称密钥的神奇之处在于,它加密和解密用的的密钥是不一样的,它有一个公钥和一个私钥,公钥是完全对外公开的,是要是自己持有的。

    很多人把私钥保存在邮箱或手机里,这是很危险的,过去的u盾就是一个加密私钥,比较保险,但一旦丢失也是很麻烦的,所以在非对称加密,私钥是非常重要的,一定要保护好。

    非对称加密有两个机制:

    1:用公钥加密用私钥解密,这被称为加密。

    公钥是对外公开的,比如我要给张三发一个秘文,我就会用张三的公钥,因为他是网上公开的,就可以拿他的公钥加密,然后发送给他,他拿到后用他的私钥再解密,这种方式就叫加密。

    2:用私钥加密然后用公钥解密,这种方式叫签名。

    为什么叫签名?

    因为私钥的持有者只有我自己别人没有,所以我用私钥加密完就代表我认可这个数据是我发送的,用公钥加密用私钥解密叫加密,用私钥加密用公钥解密叫签名。

    密码学在区块链到底是怎么用的?

    首先我们对0.1个比特币第一步做了一个哈希运算,第二步用了我的私钥做了一个签名,那对方收到之后会用我的公钥把这段数据解开,如果能正常解开,代表这就是对方发的,然后他对这0.1个比特币再做一个哈希运算,再和解开后的哈希做一次对比,如果一样代表没篡改过如果不一样那就拒绝了,所以比特币运行了这么多年没有发生过错误,基本原理就是密码学在这个系统中起到了最关键的作用。

    什么是共识机制?

    在区块链的共识机制中跟经济学有很大关系,就是说它的共识机制就是在一个开放的网络里面存在恶意攻击的情况下可以保证全网节点数据的一致性,而传统分布式是根本做不到的,传统分布式要么保护可用,要么提供有限数据的一致性,比如ATM机一旦出现数据不一致,一定是停止服务的。

    微信在节假日高峰时会主动丢弃一些数据,因为服务器压力过大,但在区块链不是这样,区块链在一个开放网络任何人都可以攻击的情况下,要保护全网节点的一致,这就叫区块链的拜占庭。

    如果有人说他的区块链符合拜占庭,那你问他,你在几万个节点上是否经得起攻击,这就是区块链共识机制和传统分布式的区别。

    所谓的挖矿节点是什么呢?

    就是传统意义理解的区块节点,钱包就是一个轻节点,它不储存数据,所以挖矿节点才是真正意义上的记账节点,在这个节点它会做较验打捞区块,就是把0.1个比特币这个交易串到链上,然后根据工作量证明选择一个最长的链,这就是整个区块链全节点做的事。

    工作量证明简单的说就是它加了一个经济博弈,就使得与其作恶还不如老老实实记账,因为作恶带来的成本过高,这就是整个区块链共识机制和传统分布是不一样的地方。

    区块链的每个区块都包含上一个区块的哈希值,这样做的好处是你需要修改任何一个数据都要把后面所有的区块数据改一遍,而且这个区块还一直在增长,所以你需要做出多么大的工作量证明才能把这个数据改变,比特币全网的算力抵得上新加坡一年的电量所以成本巨大。

    区块链是点对点,没有中心化服务器,所以使用了p2p这样一个技术,也正是有了这种技术,区块链才能够去中心化。

    很多人不明白智能开发和区块链开发的区别,其实我们经常说的开发就是智能合约,并不是底层协议开发,不是上来就写一个比特币开发,实际上以太仿EOS上智能合约只是开发一段运行在区块链上的程序,只是这段代码比较特殊,它是运行在链上的,所以叫智能合约。

    还有人们把技术研发和工具使用混为一谈,很多时候,我们理解的开发就是工具使用,你只要把工具用的熟练就行了。

    下面介绍具备区块链开发的三个功能:

    1:区块链有一个正确的认知,

    2:必须熟悉一门语言,

    3:选择一种平台进行智能合约开发,写一个区块链应用。

    下面介绍区块链开发工程师岗位的要求:

    1:熟悉密码学共识机制……,

    2:熟悉ETH,eos开发原理,

    3:熟悉一些常用工具,

    4:熟悉一种语言。

    这是一场非常重要的课,全部内容整理完毕,自己受益匪浅,感谢张老师。

    相关文章

      网友评论

        本文标题:区块链最重要的一堂课

        本文链接:https://www.haomeiwen.com/subject/fwbigctx.html