本文是9月29日大数据杂谈群分享的内容。
关注“大数据杂谈”公众号,点击“加群学习”,更多大牛一手技术分享等着你。
说到区块链技术,我想大多数同学应该一脸茫然。但如果说比特币,大家应该基本都知道。
区块链技术就是比特币能够稳定运行8年左右的基石,但一直被比特币的光芒所掩盖。但最近一年以来,各行各业(尤其金融行业)对区块链技术爆发了极大的热情。
今天晚上,我(区块链小学生)将从 区块链定义、区块链技术三要素、区块链应用四展望、开源项目及国内现状5个方面为大家讲解区块链。
区块链技术到底是什么?很少有人能够解释清楚。现在市面上有很多关于区块链的书籍,内容基本都是,区块链能做什么,区块链的未来前景等等。
总的来说,区块链是一套协议,一组规范,而不是具体代码、项目。理解了这套协议,你可以基于现有的技术,以不同的语言去实现它。
我们也无法用一句简单的话去概况什么是区块链,站的角度不同,得到的结论也不一样。
金融业的人会说区块链是一个分布式的账本,是一个分布式的银行记账系统。
密码学者的会说区块链是使用密码学构建的去信任网络。
而我(码农)可能会说区块链就是一个确保最终一致性的分布式数据库。(ps:基于对IBM的超级账本Hyperledger项目fabric的认识)。
吃瓜群众可以从网络获取定义:区块链(Blockchain)是一种分布式数据库,起源自比特币。区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。该概念在中本聪的白皮书中提出,中本聪创造第一个区块,即“创世区块”。(摘自 维基百科)
但无论怎么定义,只要理解了其技术要点,每个人都会有自己的认识。
接下来,我从p2p网络技术、共识算法、加密算法三方面为大家讲解区块链。
p2p网络通信
首先,我们回顾一下软件系统架构
中心化
在互联网技术飞速发展的前半程,client与server的角色基本上是分工明确,1个server提供服务,n个client调用服务,这即所谓的中心化,系统的可靠性依赖server的可靠性。
分布式
随着业务复杂度上升、业务量激增,传统的中心化已经不能满足需要。这时候,服务分拆,横向纵向拓展变得理所应当,这就是我们现在所处的分布式系统架构,系统的可靠性依赖于分布式系统的容灾恢复能力。
去中心化
分布式架构给我们带来的便利性很容易让我们觉得这就是“完美无缺”的架构,但服务提供方还是只依赖某一机构。如果机构作恶,宕机,篡改数据,那么造成的后果我想大家都清楚。(如果不清楚,请脑补机构==支付宝)。
区块链使用的p2p网络通信技术或许给了我们另外一种选择:人皆生而平等,没有谁生来就是server,就是client。每个节点都是平等的,既是生产者也是消费者。
注:今天所说的去中心化是一个理想化的状态,就如同共产主义理想。现阶段来说区块链去中心化本质上是相对去中心化。
有人可能会问,p2p网络就能保证不作恶,不宕机,数据不被篡改么?别急,p2p网络只是为所有节点提供了信息交换的方式。做事的还是共识算法和加密算法。
共识算法
一提到区块链,所有懂的人都会说到共识算法,拜占庭将军问题,然后拽出一大堆高端大气上档次的英文缩写:POW,POS,DPOS,PBFT等等。听众一脸懵逼,而如果你让他详细解释,可能绝大部分人也解释不清楚,这就如同爱因斯坦的相对论。
但别担心,最简单的解释,共识算法就是保证少数服从多数!
大多数人认定一件事,这件事就是事实,也就意味着如果你要去改变一个既定事实,那么你必须伙同大多数人陪你一起作假。
在电影电视剧中,这种情况很常见,弱者屈服于强者做伪证。但在基于p2p通信的数以千计的节点中,想要伙同其他节点一起作恶,除非“大多数节点”都被统一组织(人)控制,有共同的利益,且利益大于付出,否则不可达成。
这里“大多数节点”加了引号,因为有些算法并不是在大多数的临界点51%时就能达成共识。如PBFT,需要66%以上的确定节点才能达成共识。
比如现在比特币网络有人就提出了这样的担心,因为大概有75%的算力被中国矿池掌控。
加密算法
说到加密算法,大多数码农都会想到诸如对称加密,非对称加密,hash, md5,des,rsa等。
加密的本质其实很简单,让信息真实、隐秘的交流及存储。真实性由数据签名保证,隐私性由数据加密实现。
区块链平台现在广泛使用的算法有椭圆曲线签名算法(ECDSA)、SHA256以及ripemd160,三者的结合使用保证了区块链在密码学层面上达到高度隐私。
结合
回到刚刚的问题:p2p网络就能保证不作恶,不宕机,数据不被篡改么?我们把区块链技术三要素结合起来探讨这个问题。
作恶:要在数以千计的平等节点之间寻找作恶同伙,通常作恶的收获还不如作恶的付出,这就从根本上杜绝了大量坏节点的出现。比如,比特币的POW共识算法,就算联合了比特币网络51%以上的算力去实现双花、硬分叉,得到的收益或许还不够交电费。
宕机:这个很好理解,所有的节点都是平等的,一个宕机了,不影响整个网络的持续运行。
数据篡改:这其实是作恶的子集,但是比较重要,拿出来说。区块链的一个重要特征就是时序性,前一时间产生的交易会影响后续所有交易(交易签名),如果想要篡改中间某一交易的数据,那么必须在此交易所在的区块开始分叉,产生一个新链,改变这之后的所有交易,而且还要比其他链的区块产生的速度更快,否则没有意义,因为区块链网络只认最长的那条链。(基于比特币区块链)
区块链金融
比尔盖茨曾经讲过一句话:“传统银行如果不改变思路,就是21世纪要灭绝的恐龙”。之前,我们都只是当做一句笑谈。就像马云爸爸说他这辈子最大的错误就是建立阿里巴巴。
在区块链技术被挖掘出来以后,这句话被反复引用,无论是否炒作,必须看到区块链在应对金融业务时拥有的得天独厚的优势,如果银行不思求变,那么被时代抛弃是必然。因此,诸如花旗银行、汇丰银行、摩根斯坦利等42家巨头银行加入由一家区块链创业公司创建的R3区块链联盟也就不难理解了。
未来世界是数字世界,数字资产会变成大家资产的主要凭证。金融的本质就是信用,如何在银行全面数字化过程中利用去信任的区块链技术,这必定是未来5-10年金融创业的黄金命题。
价值互联网
过去20年,我们亲眼目睹了互联网技术如何改变我们的生活,信息化的巨大变革彻底的改变(便利)了我们的衣食住行。实现了信息传播与分享的解放,是信息的去中心化。但互联网并没有解决财富与价值在互联网上的交换与转移。如果说现有的互联网已解决信息传播与分享的瓶颈,那么区块链要解决的就是资金、合约和数字化资产在互联网上交换、交易与转移的难题。未来20年,是信息互联网升级为价值互联网的创业潮。
共享经济
近两年来,滴滴与uber之间的互联网租车争夺战,将“共享经济”推到了风口浪尖。这种个人与个人之间直接共享闲置资产的方式将通过区块链更加流行。因为区块链网络作为一个去信任去中心网络,让人们摆脱了个人与个人之间的信任危机以及中心化的非市场化运作。比如法国一个去中心化的叫车平台Arade City,司机与乘客直接交易。
而我们公司现在也正在做一个共享用户闲置磁盘空间的区块链应用平台。我们相信,唯数据与空间不可辜负,基于区块链技术,可让闲置的空间存储可被信任的加密数据。数据可以是用户自己的照片视频,也可以是某组织的业务数据。
而对大数据分析来说,现有的大数据应用,数据都是存在一个中心化的厂商手里,谁敢保证数据拥有者不会因为自身的利益修改数据内容?而用了区块链技术保管的数据才能保证数据被所有人共同管理,不可篡改。
智能合约
智能合约也是现在很火热的一个概念。简单的说,智能合约类似于计算机语言的if语句,当一个预先编好的合约的某一条件被触发时,就自动在区块链网络中执行合约相应的合同条款,而不需人为干预。
按照这样的愿景,未来律师的职责可能会大变样,律师的职责不是裁定个人合约,而是生产智能合约模板。定制性如何,易用性如何将决定合约的价格或者律师的身价。所以才会有笑谈:不会写脚本的律师不是好的码农。
以前,重复造轮子是衡量一个公司技术能力的重要指标。但是随着开源精神的普及以及github平台的广泛使用,贡献开源项目已经是互联网公司的常态。
这里介绍两个比较出名的区块链平台开源项目。
超级账本
超级账本(hyperledger)是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目,加入成员包括:荷兰银行(ABN AMRO)、埃森哲(Accenture)、IBM等十几个不同利益体,目标是让成员共同合作,共建开放平台,满足来自多个不同行业各种用户案例,并简化业务流程。
超级账本项目很适合联盟链,私有链的构建。
现在超级账本的开源代码实现Fabric由IBM主持孵化,由go语言开发,现在版本为0.6, 坑还很多,需要时间来填,我们的项目也是基于Fabric。
所以,现在开始学习fabric,应该是比较好的选择。
以太坊
以太坊(Ethereum)是一个运行智能合约的去中心化平台(Platform for Smart Contract),平台上的应用按程序设定运行,不存在停机、审查、欺诈、第三方人为干预的可能。以太坊平台由 Golang、C++、Python 等多种编程语言实现。
前段时间的The DAO事件让以太坊平台损失惨重,以太坊也分裂成ETC和ETH,平台的发展前景不明。
布比
布比区块链已经广泛应用于数字资产、股权债券、贸易金融、供应链溯源、商业积分、联合征信、公示公证、数据安全等领域,并正在与交易所、银行等主流金融机构开展应用试验和测试。以多中心化信任为核心,致力于打造新一代价值流通网络,让数字资产都自由流动起来。
小蚁
小蚁是基于区块链技术,将实体世界的资产和权益进行数字化,通过点对点网络进行登记发行、转让交易、清算交割等金融业务的去中心化网络协议。
唯链
以区块链技术为核心,VeChain提供一套面向全球的真假校验和透明供应链管理的解决方案以应对全球泛滥的假货问题,同时使得消费客户更加关注所购买的产品本身,包括产地,材料质地,设计理念,品牌故事等等。
ASCH
Asch 是一个去中心化的应用平台。它提供了一系列的 sdk 和 api 来帮助开发者构建基于 Javascript 和侧链技术的去中心化应用。Asch 通过提供定制侧链、智能合约、应用托管等一体化的行业解决方案,致力于打造一个易于使用、功能完备、即插即用的系统。
云象
云象区块链为企业级的B端客户进行服务,提供身份验证、电子证据保全、供应链管理、产品追溯等商业智能合约应用,同时我们为行业私有链应用,提供不可篡改、安全、部署成本低的区块链数据库产品。
太一
太一云科技,拥有全球最顶尖的区块链研发团队,已研发包括区块链征信,区块链资产登记流转,区块链安全,智能合约,区块链大数据,区块链物联网,区块链云计算中心等领域的数十项核心专利技术。我们将立足中国市场,积极开展区块链技术的产业化应用,在金融,商业,个人及企业信用等社会活动中,植入区块链的基因,改变人们对传统信用机制的认知,重塑互联网的价值传输构架,为创造崭新的更合理更公平全球新经济和新金融生态环境提供普适化的基础设施和解决方案。
因为是入门分享,还有许多概念,诸如节点发现、双花、分叉、HD钱包、代币等未与大家分享。而且,区块链的应用方面绝对不止我上面提到的四点。感兴趣的童鞋可以自行探索。
问题1: 哪个开源的区块链比较方便的改改就可以自己架设一套币种?
回答:我说的两个开源项目,以太坊有自己的币,以太币。当然你可以把他的代码拿过来,自己构建一套网络。hyperledger的话是自身不带货币资产的,都是开发者自己去编写的。我们自己基于hyperledger实现了自己的货币。我推荐hyperledger。
问题2: 对于区块链有什么好的书籍或网站博客之类的推荐吗?
回答:http://qkldx.net/这是我们公司的,有相关问题可以直接在上面发言提问。
问题3:是不是如果我的运算机构超过51%,我就能掌握所有
回答:不是的,得看你的共识算法的实现,比如说比特币的PoW(工作量证明),所谓的51%,是你有那么大的机会去改变网络中的主链,不是说你就一定改变了,是概率性事件。
问题4:区域块技术有其他行业的应用场景不?
回答: http://www.lashouhuzhu.com/ 类似的网络互助平台。
问题5: 区块链在物联网有哪些成功案例?
回答:http://iotatoken.com/ 不知道这个算不算。
问题6:区块链的安全如何保障?区块链的具体运用有哪些?
回答: 小的方面,就得靠非对称加密算法。往大了说,得看平台所构建的这一套区块链协议是否完备完美。
问题7:技术小白想问下,除了律师,有哪些职业会因为区块链而改变呢。这会关系到普通人的投资理财吗?
回答:在我的理解里,区块链对终端用户来说,是透明的,不可见的。比如支付宝里的爱心捐赠 貌似就使用了区块链,但是用户是感觉不到的。
问题8: 我理解的区块链应该是一套公开透明协议,如何保证服务发行商不作弊,基于区块链应用都应该开源吗?
回答:私有链应该不用吧,但是公有链必须开源。
问题9:区块链在企业应用中,比如私有链的应用中,工作量证明是否是浪费资源,有何必要?
回答:肯定浪费,我们就没有使用。我们使用的是DPoS。
问题10:區塊鏈基於開源代碼,誰都能拿來改,以此項目創業未來有生存空間嗎?
回答:区块链应用可以使用现有的一些平台,比如以太坊,asch。不一定要每个创业公司自己搭建一套区块链系统。你可以理解为网站创业潮。
问题11:blockchain怎么解决广播问题的啊
回答:p2p网络技术。每个节点连接几个其他节点。消息首先发向连接自己的节点,每个节点收到以后,再向自己连接的节点发。这样一步一步的广播出去。
问题12:区块链超级账本 每个人手里都相当于有一份数据拷贝么?
回答:全节点有完整的数据拷贝。就比特币来说,全世界大概有5k多个全节点。
问题13:区块链需要广播出去,那怎么做到实时到账?
回答:现在区块链的qps是很低的,这确实是一个亟待解决的问题。至于实时到账,并不是所有的区块链项目都跟货币相关。现在相关的解决方案有闪电网络,lmax架构。
大数据杂谈
ID:BigdataTina2016
▲长按二维码识别关注
专注大数据和机器学习,
分享前沿技术,交流深度思考。
欢迎加入社区!