美文网首页
区块链原理是什么?如何开发区块链程序

区块链原理是什么?如何开发区块链程序

作者: a762b3c4bd19 | 来源:发表于2018-03-08 15:55 被阅读16次

    介绍

    区块链可以理解为是分布式数据库,读取数据,存储数据。特点是:耐久性,稳健性,透明性,不被破坏性。

    这时有同学会问:“老师,别人家说区块链是个分布式账本,有奖励机制,可以通过挖矿获取奖励,怎么不一样?”,问题很好同学,说的也对,但是有局限性,针对比特币来说都符合,但是比特币那是区块链1.0时代,以数字货币为主要应用,可以理解为分布式账本,每十分钟出一个区块然后奖励一些比特币。但是这只是区块链应用中的一个,而且在区块链3.0超级账本中就没有奖励机制,也不止是记账,还有存图片,视频,文字等等,所以把区块链理解为分布式数据库更准确。

    又有同学问了:“区块链1.0是比特币,3.0是超级账本,那2.0是什么?”,好问题,很认真,就是要这样,通过问题来驱动学习,区块链2.0是智能合约,也是现在比较主流的,像前一段时间养个宠物什么的,就是智能合约,目前基本上说区块链程序,就是指智能合约。这些内容在后面专栏文章中都会讲到。下面我们来看一下区块链的特点。

    耐久性:

    比特币运行9年了,也没有出现什么大问题,而且它是自动运行的,源码大家都能看到,只要还有节点在,它就能一直运行下去,就算发生个地震,火山爆发也不会影响,没有云服务器的费用,不需要运维,能够长期持续下去。

    稳健性:

    用大家熟悉的词“去中心化”来表示会更容易理解,但是它的本质是什么?大家可以思考一下,举个例子,津巴布韦这个国家通货膨胀导致货币贬值,原因就是津巴布韦政府超额发行货币,因为政府能控制发行货币可以理解为是货币中心,这样的话货币稳定不稳定就掌控在政府手里了,去中心化就是把货币中心去掉,没有单一的个体可以影响整个市场。

    透明性:

    建议大家可以到比特币官网:https://bitcoin.org/zh_CN/choose-your-wallet,下载一个钱包然后看到所有数据,从比特币诞生到现在,下图是中本聪在第一个创世区块中写的信息,

    EThe T imes 03/Jan/2009 Chancellor on b rink of second b ailout for banks 。可以吧,够透明了,谁都能查看。

    [图片上传失败...(image-87ddc5-1520495704494)]

    不被破坏性:

    这个可以理解为不可篡改性,是因为每一个区块里都包含两个hash值,一个是上个区块的Hash值,另一个是当前区块的Hash值,只要Hash值里面任何内容有改动,Hash值都会变,比如现在有100个区块,有人改了第53个,那么54到100的区块也都要跟着变动,也就是说54到100的区块的拥有者要去做改动,而且必须得到超过50%的区块拥有者的同意,大家才会把你改动的信息同步下来。

    如何开发区块链程序:

    现在说的区块链程序基本上就是指智能合约,开发语言是solidity,智能合约可以理解为在区块链上部署用solidity编写的应用程序,至于solidity这个开发语言学习起来也容易,需要掌握它的:

    1. 变量类型,定义,使用
    2. 函数定义,传参,返回参数
    3. 流程控制
    4. 循环
    5. 初始化,构造函数
    6. 生命周期
    7. 类定义,继承

    solidity是需要编译的,了解这些基本就可以开始写了第一个智能合约了,其它的特性等练习过程中自然就学习到了。

    总结:

    介绍了区块链的特性:耐久性,稳健性,透明性,不被破坏性

    智能合约的开发语言:solidity

    区块链的三个时代:比特币1.0,以太坊2.0,超级账本3.0

    互联网时代大家可能是996,早上9点工作到晚上9点,一周工作6天。

    区块链时代是8247,早上8点工作到晚上24点,一周工作7天。

    相关文章

      网友评论

          本文标题:区块链原理是什么?如何开发区块链程序

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