小白都能看懂的区块链入门篇

一、小白再次探索区块链

早些年间,大家零星地能听到一些区块链相关的话题,比如比特币、挖矿等,直到去年的时候,区块链就突然爆发式地火了,大家都在谈论区块链,但好像没有几个人能谈清楚什么是区块链。相反地,却被各种虚拟币、炒币、骗钱、违法所充斥。

位于神坛的区块链,一直身份“神秘”。我们最开始是通过比特币认识了区块链,也一直陷入区块链即加密货币这个误区。正因为对区块链的误解,很多人和我一样对区块链的进一步了解、研究也止步于此,直到今年10月24日,国家层面对区块链的高度重视和布局,让我们再一次尝试去揭开区块链的神秘面纱,去一睹她的迷人之处。

在文章的最前面,我还是想向那些和我一样的区块链小白澄清几个对区块链的认识误区:

1、比特币 ≠ 区块链,比特币只是运用了区块链技术而已,而且是区块链技术的第一个应用,同时是比较成功的应用。

2、目前市场上的区块链项目种类繁多,尤其是很多打着区块链名义,进行公开发行交易Token的项目也不是区块链技术应用的全部,只是因为区块链技术在早期大部分都被应在加密货币领域。

3、我们应该认识到:区块链技术的核心,在于构建了不依赖第三方的、自运行的社会信任网络,是为了造福社会的(绝不是那些虚拟币项目)。随着区块链技术的发展和国家层面的引导与规范,区块链技术将更多的被应用到金融服务、医疗健康、教育、物联网、社会管理等领域,回归其初衷,发挥其真正应有的正面价值。

二、用一个例子告诉小白什么是区块链

有一个全民记账的村子,如果哪天张三找李四借了100块钱,按照约定俗成,他就会向全村广播这个消息。所有村民都在自己的账本上记下这笔账,那么这笔账就由全村所有眼睛盯着,很难再有少了漏了或欠债不还的情况发生。

这样的“信用村”,其实就是区块链:单点发起,全网广播,共同审核,全网记录。

如果看完这个小故事没有什么感觉,那可能是因为你从来都没有被欠钱不还过,感受不到这个“痛点”,我小时候就亲身经历过,别人欠我们家钱不还赖账的那种焦头烂额。

现在很多人不太愿意借钱给别人,也是因为怕对方赖账,或到了约定的时间对方“忘了”还钱自己又不好意思“提醒”对方怕得罪人、怕失去朋友,到最后人财两空。

如果运用区块链技术,这些问题就都不存在了。具体怎么解决?请听我一一说来。其实借钱主要是两个问题:

1、第一个问题:对方赖账,不承认找你借了钱。这个问题其实在上面的故事中已经解决了,就是借钱的时候通过“广播”,让区块链中的所有人(节点)都知道,所有节点都进行记录。同理,现实中用的是担保人,或打张欠条。只是区块链技术效率更高,更可信,数据也更安全。

2、第二个问题:对方耍无奈就是拖着不还,或者“忘了”还,我们又碍于面子不好意思提醒、催账。如果我们遇到那种就是拖着不还的无赖,我们只能咬牙切齿,对其无可奈何。即使打官司,也要准备证据材料,又要费时费力,苦不堪言。

如果采用区块链的智能合约技术,就可以完美地解决这个问题。智能合约是在条件触发自动执行违约处理逻辑,比如,上面例子中的张三找李四借了100块钱,并约定2019年12月12日还,等到了2019年12月12日的时候,智能合约条件触发,区块链系统将自动从张三的银行卡上转100块钱到李四银行卡上还给李四。注意:达到自动执行效果的前提是,需要银行、司法、公安等部门系统接入区块链系统,提供相关接口。

有些喜欢抬杠的同学可能会问,如果张三在签智能合约的时候提供的是一张余额为零的卡号呢?智能合约还怎么执行?我想说的是,以上只是一个简单的例子,重点在于说明逻辑,细节不可能描述得很清晰。那我们来试想一下,如果区块链智能合约绑定是不是张三的某一张银行卡,而是他的个人身份证号码,并且系统支持他名下的所有银行卡都用来还李四的这100块钱呢?只要张三的银行卡里一有钱,就会自动转给李四,除非张三为了不还这100块钱不再用银行卡。即便如此,在区块链的世界里,张三会上“老赖”的名单(区块链+征信),成为失信的人,所有人都会知道,那张三今后在社会上将寸步难行,如果是这样,张三还会赖账吗?我想,答案应该是不会。

说到这里,区块链技术是不是真的很香非常有价值?

三、再用一个例子来加深一下对区块链的感受

这次就不再讲故事了,直接给大家介绍如果区块链+合同会是什么样?

合同对于我们来讲,都不陌生,每个人或多或少都和合同打过交道,签过合同。

目前我们传统的合同的弊端/痛点有:

  • 需要线下签合同,甚至出差到异地就只为签一个合同;或者来回邮寄合同,等双方签字盖章。费时费力,效率低下。
  • 需要保管纸质合同
  • 有一方违约时,另外一方需要提起诉讼,准备材料,打官司。即使赢了官司,在某些情况下还需要公安部门介入强制执行,维权成本高。

如果将区块链应用于合同呢?

  • 双方签合同不需要线下签,线上即可签订,效率高。
  • 合同上链,不可篡改,可信度更高;链上多套账本保存,更安全,不再需要保存纸质合同。
  • 采用区块链智能合约技术,条件触发自动执行违约处理逻辑(如违约方给对方自动转赔偿款),不需要人工介入。省去了维权方的维权成本。注意:达到自动执行效果的前提是,需要银行、司法、公安等部门系统接入区块链系统,提供相关接口。

四、趁热打铁介绍一下智能合约

智能合约(smart con-tracts)可能是现在最具改革性的区块链技术应用。只要交易符合合约条款要求,智能合约就可以实现自动支付和货币等其他资产的自动化转让。举例来说,某份智能合约能在货物签收后,立即给供应商支付应付款项。某公司可用区块链表明某特定货品已经签收;或者产品可能有GPS追踪功能,可以在区块链中自动更新地理位置,而这一功能反过来还能发起收款。我们已经看到一些自动生效型合同的早期实验,应用的领域包括风险投资、银行业务和数字版权保护。

智能合约的前景一片大好。公司基于合同而建;从法人团队的组成到买家与供应商的关系,再到雇员关系,签订合同都必不可少。如果合同可以自动生成,那么传统企业结构、流程以及律师和会计等中间人将会发生什么变化?管理者又会受到什么影响?他们的职责会发生巨大改变。但我们现在为这一想法激动不已恐怕太早,要记住,智能合约得到广泛普及那天为时离我们还有数十年之久。没有众多机构或其他力量的支持,智能合约并不能彰显其作用。只有就如何设计、确认、实施和强制执行的问题上达到高度协调和明晰化,这类合同才能实现潜力。我们认为,肩负这些重责的机构要用很长时间才能完成转变。它们面临技术方面的严峻挑战,特别是安全挑战。

摘自《关于区块链,你不得不知的真相》

在此补充一下区块链的演进历程,了解一下智能合约所处的历史位置。

  • 2008年11月,中本聪发明比特币,区块链进入1.0时代。
  • 2013年11月以太坊的诞生标志着区块链进入2.0时代,智能合约是区块链2.0的产物。
  • 2015年,区块链应用遍地开花,全面落地,进入区块链3.0时代。

五、区块链产品体验

说了这么多,感觉区块链离我们的生活还是很远,区块链到底是个什么鬼东西?如果有兴趣,你可以去体验一下现有的区块链产品,如区块链浏览器、DAPP商城、数字钱包等APP(火币Pro、火币钱包、比特币钱包等)。

六、准备上升专业理论啦,非专业读者可绕道左拐

以上都是非专业人士都能看懂的大白话,下面,我们将逐步进入技术专业性阐述部分,看不懂的读者可以扫读或跳过此部分。

6.1 区块链的真相

几乎每个人都听说过:区块链将彻底改造行业,重新定义公司和经济。什么是区块链?区块链是建立在互联网基础之上的P2P网络,于2008年10月首次应用于比特币的协议中。比特币是区块链技术的第一个应用案例。比特币是种虚拟货币系统;它将货币发行、所有权转让和交易确认去中心化。

如果说互联网TCP/IP协议让我们进入了信息自由传递的时代,那么区块链的创新将把我们带入信息的自由公证时代!区块链技术可以称得上是人类信用进化史上的重要里程碑,将会像互联网一样重构人类社会的生产和组织方式。

如果区块链得到普及,未来合同将嵌入数字编码并保存到透明、共享的数据库中,可防止数据被删除、篡改和修订。到那时,每份协议、每个流程、每项任务和每次付款,都会有一份可识别、验证、保存和分享的数字记录和签名。律师、代理人和银行家等中间人可能就不是必要的交易参与者了。个人、组织、机器和算法彼此之间的交易和互动将顺畅无阻。这就是区块链的巨大潜力。

摘自《关于区块链,你不得不知的真相》

6.2 什么是区块链技术?

区块链技术,也被称作分布式记账技术(DLT),将我们带入从“信任人”到“信任机器”、从“中心化”到“去中心化”的新范式。区块链通过去中心化的、同级验证的、时间戳账本来确认匿名的身份和交易。每个人都能对账本进行核查验证,但它不受任何一方控制。基于区块链技术的商业活动有永恒性、自动性和透明共识三大特性。

6.3 区块链技术原理
  • 将交易向全网所有节点进行广播
  • 由记账节点竞争记账权,胜出者把记账区块发布给全网
  • 所有账本数据完整存储于区块链网络的每个节点
  • 所有节点都对账本数据的合法性和完整性进行验证
  • 两个核心技术:
    1、以链式区块组织账本数据实现账本数据的不可篡改
    2、分布式的可信记账机制
6.4 区块链技术体系
  • 数据层:区块数据、Merkle树、非对称加密、时间戳、数字签名、哈希函数
  • 网络层:P2P网络、传输机制、验证机制
  • 共识层:POW、POS、DPOS、PBFT、DBFTP……
  • 激励层:发行机制、分配机制
  • 合约层:脚本代码、智能合约、编程算法
  • 应用层:可编程货币、可编程金融、可编程社会
6.5 共识机制

共识机制解决了区块链如何在分布式场景下达成一致性的问题,是保障区块链系统长期稳定运行的关键技术。

常见的共识算法如下:

共识算法 工作原理 优缺点 应用
POW 竞争性哈希计算来确定记账 优点:BFT,不可逆;缺点:消耗大量电能,记账成本高,记账速度慢 比特币,以太坊
POS 根据资产的多寡来调整获得记账权的概率 优点:低耗能,速度快,不可逆;缺点:寡头优势,失去公平性 以太坊Casper
DPOS 选中一小群节点作为代表进行POS记账 优点:速度更快,更民主化;缺点:没有考虑账号重要性 Bitshare,EoS.io

针对现有共识算法存在的一些弊端,近几年又提出了许多新的共识机制。

  • POS-POW:以POW基础,POW矿工创建区块,POS用户确认区块的合法性。
  • DBFT:由权益来选出记账人,然后记账人之间通过拜占庭容错算法来达成共识。
  • BFT-DPOS:以得票数量排序的代理人节点列表中选取固定数量的节点,其再以BFT算法进行共识。
  • VRF:一种基于密码学的新型共识模型,优势是最快速共识,抗攻击能力、极低算力需求。

最新共识机制的对比:

共识机制 适用场景 性能效率 资源消耗 容错率
POS-POW混合共识 公链 50%
授权拜占庭容错(DBFT共识) 公链/联盟链 33%
BFT-DPOS混合共识 公链/联盟链 33%
VRF共识之Algorand算法 公链/联盟链 33%
6.6 代码安全性
  • The Dao事件:2016年6月17日以太坊最大众筹项目The Dao被攻击,攻击者组合了2个漏洞攻击,最终导致1200万以太币资产从The Dao资产池中分离。

  • 2018.4.22,有黑客利用以太坊ERC-20智能合约中BatchOverFlow漏洞攻击BEC(美链的代币“美蜜”)智能合约,成功向两个地址转出了天量级别的BEC代币,导致市场上海量BEC被抛售,此事使得当日BEC的价值几乎归零,64亿人民币瞬间蒸发。

  • 2018.4.25,仅仅三天后,另一个智能合约SmartMesh(SMT)曝出漏洞,交易所表示,因SMT出现异常交易,各交易平台暂停SMT的充提和交易。

  • 2018.5.29,360公司Vulcan(伏尔甘)团队发现了区块链平台EOS的一系列高危安全漏洞。经验证,其中部分漏洞可以在EOS节点上远程执行任意代码,即可以通过远程攻击,直接控制和接管EOS上运行的所有节点。

6.7 智能合约代码存在的问题

1、如何确保合约代码的正确性
2、合约验证问题
3、合约的定制问题
4、一致性问题
5、执行过程的可控性和可调度性

七、区块链产品概览

区块链产品主要有:

  • 底层平台:通用基础设置、与业务场景无关、技术门槛较高、多技术结合:分布式存储+点对点网络+密码学等等。

  • 开放平台:与业务场景相关性低、面向区块链应用开放者、起步探索阶段,成熟产品相对较少。

  • 应用场景:可应用的领域和场景广泛、与业务场景密切相关、具有可拓展性、易形成价值网络。

7.1 区块链产品-底层平台

底层平台有:公有链、 联盟链、私有链

7.1.1 区块链产品-底层平台-公有链

向全世界所有人开放,每个人都能成为系统中的一个节点参与记账的区块链,它们通常将激励机制和加密数字验证相结合,来实现对交易的共识。

7.1.2 区块链产品-底层平台-联盟链

若干个机构共同参与记账的区块链,即联盟成员之间通过对多中心的互相信任来达成共识。联盟链的数据只允许系统内的成员节点进行读写和发送交易,并且共同记录交易数据。

联盟链在高可用、高性能、可编程,隐私保护上更有优势,被认为是“部分去中心”或者是“多中心”的区块链。

联盟链让节点数得到了精简,能够使得系统的运行效率更高、成本更低,在单位时间内能够确认的交易数量要比公链大很多,更容易在现实场景中落地。

特点:节点准入控制与国家安全标准支持,确保认证准入、制定监管规则符合监管要求,在可信安全的基础上提高交易速度。

联盟链代表:趣链-Hyperchain、IBM-Fabric、微众银行-BCOS

7.1.3 区块链产品-底层平台-私有链

由单一机构维护,但有分布式特点,中心控制者制定可参与和进行交易验证成员范围,应用场景如机构内部进行跨区域业务协作。

7.2 区块链产品-开放平台

开放平台有:BaaS、生态社区

7.2.1 区块链产品-开放平台-BaaS

BaaS (Blockchain as a Service) 通常是一个基于云服务的企业级的区块链开放平台。可一键式快速部署接入、拥有去中心化信任机制、支持私有链、联盟链或多链。拥有私有化部署与丰富的运维管理特色能力。

BaaS代表:阿里云BaaS平台、蚂蚁金服BaaS平台、趣链-飞洛Philo开放平台、腾讯-区块链BaaS开放平台、华为-云区块链服务 BCS

7.3 区块链产品-应用场景
  • 金融服务:支付、交易清结算、贸易金融、股权、私募、债券、金融衍生品、众筹、信贷、风控、征信。

  • 医疗健康:数字病例、隐私保护、健康管理。

  • IP版权:专利、著作权、商标保护、软件、游戏、音频、视频、书籍许可证、艺术品证明。

  • 教育:学生征信、学历证明、成绩证明、产学合作。

  • 物联网:物品溯源、物品防伪、物品认证、网络安全性、网络效率、网络可靠性。

  • 共享经济:租车、租房、知识技能。

  • 通信:社交、消息系统

  • 社会管理:代理投票、身份认证、档案管理、公证、遗产继承、个人社会信用、工商管理

  • 慈善公益:社会公益

  • 文化娱乐:视频版权、音频版权、软件防伪、数字内容确权、软件传播溯源。

八、区块链应用案例

8.1 区块链+电子存证
8.1.1 背景分析

纸质合同的存证
互联网时代以前,商业合作、房屋转让、金融服务等社会协助的信任载体均为纸质合同。基于纸质合同的防伪、保全即为传统的存证业务。

电子合同的存证
电子数据呈爆炸式增长,在司法实践中,越来越多的案件开始依赖电子数据证据解决纠纷(如录像视频)。电子数据证据逐渐进入公证、法庭,成为主流的证据种类之一。社会变化的需求催生了电子合同及其存证业务。

8.1.2 传统业务痛点

传统电子数据存证采用中心化存储的模式,利用现有各储存平台(包括机房存储、云存储等)和自身信用权威提供电子证据的存证、保全、见证等服务。

  • 中心化存储的电子数据存在被篡改、被删除的可能性。
  • 数据司法效率不强。
  • 在多个判例中不被承认司法有效性。
8.1.3 解决思路
  • 哈希运算:将需要存证的文件(电子合同、图片、著作、视频等)进行哈希运算,生成一段与原数据库唯一对应的特征数据,作为原数据的“数据指纹”。

  • 私钥签名:利用非对称加密技术,将交易发起方经过私钥签名后的交易发送至区块链网络。

  • 交易写入区块链:发送至区块链网络的数据经过共识后打包形成区块,并同步至全网络其他节点。

  • 出具鉴定报告:对接国家背书的司法鉴定中心和公证处,快速出具司法鉴定报告和公证书,从而确保存证数据的法律效力。

当需要校验存证时,只需要将原文件哈希或交易哈希传入,平台自动对比是否有相同哈希的交易。若对比一致,则返回“文件验证通过”,若对比不一致,则返回“文件未经存证,或内容已被篡改”。可查看交易的区块链特征数据,包括区块高度、区块哈希、交易发起者公钥地址等。

8.2 区块链+商品溯源

溯源是指对农产品、工业品等商品的生产、加工、运输、流通、零售等环节的追踪记录,通过产业链上下游的各方广泛参与来实现。在全球范围内,溯源服务应用的最为广泛的领域是食品和药品溯源,这在保障食品安全、疾病防护有重要意义。

由于溯源行业尚处于早期发展阶段,行业内信任缺失和滥用的情况十分普遍。信息孤岛模式下,溯源链条上下游的参与者各自维护一份账本,拥有者可能出于利益而随意对账本进行篡改或集中事后编造,造假成本极低。

九、区块链相关公司/机构

下面给大家介绍一下目前和区块链相关的公司和机构,大略了解一下行业情况。

9.1 区块链硬件制造和基础设施
  • 硬件设备厂商:比特大陆、嘉楠耘智、亿邦科技等
  • 区块链计算:迅雷、上海璧碚符木等
9.2区块链安全防护
  • 区块链安全服务:链安科技、慢雾科技
  • 量子安全:IBM、微软、阿里巴巴、腾讯等
9.3 区块链服务机构
  • 区块链媒体及社区:巴比特、火星财经、It桔子等
  • 投资机构:IDG资本、红杉资本中国、真格基金等
  • 行业组织和行业研究机构:中国计算机学会区块链专委会、浙江省区块链技术应用协会、可信区块链联盟等

十、区块链是下一个风口,我能做区块链开发吗?

区块链是下一个风口,这毋容置疑,如果你也想抢占区块链高地,尽早进入区块链行业,不被时代淘汰,即使你现在无法立即进行区块链项目开发,但提前做些区块链技术研究和准备也是好的。

1、我们先来看一下区块链开发语言:

  • 底层平台:Go、C++
  • 智能合约:Solidity、Java、Kotlin
  • 合约调用:JavaScript、Java、Go
  • 应用开发:Java、Go、Node

2、我们再来看一下区块链研发技术栈:

  • 区块链平台:密码学、智能合约执行引擎、智能合约语言设计、P2P网络、共识算法、数据存储。

  • 应用落地:防伪溯源、金融领域、跨境物流、跨境电商(即行业专业知识)。

  • 安全:合约安全(很重要,一方面容易受到攻击;另一方面合约代码如果逻辑出现BUG,往往比传统的集中式系统更难处理,因为区块链是分布式的,合约逻辑会在区块链的大量节点上执行,发现漏洞时,即使你停用了自己的节点,在网络中仍然有其他节点在运行)、网络安全、平台安全。

3、我们再来看一下区块链主流平台使用技术

产品名 共识 种类 语言 合约引擎 智能合约语言 权限 隐私保护 TPS
Bitcoin POW 公链 C++ N/A N/A N/A N/A 7
Ethereum POW/POS 公链 Go EVM Solidity N/A N/A 100
Hyperchain PBFT 联盟链 Go HyperVM Java/Solidity 共识审批 动态加密/命名空间 >10000
Fabric PBFT 联盟链 Go Docker Go CA Channel 3000
Bletchley(EEA) Cryptlets 联盟链 N/A N/A N/A N/A N/A N/A
Corda 1.0 N/A 联盟链 Kotlin JVM Kotlin/Java N/A N/A N/A
Chain 1.2 FC 联盟链 Go N/A N/A N/A N/A N/A

前面也提到区块链产品分为:底层平台、开放平台、应用场景。其中底层平台、开放平台都是大公司才能做的事情,大部分小公司和我们这种普通的技术狗基本是做具体的区块链应用项目。就像互联网时代,大部分公司都是做互联网的产品应用,而不是去从事基础的网络技术研发、云服务平台搭建一样。

清楚了这一点,那么对自己的定位也就更明确了,要学习和研究的方向也就有了。

十一、区块链招聘岗位

有意进入区块链行业的同学可以了解一下区块链的岗位以及要求。以下为某招聘网站上的区块链岗位和具体要求。

1、底层平台研发

熟练掌握Golang、Java、C/C++至少一种编程语言;熟悉各类加密、哈希、数字签名算法;熟悉Linux系统;对分布式一致性算法有一定研究;掌握非关系型数据库;了解Ethereum/Fabric等开源区块链平台;优秀的英语读写能力。

2、区块链应用研发

熟练掌握Java、C++、Go、Nodejs、Python等任意一门编程语言;熟悉Redis、Mongodb、Mysql等存储系统原理及应用;熟悉Linux系统;有区块链行业相关知识,熟悉Bitcoin,Etherenum 的区块链相关机制和原理;对计算机网络系统有深刻理解,熟悉分布式、点对点网络协议。

3、安全领域工程师

有安全背景,熟悉程序分析和相关自动化工具;对区块链以及区块链安全有一定程度的了解;熟悉智能合约,至少掌握一种智能合约开发语言,如Solidity;至少熟悉掌握一种脚本语言,如Python或JavaScript。

4、产品经理

区块链基本概览:交易、区块、节点、打包、智能合约、共识算法(POW、POS、DPOS、BFT)即如何对交易进行验证?确保全网络的一致性。

计算机专业知识:Hash算法、加密算法(对称加密、非对称加密)、数字签名的原理、P2P网络、存储/数据库(关系型数据库、非关系型数据库)、证书体系基本概念、云平台基础知识、分布式基础知识。

5、 市场运营
区块链基础知识

如果要去应聘区块链岗位,最好对以下问题要有一个基本的认识和了解,如:对区块链技术的了解程度;区块链的产生和发展、现状的考察;区块链的不可篡改性如何理解;区块链应用案例了解程度;区块链基础知识掌握程度。

十二、专业机构出具的区块链白皮书 & 推荐书籍

  • 工信部信息中心:《2018年中国区块链产业白皮书》
  • 中国信息通信研究院:《区块链白皮书(2018)》
  • 工信部信息化和软件服务公司:《中国区块链技术和应用发展白皮书》
  • 推荐书籍:《区块链技术进阶与实战》、《区块链项目开发指南》、《区块链启示录:中文聪文集》、《区块链技术与应用》

资料来源:

  • 《关于区块链,你不得不知的真相》
  • 《区块链工程师微专业系列直播课》
  • 首届区块链生态(大湾区)珠海论坛
  • 区块链逍遥子相关文章论点

你可能感兴趣的:(小白都能看懂的区块链入门篇)