更多微软Azure 动手实战视频,请关注公众号:算法
本文是前奏,原本要介绍Azure上的Azure Blockchain Service,发现,须要从什么是区块链开始讲起。。。数据库
什么是区块链?咱们从比特币提及, 2008年11月,中本聪提出了比特币白皮书,比特币系统从09年至今,未出现重大安全事故。编程
1.比特币的底层技术即是区块链;安全
2.比特币是点对点的电子现金系统(支付领域);app
3.该系统基于区块链技术构建;less
4.该系统经过区块链技术,使得点对点电子交易不须要中间方验证;分布式
5.具备实验性质,运行10年,未出现重大问题。ide
简单理解区块链,从一个故事提及:区块链
张三给李四转1000块钱的故事:ui
1.张三大吼一声,我给李四转了1000块钱;
2.张三附近的村民听到了这声呐喊,而后确认了张三有足够余额;
3.村民检查事后,每一个村民都在自家的帐本上记录:
张三转给李四1000,张三3000-1000=2000;李四200+1000=1200;
4. 张三附近的村民把转帐告诉邻村,邻村又告诉邻村,全球人都知道了并记录到了自家帐本上。
几个问题?
李四的问题:帐本会不会被篡改?
村民A的问题,为何要费力气给张三记录这笔交易呢?
全体村民的问题,以谁记的为准?
帐本会不会被篡改?
通俗理解,把一段时间内的交易放到一个区块中,经过对区块进行哈希运算(哈希运算理解为Hash算法能够将一个数据转换为一个标志,这个标志和源数据的每个字节都有十分紧密的关系。Hash算法还具备一个特色,就是很难找到逆向规律。原始数据中发生任何改变,哈希运算的结果都将发生变动),产生该区块的哈希值,该区块发生任何变化,区块的哈希值就会有巨大改变,讲哈希算法的结果写入到下一个区块中,将先后两个区块串起来。
若上一页帐单(区块)数据被修改,那它的数据指纹(哈希值)会发生改变,就没法与下一页帐单中记录的哈希值对应上。全部玩家就能识别出这是个被篡改的无效链,并将其抛弃。
因此,经过区块+链的方式,帐不可篡改。
做为普村A,为何要费力气记帐呢?
由于有好处,就是所谓的矿工激励,第一个得到记帐权的人,会得到奖励。
谁记得为准?
工做量证实(PoW),谁最早计算出某个题目的答案,就以谁的帐本为准,其余人复制该帐本。某个题目的答案,其实就是区块头中的随机数。
区块链的几个特色:
1.去中心化(Decentralized)去中心化系统,其没有中介机构,全部节点的权利和义务都相等,任一节点中止工做都会不影响系统总体的运做;
2.去信任(Trustless)系统中全部节点之间无需信任也能够进行交易,由于数据库和整个系统的运做是公开透明的,在系统的规则和时间范围内,节点之间没法欺骗彼此;
3.集体维护(Collectively Maintain)系统是由其中全部具备维护功能的节点共同维护的,系统中全部人共同参与维护工做;
4.可靠数据库(Reliable Database)系统中每个节点都拥有最新的完整数据库拷贝,修改单个节点的数据库是无效的,由于系统会自动比较,认为最屡次出现的相同数据记录为真。
区块链不是新技术,是一组技术的组合:
核心技术-分布式帐本
经过P2P的方式,将正确的帐本发送给其余人。
核心技术-密码学
主要在下一个区块中,存储上一个区块的哈希值。
核心技术-区块构成
核心技术-分布式共识
核心技术-智能合约
区块链的技术演进
广泛认为,区块链已经经历了三个阶段:
加密货币阶段:就是指以比特币系统为表明的加密货币阶段;
数字资产,加密金融:在比特币发展成全民挖矿的状况下,于2013年,以太坊创始人Vitalik Buterin发布以太坊第一版白皮书。以太坊引进了智能合约的概念,从真正意义上,能够知足商业化应用发布的需求。与第一阶段,只服务于比特币等加密货币不一样,区块链2.0阶段,依赖以太坊,能够用来编程、分散、担保和交易任何事物,实现了“区块链+”应用的蔓延、扩展。大部分的区块链应用,都是基于以太坊而成立,如以太猫,如元链星系等区块链游戏,还有各类加密狗等等。
随着区块链技术的进一步发展,其“去中心化”功能及“数据防伪” 功能在其余领域逐步受到重视。人们开始认识到,区块链的应用也许不只局 限在金融领域,还能够扩展到任何有需求的领域中去。因而,在金融领域之 外,区块链技术又陆续被应用到了公证、仲裁、审计、域名、物流、医疗、 邮件、鉴证、投票等其余领域中来,应用范围扩大到了整个社会。
三个阶段中,前两个仍是主要以公开的区块链为主,也成为公链,第三个阶段开始,则开始存在私链,联盟链等形式。
区块链的分类:
公链是指任何人均可读取的、任何人都能发送交易且交易能得到有效确认的、任何人都能参与其中共识过程的区块链。
公链采起了采起工做量证实机制(POW)、权益证实机制(POS)、股份受权证实机制(DPOS)等方式,并将经济奖励和加密数字验证结合了起来,并创建一个原则就是每一个人从中可得到的经济奖励与工做量成正比。这些区块链一般被认为是彻底去中心化的。
私链是指其写入权限仅在一个组织手里的区块链。读取权限或者对外开放,或者被任意程度地进行了限制。相关的应用囊括数据库管理、审计、甚至一个公司,尽管在有些状况下但愿它能有公共的可审计性,但在不少的情形下,公共的可读性并不是是必须的。
联盟链开放程度和去中心化程度是有所限制的。其参与者是被提早筛选出来或者直接指定的,数据库的读取权限多是公开的,也可能像写入权限同样只限于系统的参与者。
区块链的典型应用:币圈+链圈