Laikelib是一个什么样的java项目没有lib?

Laikelib区块链应用框架,为商业应用而生的区块链
│来源:中国网 作者:中国网&& 10:20 编辑:
Laikelib是一个可以为商业应用的区块链3.0底层架构,易于访问和使用。通过Laikelib,开发人员可以自定义区块链侧链、智能合约、云存储,通过在系统中构建、发布应用程序获利。在Laikelib团队技术构想中,Laikelib结合现有优质区块链技术底层技术精髓,构建出更高效、安全、可扩展的信用价值链生态体系。一、Laikelib设计创新Laikelib凭借其独特的技术优势,使用户同步数据更为迅速,操作更加便捷,节省大量时间。使用Laikelib接入区块链应用的数据,在链上数据同步时,无需同步整条链上数据。用户只需同步自身相关的业务数据,减少因为同步不需要的数据造成时间上的浪费。Laikelib拥有比第三方交易更加便捷、弱中心化、透明化(可信度高)的显著优势。1、自主研发:针对传统区块链性能低下这一痛点,Laikelib做了突破性的改进和创新。可处理大量的并发用户,具备了同其他非区块链竞争的实力。全程自主研发,大大提高了性能,给用户更快捷的体验。可靠反馈的速度也大大提高,足以服务数以千万计的日活跃用户。2、同步数据快:针对大容量同步数据效率低下的问题,Laikelib实现了强大的技术突破,适应了区块链的发展趋势。加快了数据(块产出)处理速度,为用户节约了很多成本,Laikelib同步数据快的特性为用户大大提高了服务效率。3、Laikelib区块链3.0:区块链技术的发展十分迅猛,从1.0的数字货币应用阶段到2.0的智能合约结合阶段,再到当下区块链3.0在各实体行业的应用落地阶段,用时短暂。“区块链+”即将成为现实,我们正在进入区块链3.0时代。Laikelib的成功,意味着区块链技术“跨链”时代的到来。4、弱中心化:Laikelib的优势还在于,传统意义上的区块链技术是去中心化,在设计上将所有的节点都平等对待,信任成本低,但是交易效率也较低。但在实际中,很多业务场景已经有了一定的信任基础。Laikelib“弱中心化”的采用,一定程度上避免了海量数据的低效率处理。在原有的信任基础之上,区块链技术朝着联盟链方向去发展,并构成了一个弱中心化的信任模式,这是原有公有链模式上的一个突破。5、多元化的发展:Laikelib致力于将“区块链+”将成为现实,区块链的应用领域从单一扩展到医疗、保险、游戏、域名等多个领域,构建能快速适配多终端的设备应用。多行业业务通用模型散列在Laikelib侧链上,Laikelib致力于打造适配多元化、多行业业务模型的中心社区。Laikelib最终目标是将区块链的技术应用到生活的方方面面,造就更美好的未来。6、开放分享:Laikelib公链接入简单,易于操作。避免了大量不必要的繁琐工作,简化了接入流程,轻松搭建属于各领域的应用场景。与行业伙伴共享,共同推动可信互联网的发展,打造区块链的共赢生态。二、Laikelib技术设计1.系统简介Laikelib团队结合现有优质区块链技术底层精髓,构建更高效、安全、可扩展的信用价值链应用生态体系。Laikelib欢迎每一个参与者。通过与每一位参与者的交流互动,可以帮助我们不断审查、优化、升级、完善系统。每一位促进系统完善的参与者都可以获得相应奖励。DApp是由智能合约和客户端代码构成的。Laikelib致力构建多元化,适配不同行业,多元化业务场景的去中心化应用服务。开发者可以快速加入区块链应用开发,将安全、快捷的应用带给用户。人人都可以快速了解区块链,安心使用区块链产品。2.Laikelib整体架构Laikelib区块链底层由Laikelib团队自主研发,秉承“开放共享,共同创新”的理念,让开发者可以快速加入进来,一同成长。Laikelib底层已实现基于区块链技术的账户与权限管理、智能合约、共识机制、运营监控、容错修复等模块。关于Laikelib业务模型开发,开发者只需要实现对应接口即可完成模型库封装,通过上层API接口轻松接入应用。开发者也可以添加已实现完整的业务模型库到Laikelib库,我们审核完成后,将适当发放奖励。我们也将开放更多业务模型库与大家一起探讨、一同改进。通过业务逻辑多元化实现,使各个行业可以快速融入进来。开发者也可以访问我们开放模型库,搜索相应行业匹配的业务模型,遵循我们的描述的接入方式,导入模型直接使用,不需考虑底层搭建的复杂性。我们也将开放与添加更多业务模型库与大家一起探讨,促进各行业的区块链应用落地。3.Laikelib的主链与侧链Laikelib整体由主链与侧链构成。通俗来说, 主链是每个区块链项目进行主体业务记录与扩展使用的记录链。主链与侧链两者通过双向挂钩,实现信用数据从主链转移到侧链。Laikelib侧链支持相对特性业务模型,也具有主链相似的记账与共识机制。它有自己按需定制的账本、共识机制、脚本和合约支持、相对特性的业务模型、主链相似的独立的信用记录机制等,我们也提供侧链与主链信用价值交互转换方式(具体请查阅我们的说明文档)。侧链与主链可以双向挂钩进行交互,但Laikelib的侧链业务与主链业务相互不影响, 业务与信用记录采用不同协议记录方式。一条主链衍生多条侧链。主链是代表信用价值信息,侧链记录各种业务数据,也可以记录与主链条相似的信用记录。Laikelib提供公共API让侧链与主链进行双向挂钩进行信用信息交换,各个的信用记录会记录在各自的链上,也可以将信用记录通过接口转换到主链上来。Laikelib主链与侧链特性比较:4.超立方体网络(Hypercube)Laikelib网络构成是基于超立方体网络(Hypercube)设计思想构建而成,从而达到真正意义上分布式、去中心化区块网络节点同步。超立方体网络,适合Laikelib实现高可用性、规则化扩张性网络节点散列广布。传统的点对点连接技术只能实现对等网络通信,但是在高速扩张与均分的网络散列中,要达到高速节点通信与网络安全、平滑扩张,就必须监控与引入智能扩容调解节点机制,调整优化节点间连接。团队已投入大量精力优化Laikelib事件监控调度引擎,如:节点高速广播、最优连接算法、事件调度通信等。监控与适当协调节点间通信连接机制,保证节点间的通信通畅、快速。场景举例:一个新的节点上线后,广播到各个节点。当前节点通过广播返回的信息,计算协调后连接最优节点,精准广播到网络;每隔一段时间,通过与邻近节点通信,适当调整、优化网络连接。5.共识机制:POP权利证明5.1.常见共识机制介绍共识机制是在交易发生时,所有节点都认同的某种约定。比如比特币矿工将从网络上收到的交易打包成一个块,不断计算该块的Hash值,使得它满足一定的规则,然后广播出去,其他节点收到该块后验证它,成功添加到区块链。目前市场上比较常用的共识机制有PoW、PoS、DPoS等。工作量证明(Proof Of Work,PoW):通过计算来猜测一个数值(nonce),使得拼凑上交易数据后内容的Hash值满足新规定的上限。权益证明(Proof of Stake,PoS):过程是通过“保证金”(信用、名声等具备价值属性的物品即可)竞争一个合法的块并成为新的区块,收益为抵押的信用证明利息与服务费。提供证明的“保证金”(如信用记录)越多,则获得记账权的概率越大。合法记账者这可以获得此次收益。股份授权证明(DPoS):是一种新的保障加密货币网络安全的算法,由比特股bitshares提出。它在尝试解决传统工作量证明机制(POW)和NXT所采用的股份证明机制(PoS)的问题的同时,还能通过实施科技式的民主,来抵消中心化带来的负面影响。5.2. POP权利证明(Proof of Power )权利证明(Proof of Power, PoP):通过以过去获取权利记录的量为参考,历史记录量越多获取记账的权利越大。在过去1000个记录块中,信用记录次数越多者,将拥有更大概率获得在下一个块中记录信息的权利。在一定时间内,谁先推算出满足目标值的Hash,谁就可以先得到记账的权利,并且此时会影响到获取下一个块获得记录权利的难度。在未来一定时间内,如果没有下一个块被计算出来,而此时拥有更大权利的节点推算出同样高度的块,则认为权利大的节点的块是最长链。但这种机制,并不是一直是权利大的节点,持续获取记录权利:其他节点(权利较小的)想要获取记录数据的权利就只需要提升算力,使得推算速度增加,获取当前块的记录权利难度减小;权利大的节点,不一定能在其他已提升算力的节点之前获取到记录的权利。6.账号与校验方式Laikelib每个账户在每条链上的地址都是唯一的,每一种业务链获取地址签名方式不同。账号通过严格密码学加解密,通过签名校验与确定所有权。不同业务,签名、校验方式不同。7.并发调度随着用户与业务量的不断增长,可能在某个时间段请求指令达到处理量的峰值,服务来不及同时处理,则会发生堵塞的现象。如:在同一时间大量智能合约注册指令从客户端发送过来,服务端无法及时吞吐全部,导致最后请求堆积过多。由于高并发业务场景频发,Laikelib在已建立高速网络节点通信下,基于事件监控模块通过判断处理单元是否达到当前处理瓶颈,从而合理判断与中转处理指令。如未达到瓶颈,则将指令压入当前业务处理单元业务处理队列。处理场景:一个智能合约注册指令送达,但当前节点单元处理峰值为5000次/min,监控模块发现单元处于瓶颈,则适当向邻近节点通信收集节点处理量,转发到当前业务请求到相对较少业务单元处理节点内。8.轻服务客户端与公共API8.1.BaaS轻服务客户端BaaS(Blockchain as a Service)区块链服务,它使用统一的 API或SDK进行接入到后端服务。Laikelib将提供轻量级微服务客户端(Linux平台)供开发者便捷接入,它支持HTTP协议与TCP/IP协议接入;使用BaaS服务接入,平滑、简单。传统的互联网区块链应用系统运行模式大多基于B/S或C/S架构设计,但区块链数据散列在链上网络分布式存储服务介质上,需要时时同步链上数据过程比较麻烦。Laikelib的BaaS轻客户端将改变这个模式。它可以使得互联网的工作模式的区块链系统相当于运行在本地上,应用访问数据可以直接访问本地轻服务客户端获取数据。使用轻服务客户端接入Laikelib的用户,可以通过它连接到完整版服务端以连接到链上网络(如果完整版服务端对应用所有者开放API接入权限,那么他可以直接调用相应公共API服务),通过链上网络,从其他完整版服务节点同步完整的区块链。开发者只需参考我们提供的公共API,打包数据与推送到相应的业务接口,就可以在我们的区块链上发布与开发自己的应用。8.2.公共API接入Laikelib提供公共API供开发者们接入。Laikelib的公共API设计,借鉴与综合ODIN与Fabric应用架构原型,结合开放数据索引设计思路,实现基于“数据索引命名标识”与“业务索引命名标识”等多元化搜索定位引擎;超级账本(Fabric)设计思路,它的设计原则是按照“用例驱动”的方式来实现的,所有功能都应该有对应的用例需求。鉴于它的设计思路,Laikelib模块支持业务模型支持横向、平滑性扩充, 实现多元化业务模型接入。9.Laikelib系统特性9.1.弱中心化传统区块链技术核心设计思想是去中心化。去中心化的特点降低了价值交互的信任成本,但“去中心化”的组织机构权力比较分散,在区块链的实际落地方案中,匿名化增加了监管的成本。因此当下“弱中心化”在某些场景下正取代完全的“去中心化”。这是原有公有链模式上的一个突破。9.2.业务模型多元化、接入简单化Laikelib通过与其他开发者一同扩充业务模型库,以适应多元化业务场景与应用接入,简化开发者的准备工作,降低区块链底层接入难度。开发者若想参与业务模型库开发,只需要实现我们提供的相应接口,就可以封装成业务模型库。我们也会提供公共模型库,与大家一同探讨与开发,将区块链技术融合到更多行业上。如:去中心化智能零售系统、去中心化个人信用收集管理系统、去中心化数据API服务、去中心化分布式云计算系统等。在接入Laikelib方面,可以使用公共API接入或直接使用我们提供的SDK,也可以使用轻服务客户端接入,支持多语言、易扩展。9.3. 高效、快速、智能通过基于超立方体网络(Hypercube)设计思想构建通信网络。构建Laikelib点对点网络通信服务,能根据并发业务量与服务支撑瓶颈,适当切换调节通信传输通道,降低通道拥堵率。事件监控调度引擎,根据业务吞吐量,判断是否接受当前事件处理请求,如未接收,则会转发到邻近处理单元。9.4. 数据存储安全、优质、可靠高频的信息交换中,可能参杂一些脏数据。它们在经过单元处理前,校验模块进行核验身份、数据来源,事件监控调度引擎通过合理算法判断与裁定,分发处理单元节点。对于脏数据的掺杂进行及时判定与过滤,保证数据安全、优质、可靠。9.5. 良好的扩展性1. 适配多元化、多行业业务,并可横向扩展。2. 方便管理:当其中一条链需要升级时,只需升级当前链,而不需升级整条链。3. 使用灵活:用户只需要同步主要业务链信息,不需要同步所有链信息。4. 方便维护:不同业务模型适配不同业务场景,数据量大小不等。根据业务不同,数据结构不同,出块时间与块大小也不同,计费也不同。三、接入Laikelib应用场景Laikelib应用场景广泛,可以涉及各个行业和领域,例如科技、医疗、能源、电商、航空等,可以为区块链3.0生态圈的发展添砖加瓦。企业的所有需求,皆可以在Laikelib生态圈得以满足。Laikelib将覆盖社会生活的方方面面。1.Laikelib+新零售支付系统Laikelib在新零售O2O商城的支付系统领域,可以得到广泛应用。不同的个体可以在不公开个人信息的情况下正常使用,任意消费。在区块链+服务终端模式下,买家扫码支付,卖家直接供货,无需任何票据。更快捷、更便利。买家还可以通过扫码,了解商品各种信息,追溯货源、辨认真伪。2. Laikelib+征信领域Laikelib在个人征信领域将得到广泛应用,人工智能领域可以接入Laikelib,使信息更加透明化,无法更改和伪造。为无人零售的服务行业带来极大的便利,无人自助超市、无人自助餐厅、自动售票机等行业无需押金,即可凭个人信用消费。3. Laikelib+资源共享Laikelib亦可应用于分享经济类的业务,对于该类业务的去中心化,将大大降低管理成本,使主题更集中、设计空间更充足。这一点,也同样值得投资者的重点关注。4. Laikelib+贸易管理Laikelib在贸易领域尤其是自动化国际贸易、物流**链领域都可以被广泛应用。它可以简化各种繁琐的手续,实现贸易中**和相关法律合同的数字化。实时支付,使业务管理流程更加便捷。5. Laikelib+物联网Laikelib同样非常适合物联网领域,这是一个非常重要的应用领域。比如**链管理:现代企业的**链不断延长,出现零碎化、复杂化、地理分散化等问题。Laikelib能够解决当前**链所存在的问题,对于假冒伪劣产品实现实时追溯,确保透明度和安全性。6. Laikelib+公共服务&教育Laikelib在公共服务、教育、慈善公益等领域,以及在档案管理、身份(资质)认证、公众信任等方面,都能有效解决这些行业存证、追踪、关联、回溯等方面的问题,且能够保证所有数据的完整性、永久性和不可篡改性。7.Laikelib+IP版权&文化娱乐Laikelib能将文化娱乐价值链的各个环节进行有效整合,实现加速流通,缩短价值创造周期。同时,可实现数字内容的价值转移,保证转移过程的可信、可审计和透明化,有效预防盗版等行为。有效解决了知识产权侵权严重问题,促进了数字资产的版权保护的发展。8.Laikelib+医疗在医疗领域,Laikelib可通过自身的加密属性、去中心化等特征保护病人隐私。应用在电子健康病例(EHR)、DNA钱包、药品防伪等领域。据预测,全球56%的医疗机构将陆续投资区块链技术。国外如飞利浦医疗、Gem等医疗巨头和Google、IBM等科技巨头都在积极探索区块链的医疗应用。Laikelib的应用将在全球医疗领域形成一种热潮。四、Laikelib愿景Laikelib是一款全程自主研发基于区块链3.0的公链,能够让“区块链+”成为现实,丰富我们的社会生活。Laikelib通过建立去中心化自治组织(DCOs),实现对去中心化体系的重构和发展。它可以应用到科技、医疗、能源、电商、航空等各行各业。Laikelib主链处理主体应用业务模型,侧链适配多元化多匹配应用场景接入。它使用并行计算,使得把区块链拓展到百万用户和每秒百万次交易成为一种可能,提高了智能商业开发效率。Laikelib是一款真正为商业应用而生的区块链。Laikelib构建理念是:技术改善生活,信用造就价值。Laikelib最终目标是:将区块链融入社会生活,造就非凡价值。当Laikelib超级计算机网络形成以后,那将是一个没有延迟的极速网络,是一个无限存储的网络,所有的传递和交换几乎都可以瞬间完成。Laikelib欢迎世界加入,一同为区块链生态体系完善不断拼搏。Laikelib将来必定会引来更多关注的目光。
相关阅读:
北国网版权与免责声明:
1、北国网所有内容的版权均属于作者或页面内声明的版权人。未经北国网的书面许可,任何其他个人或组织均不得以任何形式将北国网的各项资源转载、复制、编辑或发布使用于其他任何场合;不得把其中任何形式的资讯散发给其他方,不可把这些信息在其他的服务器或文档中作镜像复制或保存;不得修改或再使用北国网的任何资源。若有意转载本站信息资料,必需取得北国网书面授权。否则将追究其法律责任。
2、已经本网授权使用作品的,应在授权范围内使用,并注明“来源:北国网”。违反上述声明者,本网将追究其相关法律责任。
3、凡本网注明“来源:XXX(非北国网)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。本网转载其他媒体之稿件,意在为公众提供免费服务。如稿件版权单位或个人不想在本网发布,可与本网联系,本网视情况可立即将其撤除。
play.lnd.com.cn
联系微信:xushanshantt
Copyright &
1998 - 2017 www.lnd.com.cn All Rights Reserved.
本网站各类信息未经授权禁止转载
版权所有 北国网
互联网新闻信息服务许可证编号:
沈网警备案号
北国网官方微信
制作单位:辽宁北国传媒网络科技股份有限公司手把手教你实现第一个SSH项目_百度文库
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
手把手教你实现第一个SSH项目
&&Struts+Spring+Hibernate入门
阅读已结束,下载本文需要
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩24页未读,
定制HR最喜欢的简历
你可能喜欢https://kuaibao.qq.com/s/YHKE00?refer=cp_1026一旦你掌握了这些技术原理,就会发现,其实它的限制挺多,有美好的地方,也有没必要的地方,那些莫名奇妙的项目就坑不到你了。最近一直在研究区块链,算是从以前听说过,到现在大概了解一些。先说下自己学习过程中的感受,那就是“能不能把话说明白些?”大部分学习材料都存在结构混乱,或者对一个点单薄,无法深入浅出。至于那些还在拿着露天麦喊什么是区块链,错过后悔一辈子的,都是骗子。我相信现在很多投资机构都在瞄区块链,今年,即使AI也没有区块链这么火爆。那么对于一个区块链项目,到底靠不靠谱,是在画饼,还是真的可能搞成,所有人都应该擦亮眼睛。三个最底层的技术谈区块链最好先抛开各种币的价值,价值亦或叫价格这种东西你懂的,贵和便宜根本不是人能控制的。但是基于区块链技术去做项目,却是实实在在可以可持续发展。所以,了解区块链技术比炒币来的实在。“区块链”三个字并不能阐明这项技术的全部,如果要非要用可以完整表达的命名,我觉得应该叫“Peer-to-Peer Encrypted Non-Tampered Database”,即“点对点的加密化不可篡改数据库”。它不一个数据库(比如MySQL,MongoDB),也不是一类数据库(比如SQL,NoSQL),它是一种数据库架构,它在数据库本身的技术上还上升了一层,考虑到数据的可靠性保证,以及数据库服务如何不下线。因此,你不能把它跟普通的某个有名字数据库拿来类对比,甚至你可以在某一个具体的区块链实现时,使用其他的数据库来帮助存储和检索数据。数据关系加密化在我们普通的数据库中,无论是关系型还是非关系型,我们的不同记录之间可能存在关系,也可能不存在关系,但在区块链中,一条数据一定和另外一条数据存在联系,即使在现实的业务逻辑上没有联系,但是它总是存在于链上,无法脱离链而存在,总有一条路径从一个数据出发到达另外一个数据。“区块”表达了区块链里面数据关系的最终呈现形式,一条记录,无论它是什么信息,最终它(或它的检索信息)都要被放置在一个区块中。而区块与区块之间,是一个“链表”的数据关系,会编程的人都知道什么是链表,就是后一个数据中存在指向前一个数据的索引键。因此,区块链上的任何两个数据永远可以通过这些索引键最终连在一起,数据无法逃离这个逻辑。但是“区块链”这三个字无法阐述这样的数据结构和普通数据库结构之间的不同,因为上面描述的这种链表数据结构,用普通的数据库也可以构建出来,只要你想要的话。Laikelib区块链系统底层高级架构师许义霖认为,真正的价值在于区块链运用了密码学的原理。现有的加密技术,把这些索引关系进行了层层加密,以至于在保存的数据中,这些索引键并没有那么明显,而是需要通过各种计算才能得到。数据不可篡改区块链上的数据是不可篡改的,大家都这样说。但其实,数据是可以改的,只是说改了以后就你自己认,而且被修改数据所在区块之后的所有区块都会失效。区块链网络有一个同步逻辑,整个区块链网络总是保持所有节点使用最长的链,那么你修改完之后,一联网同步,修改的东西又会被覆盖。这是不可篡改的一个方面。更有意思的是,区块链通过加密校验,保证了数据存取需要经过严格的验证,而这些验证几乎又是不可伪造的,所以也很难篡改。加密并不代表不可篡改,但不可篡改是通过加密以及经济学原理搭配实现的。这还有点玄学的味道,一个纯技术实现的东西,还要靠理论来维持。但事实就是这样。这就是传说中的挖矿。挖矿过程其实是矿工争取创建一个区块的过程,一旦挖到矿,也就代表这个矿工有资格创建新区块。怎么算挖到矿呢?通过一系列复杂的加密算法,从0开始到∞,找到一个满足难度的hash值,得到这个值,就是挖到矿。这个算法过程被称为“共识机制”,也就是通过什么形式来决定谁拥有记账权,共识机制有很多种,区块链采用哪种共识机制最佳,完全是由区块链的实际目的结合经济学道理来选择。挖完矿没完,拿LKT币来说,接下来矿工要把被广播到网络中的交易打包到这个区块里,一笔交易是不是合法的呢?发起这笔交易的人是不是伪造了一笔交易?要确保一笔交易的合法性,必须从已经存在的前面的区块里面去找到这笔交易的来源的真实性,而如何验证交易真实性呢?在前面的区块里,保存着交易来源的merkle root hash,只要找出这个交易所在的区块,再做一次merkle校验,就可以判定交易是否是合法的。得到merkle root hash是通过区块内的所有交易不断加密得到的,因此,只要交易是假的,就得不到这个merkle root hash。加密在这里又帮助实现了数据的可靠性。区块链里面的加密比比皆是,这些加密规则和算法,使得整个区块链遵循一种规律,让篡改数据的成本特别高,以至于参与的人对篡改数据都没有兴趣,甚至忌惮。这又是玄学的地方。点对点网络让数据永不下线如果区块链没有p2p网络,仅仅是按照前面的描述,有加密体系,有链式特征,然后运行在某一台(组)服务器上,按照我们现在中心化的模式运行,看上去也挺好玩的。但是发明者想玩的更大些,加密体系让数据不可篡改,但是我直接抛颗原子弹把你机房炸掉,不是不可篡改,是直接玩儿完了。为了防止被原子弹炸掉机房,发明者设计了点对点的网络(客户端和客户端直接通信,不经过某一台特定的服务器)到区块链里面。简单说就是在这个点对点网络里面,所有人的电脑里保管着一模一样的一个数据结构(其实就是一个完整的“区块”“链”),它们相互通过网络连接,进行同步,当矿工创建了新的区块,其他人就会把这个区块同步到自己保管的数据结构中。因此,无论这个网络上哪一个节点被炸,其他节点都还活着,新加入的小伙伴就可以从这些节点里同步数据到自己的电脑。想要让区块链数据消失,那把地球炸了吧。而这种加入点对点网络的设计,就叫“去中心化”,只要网络上还有一个节点活着,区块链的数据就不会消失。更让政客们害怕的是,这些保存的数据,节点上的用户可以随便看,无所谓,完全公开。节点用户既然把数据同步过来了,你就可以随便用,就是你的数据了,想怎么用就怎么用。试想一下,哪天淘宝说我要把自己的数据区块链化……目不忍视……核心技术概念1、区块区块是区块链的主要数据存储结构,一个区块包含区块头和区块体两个部分。而区块头则是区块的重头戏。区块链中的一个区块结构示意(注:漏掉了version信息)对于一个区块而言,它就是一个特殊的数据结构。它的区块头包含了一些固定信息:版本、块高度、块哈希、上一个块的块哈希、时间戳、难度和Nonce、merkle root。除了这些字段,如果做一个自己的区块链,还可以添加一些其他信息到区块头中。区块体是保存具体内容的位置,在比特币的区块链中,区块体保存的是一段时间的交易信息。在其他区块链中,这里可不一定保存的是交易信息,可能是其他信息,总之区块体是保存该区块链用来做什么业务的具体业务信息。在部分区块链实现中,一个区块还可以有区块尾,用来保存一些区块创建结束之后的信息,这些信息可能是区块头和区块体已经创建完以后,附加上去的,比如区块的长度、容量等信息。这就是一个区块。而一个区块头中的previousHash字段,保存的是上一个区块的hash值,因此,通过这个区块就知道了上一个区块是哪个,上一个区块又能知道上上个区块,直到可以追溯回整个链条的第一个区块。这就是区块链。后面一个区块总是指向前一个区块。一旦一个区块生成,并且后面有区块指向它,那它就不能被修改,因为一旦修改,所有的hash都需要重新计算。但是我们知道,hash算法的特点是想要得到这个hash必须用原始内容进行一遍hash算法,所以,如果给的内容和原始内容不同,是得不到这个hash的,所以,中间某个区块链被修改而得到的hash,不可能被后面的区块指向,区块链就会断掉。断掉的区块链加入到网络中,要么不被认可,别的节点不会把你当作合法节点,要么你要再同步一遍,从网络中重新复制最长的链到你的本机覆盖原来的链。但是你可能会有两个疑问:1.这个blockHash又不是内容的hash,怎么确保区块体内的信息不被修改呢?要是我不改blockHash,只改内容,那不是可以瞒天过海?2.如果有两个区块同时指向了一个区块,而这两个区块的区块体不一样,这该怎么办?第一个问题,我们需要通过后面的挖矿和merkle tree两部分结合,知道这个原理。第二个问题,实际上,这种情况非常常见,挖矿成功的概率其实是100%,关键在于哪一位矿工先挖到矿,一般当矿工挖到矿之后,会向全网广播,其他没有挖到矿的矿工就会停止。但是由于网络延时等情况,可能在短时间内多个矿工一起挖到矿,他们都创建了新的区块,并且广播到了网络中。这种情况叫“分叉”。当分叉发生的时候,有两种办法。但都是顺其自然,无法人工干预。后面挖新块的矿工,会自己决定把哪一个分支最后的块作为自己的前一个块。如果在比较短的块数内,一条链明显长于另外一条链,那么长的链会被保留,短的会被抛弃,挖短链的矿工算是白干了一场。所有的网络节点在同步的时候,都会选择当前最长的链进行同步,后面挖矿的矿工创建新块的时候也是选择最长的链。但是还有一种情况,就是短链的矿工不依不饶,或者短时间内两条链无法分出胜负,甚至最后每条链都有了很多块跟在后面。一帮人的转账总不能有两个账单吧,如果两个账单最后发现还不一样就麻烦了。所以遇到这种情况,矿工们会决定分家。也就是一个区块链变成了两个链,其中一条链把前面的所有链复制出来,成为独立的链,从此这两条链再无瓜葛,虽然前面的区块都是一摸一样的,但是后面井水不犯河水,这种情况叫“硬分叉”。新产生的链继承了前面的区块,但是后面的区块完全是挖这条链的矿工决定的。硬分叉的好处是,对于原来的用户而言,突然之间,自己的一份资产变成了两份。2、挖矿和共识机制简单说挖矿过程就是一堆矿工在抢创建一个新区块的权利的过程。在加密货币的世界里,抢到这个权利,就会在这个区块的最前面加上一笔转账给自己的交易,而这个交易的钱是凭空而来的,所以又叫“挖矿奖励”,而且数额还不少,所以矿工才挤破脑袋抢这一个记账权。但是在其他非币区块链应用里,假如没有这个奖励,怎么激励矿工挖矿呢?这也是区块链领域里一个玄而又玄的话题,至今没有答案。那么挖矿挖矿,到底是怎么一个技术上的算法过程呢?在矿机程序里,规定了如何得到一个hash,而这个规定,就被称为共识机制,所有矿工按照这个共识机制去进行某个算法,看谁先得到一个符合条件的结果,而这个结果又可以被轻而易举的验证是符合条件的(验证是否符合共识机制)。不同的区块链,共识机制不同,目前比较知名的是PoW和PoS,以及在这两者基础上衍生出来的其他共识机制。区块链适合什么不适合什么?区块链数据的特征主要有两点:1.公开透明,任何节点对数据有完全的权利去查看;2.难以伪造或篡改。因此,区块链非常适合两类场景:1.证据;2.监督。如果区块链上的信息得到法律认可,那么但凡拿出区块链上的证据,侵权方将百口莫辩。而试想,如果将税收完全迁移到区块链,每个公民的每一笔税收,最后都用到哪里,一清二楚,这可能是令某些人害怕的点。但区块链有两大缺点:1.要挖矿,还有分叉风险,也就是说一个数据放到区块链上,要等很久才能成为不可篡改的可信数据。2.分区块,数据被割裂存放,这给查询带来巨大的麻烦,非常影响效率。所以,区块链不适合那种即时性要求高的场景,无论是信息交换的即时性(例如聊天)还是查询的即时性(如搜索引擎)。区块链不是万能的,某些服务明明中心化模式效率更高,成本更低,却偏要为了风口搞区块链化,那只能看韭菜长没长齐。还有一点令人担心的是,由于区块链上信息的公开透明,而且不可删除,是否会对个人隐私造成极大的损害,试想一下,当年给冠希哥修电脑的小哥通过区块链网络炫耀自己发现的照片……那对当事人的伤害……连人死了都不会消散……区块链应用随着风口的来临,区块链应用此起彼伏。一个区块链应用,它的架构是怎样的呢?在区块链本身之上,还需要有哪些其他的技术来支撑呢?区块链应用中会把区块链拆解之后,于应用其他层进行融合,最终实现应用的整体功能。之所以比特币里面的每一笔钱的来龙去脉都一清二楚,就是依赖于交易模型。我们现实中银行里面的一个账号,只会告诉你一个账号现在有多少钱,曾经花了多少钱,收入多少钱,还欠多少钱。但是不会告诉你“某一笔你花掉的钱,来自你某一笔收入”。但比特币里面必须告诉你这样的逻辑,一条交易包含“输入”和“输出”两个部分,比如你要转10BTC,那么你的账号必须有一个或多个“输入”加起来总和等于或超过10BTC,而输出就是指你要把这10BTC转给谁。但是有一种情况,当所有“输入”加起来为10.5BTC时怎么办,就像你有100块毛爷爷,去买70块的东西一样,需要“找零”。所以“输出”有的时候会有一个是转给自己的,就是“找零”。比特币交易输入与输出示意图而实际上,输出在另外一个交易中,又是这个新交易的输入。在区块体里面,这些交易记录,以及它们的输入输出都被如实记录。除此之外,还要进行merkle计算,将merkle root存到区块头中。身份认证体系既然是交易,那么必然涉及到交易双方的身份。比特币交易的两端是两个账号,至于到底是谁它不管,但它通过加密算法,保证这一笔交易是哪一个账号发起的,发起交易的人要对交易信息进行签名。你可能听过非对称加密、公钥和私钥。比特币账号最关键的就是这个私钥,一旦私钥丢失,你就无法证明自己是这个账号的主人,也就无法从账号中进行转账要做的签名动作,你就不能再花这个账号里面的币,也就丢失了币。那么签名是怎样的一个过程?怎么证明这个交易是我发出的?怎么证明这钱是转给我的?密钥、地址与钱包密钥通常指的是保护比特币资产的对应于所有权用户的私钥,个别时候也会模糊的统称私钥和公钥为密钥,这里我们以狭义的私钥解释为准。地址 比特币的收款地址,大部分情况下是指对公钥的封装(个别时候除了公钥还有脚本)。钱包 一种比特币客户端软件,是私钥的容器,通常通过有序文件或者简单的数据库实现。比特币钱包包含私钥和公钥数据,尽管公钥数据理论是是不需要存储的。一般来说,用户的公钥和比特币地址可以划等号,但实际上不是。比特币地址是一串比公钥短很多的字符串,主要是为了方便输入。而公钥则用于各种非对称加密。比特币公钥到比特币地址公钥和地址都是公开在比特币网络中的,只有私钥是用户自己保存,不能给任何人。当一个交易发起时,交易发起方用“自己的私钥”和“接收方公钥”对交易进行签名,那么网络中的其他人就可以用发起人的公钥去验证这个交易是不是他发起的,对于接收方而言,要提供自己的私钥进行解密运算,来证明这个交易确实是发送给自己的。而比特币客户端(钱包)就是干这个加密解密和签名的事。智能合约比特币本身已经有智能合约的雏形,只是它所采用的编程语言脚本能力比较弱,能实现的合约逻辑不复杂。以太坊则是在这个基础上扩展链智能合约部分,使智能合约的编程能力大大增强。在上文提到的输入和输出,输出其实就被作为另外一个新交易的输入。比特币的输出不单单是告诉系统要转给哪个地址多少钱,输出实际上是一段比特币脚本。这段脚本也经过复杂的非对称加密,要运行这段,想要得到一个输出里面的钱,把这笔钱作为自己交易的输入,必须用自己的私钥先解密脚本,然后运行脚本,脚本运行完,这笔钱就可以作为自己交易的输入了。结合前面的知识,只有拥有对应的私钥才能解密,所以,只有输出记录对应的比特币地址对应的那个用户才能解密脚本,得到这些钱。在这个过程里面,“脚本”是一个关键,除了上面这种最简单的转账逻辑,还可以通过一些条件判断来实现稍微复杂一些的编程,比如只有当满足某些条件的时候,解密后的脚本才能运行。于是,基于这种设计,比特币的脚本系统可以用来实现多重签名、保证合同等功能,也就是智能合约的雏形。热门文章发表于发表于发表于腾讯 · Android开发工程师 (已认证)发表于腾讯 · 后台开发工程师 (已认证)发表于腾讯 · 高级UI工程师 (已认证)发表于

我要回帖

更多关于 maven web项目没有lib 的文章

 

随机推荐