趣说区块链入门

让你听过区块链

不知道你们有没有听过区块链?有没有了解过区块链?有没有开发过区块链?固然,这些都不重要。重要的是,如今开始,你即将了解“区块链”。区块链包括了 数学、密码学、P2P 通讯、智能合约、分布式存储及共识算法等知识,是多种技术共同组合而成的。git

下面从实际生活的例子出发,看看什么是区块链?区块链解决了什么问题?github

压岁钱?

小时候最喜欢过年了,走亲访友咱们都有压岁钱,也老是这样的客气。算法

但开心的时间老是短暂的,到家里,妈妈总会说:“红包我就给你保管了,等你须要用到的时候再给你啊”。固然,连续了好多年,我都没有看见过本身的压岁钱。数据库

当时年纪尚小,父母是咱们信任的人。什么都由父母说了算,这个压岁钱具体数额,使用日期,使用方式好像跟咱们没多大关系,都是在父母指定的规则中进行。简单总结,这就是中心化的操做。中心能够随意更改咱们的数据,更改规则,咱们都是中心下运转的螺丝钉安全

就像如今咱们的钱是存在银行,由于银行后面是国家,咱们信任国家,因此把钱放到银行。银行就是一个中心化的机构,执行相关的政策,进行经济的宏观调控等。markdown

接下来,让咱们看看什么是区块链?解决了什么问题?网络

仍是收压岁钱。框架

可是几年后的我聪明了。不相信妈妈给我保管压岁钱,每次拿到压岁钱,我都本身拿个小本子,把谁给个人压岁钱,具体金额跟时间都记上;而且告诉爸爸,哥哥姐姐,爷爷奶奶,七大姑八大姨,他们都跟我同样,记录着谁给个人压岁钱,具体金额跟时间等。 有一天,我有个喜欢的小女孩,她叫 LL,我向妈妈支出 100 块钱,想要给小女孩买礼物表白。妈妈一听?好小子,小小年纪,想法如此通透,果断拒绝,说个人压岁钱只有 10 块钱!!!!妈妈还拿出了她的小本本,上面确实只有 10 块钱。分布式

9 龙表现得异常冷静,超出同龄人的沉着,化身福尔摩斯-龙。缓缓拿出了个人小本本,上面清楚记录着个人每一笔压岁钱(记录着哪位亲戚给个人,具体金额是多少)。妈妈开心的笑起来,表现出本身儿子是天才般的浮夸。很快,她的理智打败了,说我记假帐!!!!这时候又让我想起我小时候常常问的问题:“妈妈,我是从哪里来的?”工具

我笑了笑,接着在“相亲相爱一家人”群里给你们说,“请你们带上我压岁钱的小本本,来我家客厅一下”。你们都是爱个人,很快就来了。长辈们的小本本上都记录着我每一笔压岁钱,而且跟个人小本本记录的如出一辙,那场景,异常尴尬啊。妈妈马上从包里给了我 100 块钱,这时,我跟每一位长辈都在本身的小本本上记下:妈妈。。年。。月。。日给了 9 龙 100 块钱。 9 龙拿着钱,蹦跳着向商店跑去。

太棒了,这就是 amazing。咱们再来分析一下这其中的关键。家中的每个人都帮我记录每一笔压岁钱的来历:包括谁给个人,什么时间,具体金额等。 这就是“去中心化”,你们都在帮我记录,记录着个人每一笔入帐与出帐,谁要是修改了本身的小本本,咱们就能够找你们来核对一下每一个人的小本本,就能够知道谁的帐本上错误的,而大多数人的帐本都是一致的。

其实这就是区块链最核心的东西,去中心化,数据不可篡改,因此信任帐本(少部分人篡改后,大部分诚实的人数据都是一致的,咱们相信大多数)。

区块链的实质是一个去中心化的分布式数据库,只支持以数据增长的方式来更新帐本,每一次更新都是以交易的形式进行,因此能够追溯余额的变化缘由,每笔帐单的来源与去向。 由于不能够更改其中的某一笔交易,也不能够删除数据,因此咱们每一个人都信任本身记录的小本本,信任着本身的帐本。当你对本身的帐本有质疑时,能够叫你们一块儿来互相核对,查看帐本是否有问题。

因此区块链根本解决的是什么问题?

我认为根本解决的是信任问题,如何让互不认识的双方很放心地进行价值转移。 基于区块链的特性:去中心化、数据不可篡改。

聪明的你,应该也看出了要想实现区块链须要不少条件才行,下面咱们来看一看。

区块链实现须要克服的问题

咱们从上面的例子能够看出一些问题。这里只是说一些大方向的问题,毕竟此篇不涉及技术。后续的文章会详细说明的,请耐心等待,持续关注。

  1. 能够看出,记帐的人越多,其实越安全。可能记帐的人分散在世界各地,彼此不认识,如何让你们都知道彼此何时得到多少压岁钱,谁给的呢?
  2. 如何保证你们知道的此条帐单信息来源的真实性?(是否传输过程当中被人篡改)
  3. 如何保证在有人会修改帐单,或者转发已经修改的虚假帐单给别人时,别人如何处理此帐单?
  4. 如何保证你们都会按照约定的规则进行记帐呢?确保都会将帐单加入到本身的数据库中。
  5. 若是有人串通好一块儿更改帐本,而且广播这个更改的帐本,这时候又怎么处理呢?
  • 咱们先说第一个问题:如何让世界各地的人互相都知道本身的压岁钱来历,金额等。这就是P2P 通讯(peer to peer),点对点的传输,双方都是直接发送消息给对方。p2p 是区块链的基石,全部的操做都得靠 p2p 来完成。(引入 p2p 就会有不少网络问题,好比网络分区)
  • 第二个问题:能够采用非对称加密算法,使用私钥进行关键数据签名;公钥及原始数据,签名进行验签。这样就能够验证数据是否与来源对应,数据是否被篡改。
  • 第三个问题:其实问题二说明中,能够验证此帐单是否被修改,若是被修改了验证不经过,丢弃此帐单,等待正确帐单的到来,或者向已经链接的其余人索要帐单。
  • 第四个问题:你们都按照某种规则来验证此帐单的有效性,最简单的作法可能经过投票,你们都来表决是否此帐单有效并进行记录。这一步就是所谓的共识,即你们都对此帐单的有效性进行表决,是否接受帐单。共识是基于 P2P 通讯的,因此可能会出现网络故障、网络分区;更甚其过程会有做恶的人篡改帐单,广播假的帐单,或者一会赞成一会不一样意等捣乱行为,影响共识的进行。这就是分布式事务问题,如何在分布式场景中对某一个值进行共识,来达到你们都对这个值一致的处理结果——都赞成或者都不一样意,或者知足指定的规则下容许少部分的人能够与你们的结果不一致。对于分布式一致性算法:有 2PC、3PC、PAXOS、PBFT、RAFT 等。还有区块链特有的 POW、POS、DPOS 等,之后慢慢道来。
  • 第五个问题:这个问题其实也是属于共识范畴,但能够知道的是,咱们是相信大多数人的帐本,若是大多数人都接受一个更改后的帐本,反过来讲,这个“错误的帐本”其实就是正确的,被你们所共识后并接受的。

区块链分类

区块链根据需求划分为三类

  1. 公有链:指全部人均可以参与,能够随时上下线;
  2. 联盟链:想要加入的人或者机构须要进行 CA 认证,即须要通过现有联盟链中节点的审批,知足定义的背书策略便可;退出亦然。
  3. 私有链:不容许其余人加入退出,或者只有通过许可的才能加入,可是其余的人没有决定权,彻底由私有链决定如何处理交易等。我理解私有链已经不能称为区块链链,就是一个中心化的分布式帐本。

比特币?以太坊?EOS(柚子)?

或许你听过这些名字,也据说了是基于区块链的加密数字货币。

但我强调!!!!!比特币、以太坊、EOS 等数字货币,不等同于区块链,它们只是区块链的一种应用。

比特币是区块链的第一个应用,而且通过时间验证,是可行的,如今还在正常运行,没有任何中心化的机构运行,全靠比特币区块链网络中的节点来共同维护。

分布式帐本——Hyperledger Fabric

Hyperledger 是一个开源社区,致力于为企业级区块链部署开发一套稳定的框架,工具和库。旗下有不少开源的产品,最出名的非属 Fabric,是可商用的联盟链框架。国内也是主推联盟链的发展,联盟链才是可真正承接业务的区块链,公链暂时尚未找打比较好的商用场景。若是你们对区块链感兴趣,建议向联盟链方向发展。

国内的联盟链框架

如下排名不分前后(狗头保命)

  • XuperChain:百度彻底自主研发的联盟链框架。github 地址:https://github.com/xuperchain/xuperchain
  • FISCO BCOS:由微众银行牵头,众多企业参与研发,基于 ethereum 进行研发的联盟链框架。github 地址:https://github.com/FISCO-BCOS/FISCO-BCOS
  • CITA:CITA 由秘猿科技开源, 是一个开源的区块链操做系统内核,以高稳定性,高性能,高可扩展性为设计目标。gi thub 地址:https://github.com/citahub/cita
  • 梧桐链:由苏州同济区块链研究院进行研发,基于开放标准研发的联盟链平台,聚焦行业、结合联盟、服务社区。github 地址:https://github.com/tjfoc/wutongchain

说到联盟链,怎么能不说智能合约呢

智能合约(英语:Smart contract )是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约容许在没有第三方的状况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于 1995 年由 Nick Szabo 首次提出。

能够理解为某个系统中,达到了某个条件后自动触发执行的程序。 智能合约已经提出不少年了,但为何都没有应用,直到以太坊的出现?由于智能合约是自动执行的程序,若是运行其的系统不可信,那系统可能在智能合约运行过程当中更改运行状态,这就与合约的概念背道而驰。直到区块链的出现,以太坊将智能合约引入到了区块链中,使用区块链的不可篡改特性提供了可信的运行环境,智能合约才能得以应用。

灵魂拷问?

  1. 什么是区块链?你能够用本身的话给别人说清楚吗?
  2. 存在即合理,为何会产生区块链?区块链解决什么问题?
  3. 区块链涵盖哪些主要知识?有什么分类?
  4. 你理解了区块链是什么以后,你有什么好的想法或者应用场景?

这篇文章是区块链的入门文章,以后的文章会偏向底层技术一些,拭目以待吧。

本文使用 mdnice 排版

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息