区块链 p2p网络协议技术中的协议层和扩展层的作用是什么?

区块链的架构可以分为三层:协议层、扩展层、应用层。各个层级之间相互独立,同时又相互联系,不能被分割开运作。由于协议层对于整个区块链的架构是非常重要的,因此我们要详细的介绍协议层级的构造。1.协议层的地位区块链最基本的架构层就是协议层。这个层级又分为两个部分——存储层、网络层。协议层的主要功能就是维护网络节点,只为提供Api供调度使用。如果把整个区块链看作一个大楼的话,那么通常协议层就可以说是这栋大楼的地基,因为它为这栋大楼提供了建立的根本需要。搭建网络环境、驾立交易渠道,规定节点奖励制度等这些大方向的区块链运行要素。至于其他的个体运行活动,例如你要买什么,要做什么,协议层是不会干预的,也干预不了。因此,在区块链中,协议层也可以看作是我们的电脑操作系统。2.协议层的内部构造这个层面又从内部分成了存储层和网络层。在网络层中,各个计算机节点相互连接相互作用,这些服务器通过挖矿、投票等共识算法保障节点安全。在得出相应的数据之后,网络层会在确保安全可靠的情况下将这些最快最好的数据传输到存储层,进而存储层将其储存初始化。数据存储可以相对独立,选择自由度大一些,可以单独来讨论,选择的原则无非是性能和易用性。我们知道,系统的整体性能,主要取决于网络或数据存储的I/O性能,网络I/O优化空间不大,但是本地数据存储的I/O是可以优化的。3.协议层的应用技术在协议层所用到的主要包括网络编程,分布式算法、数据存储技术以及加密签名等四个方面。网络编程是通过使用套接字来达到进程间通信目的的编程。它的最主要的工作就是在发送端把信息通过规定好的协议进行组装包,在接收端按照规定好的协议把包进行解析,从而提取出对应的信息,达到通信的目的。网络编程能力是选择编程语言的主要考虑因素,因为分布式算法基本上属于业务逻辑上的实现,其他任何语言都可以做到。比如加密签名技术是直接简单的使用,数据库技术也主要在使用层面,只有点对点网络的实现和并发处理是开发的疑难之处。所以对于编程能力强,对并发处理简单的语言,人们就特别的偏爱。分布式算法、加密签名等都要在实现点对点网络的过程中加以使用,所以自然是网络层的事情,也是编码的重点和难点。&当然,也有把点对点网络的实现单独分开的,把节点查找、数据传输和验证等逻辑独立出来,而把共识算法、加密签名、数据存储等操作放在一起组成核心层。
当前账户总金币:0
请选择打赏金额:
100
300
500
1000
1500
2000
声明:万链之家登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。
『万链之家』个人作者
160000所得总金币
万链之家06.12 18:05万链之家06.11 16:50万链之家06.09 15:54
热门文章
最新信息:由原ripple(瑞波币)创始研发团队全力打造的...
CoinXP公链宣布获多家机构投资据官方消息,CoinX...
小牛情报 致力于做币圈第一情报软件小牛情报,是国内专业的独...
沙特利雅得市政府与IBM合作开发政府服务区块链解决方案7月...
AION今日将发放6.25%的代币份额据AION官方消息,...
官方客服微信号
万链之家公众号区块链底层技术和协议层的项目
关注区块链的投资者也许都有所了解,例如国外的比特币区块链、以太坊、超级账本fabric,国内的33复杂美、布比、云象、银链等等。
共识机制、协议的通用性、安全性、撮合并发交易量等等,投资人听得稀里糊涂,很难甄别优劣。
33复杂美区块链特点:
1、独创共识机制,可动态调整区块产生速度;
2、兼容、通用;
3、日志链和智能合约链分开运行,数据分片存储;
4、低延时、高并发,区块链交易所撮合交易每秒可达万笔,延时则控制100毫秒内,并且还有大幅度提升空间,(阿里云2核4G虚拟机下,每秒可达2000笔)适用于大宗商品交易所、票据交易所、股权债权等金融资产交易所等。
6、目前已与国内上市公司国民技术合作开发了蓝牙SIM卡,蓝牙SIM卡创新性地集成了蓝牙芯片和安全芯片于一体,突破了安卓和iOS对SIM卡操作的限制,APP可通过蓝牙访问卡内安全芯片。一张蓝牙SIM卡已设计能保存100个不同类型或数量的私钥,可以用于数字货币支付、数字资产交易、签订电子合同。
7、易监管,使用带有身份标识和权限管理的公钥地址;
8、隐私保护,可定向设置阅读权限。
目前很多区块链底层项目代码是开源的,程序员拿过来改改就能用,国内市场上大部分都是以太坊的修改版,我们并不反对借鉴加改进(山寨),因为人类科技的进步总是建立在前人探索的基础上。
如何改的更好,改的有创新,那就需要看团队的深挖能力和实际场景的试错,不同的应用对功能、性能和安全的需求都不一样,需要深度设计、深度优化,精通区块链底层的密码学、共识算法、分布式数据库设计等基本技术,并拥有应对大规模应用的整体架构设计研发团队,更容易在这个行业脱颖而出,成为独角兽。
33复杂美与海航合作落地“海票惠”,并战略合作成立了“区块链创新实验室”,“海票惠”包含信息撮合、信用评级、分布式监管、数据存证和智能交易等功能,可以将电票、合同、交易等信息和涉及商业隐私的数据保存在区块链上,节点分布在平台、银行、企业等多方,区块链上累积的企业信用不可篡改。自日上线以来,大幅提高了海航集团旗下供应链金融服务平台“海平线”上票据流转的高效性和安全性。海航物流已向集团推荐“海票惠”,双方计划在三期合作中将整个海航集团的票据都写入区块链中。
区块链技术应用于票据交易所将会有效降低监管成本,这是目前业界呼声较为强烈的痛点。”杭州复杂美科技公司创始人吴思进告诉《财经》记者。据他介绍,复杂美区块链研究中心已经初步完成了基于多种区块链版本的票据交易所的开发。
日,美的集团财务有限公司与杭州复杂美科技有限公司联手合作,共同打造美的金融区块链票据应用平台,企业级票据行业区块链应用再次进入业界眼目。
当天下午,双方就本次项目合作相关事宜于美的集团总部签署战略合作协议,与此同时,美的金融区块链票据项目正式启动。
美的集团财务有限公司金融系统部总监李明德表示,将区块链技术应用于票据产品在国内尚属前列,区块链技术将颠覆金融行业,尤其是供应链金融,对于核心企业来说,则可以更好地管理供应链上的中小企业以及相关服务。区块链票据产品的功能包括供需撮合、信用评级、分布式监管、数据存证和智能交易等。
吴思进透露,“复杂美”现已与包括家电、地产、市政等领域的十家千亿级别企业进行深度合作。
作者的其他主题最有看点的互联网金融门户
区块链定义及技术核心
韩锋 | 韩锋区块链工作室
本文共2157字,预计阅读时间43秒区块链(blockchain)是一项全新的技术,脱胎于2008年出现的比特币技术,它提供了一种去中心化的、无需信任积累的信用建立范式。在这种范式中,任何互不了解的人可以通过加入一个公开透明的数据库,通过点对点的记账、数据传输、认证或是合约,而不需要借助任何一个中间方来达成信用共识。这个公开透明的数据库包括了过去所有的交易记录、历史数据及其他相关信息,所有信息都分布式存储并透明可查,并以密码学协议的方式保证其不能非法篡改。
互联网TCP/IP协议让我们进入了信息自由传递的时代,区块链的创新将把我们带入信息的自由公证时代!区块链通过全网记账,P2P协同建立"信用",是人类信用进化史上继血亲信用,贵金属信用,央行纸币信用之后第四个里程碑,很有希望缓解我国目前公信力稀缺的社会痛点,在全球市场汇通、知识产权保护、财产微公证、物联网金融、智能协议等诸多领域有广泛和深入的应用场景。
区块链技术本质是去中心化且寓于分布式结构的数据存储、传输和证明的方法,用数据区块(Block)取代了目前互联网对中心服务器的依赖,使得所有数据变更或者交易项目都记录在一个云系统之上,理论上实现了数据传输中对数据的自我证明,深远来说,这超越了传统和常规意义上需要依赖中心的信息验证范式,降低了全球"信用"的建立成本,这种点对点验证将会产生一种"基础协议",是分布式人工智能的一种新形式,将建立人脑智能和机器智能的全新接口和共享界面。
近年来兴起的去中心化"数字货币"比特币,就是以区块链技术为基础的。比特币主要解决了去中心化价值交换的信任问题,其基础协议为:"不能重复支付"。通过每个"矿工"节点每十分钟给全网每一笔交易"盖时间戳"记账并核对计入当前区块中,并通过算力竞争获得每十分钟全网唯一合法记账权,获得二十五个比特币奖励(每四年减半一次),用这种算力竞争机制来保证"不能重复支付"基础协议的执行。比特币的这个特性使之客观上成为了一种信用建立模式的巨大创新,2013年通过全网记账建立了市值达到一百多亿美元的信用!这是人类信用进化史上的奇迹。而区块链作为实现比特币的底层技术,人们渐渐发现其可以独立于比特币存在,比特币只是区块链技术的一种应用。通过区块链技术,人们可以实现各种去中心化的信息认证范式,包括但不局限于各种去中心化的权益认证、合约执行等,这将会大幅提高全球市场交易效率并降低成本,同时也会缓解信用中心化的信息不对称和腐败空间问题【1】。由于区块链承载的数据在基础协议上的特性,使之在存储、传输中实现不可逆,在现实未来的全球统一市场中有着广泛的应用前景。
区块链技术的巨大能量已经引起了许多具有创新精神的人和机构的关注,目前已经有国内外大量的创新团队正在将之付诸实践。例如,美国纳斯达克已经在测试区块链技术,用以实现一个全新的股票交易系统。通常公司在处理其股份交易时,需要经过大量的非正式系统,包括需要律师手动验证电子表格,而纳斯达克想要使用区块链技术来替代掉这个过程【2】。"四大"会计师事务所之一的德勤,正在将区块链技术用于自动审计【3】。此外,花旗、瑞银等金融巨头也在开始尝试区块链技术【4】。除了金融应用之外,IBM目前正在开发基于区块链的物联网系统Adept,将兼顾低成本、可靠并且高效率的特点【5】。甚至俄国总统普京也表示,数字货币用作货币可能是有问题的,但数字货币作为记账单位是可能的。【6】。
目前,国内已经有不少的区块链创新团队正将区块链技术付诸实践,中国正努力走在区块链创新的前沿。区块链技术将带给我们一个机会,一个突破传统、颠覆性创新的机会。区块链可以提供一种"互联网+"的全新概念,将可以更方便的提供各种服务的接入,并将各种服务升级到去中心化的全新层级。区块链技术更是人工智能的一种新形式,通过将人类(甚至机器)点对点互联,实现人机智慧的结合。
区块链的技术创新,是互联网TCP/IP协议的下一代升级,是信息的自由传输升级到信息的自由公证,是未来全球市场信用的基础协议和范式,必将给人类带来新的价值和繁荣。
参考来源:
【1】Melanie Swan.(2015).Blockchain:Blueprint for a New Economy
【2】纳斯达克测试区块链技术,颠覆性交易方式还有多远? http://finance.qq.com/a/051.htm
【3】德勤试验区块链技术,提升客户审计服务 http://mt.sohu.com/6889905.shtml
【4】 花旗银行涉足区块链技术,首发测试"花旗币" http://mt.sohu.com/6071613.shtml
瑞银集团开设区块链实验室 http://www.wtoutiao.com/a/2271205.html
【5】IBM聊比特币:区块链技术=解决物联网缺陷的核心 http://36kr.com/p/215152.html
【6】普京:数字货币作为记账单位是可能的 http://mt.sohu.com/6817852.shtml
本文系专栏作者发表,属作者个人观点,不代表网站观点,未经许可严禁转载,违者必究!
用微信扫描可以分享至好友和朋友圈
扫描二维码或搜索微信号“iweiyangx”关注未央网官方微信公众号,获取互联网金融领域前沿资讯。
您的评论提交后会进行审核,审核通过的留言会展示在下方留言区域,请耐心等待。
雄霸天下...
版权所有 (C) 清华大学五道口金融学院互联网金融实验室 | 京ICP备号-1分布式系统中的Gossip协议与比特币中的区块链技术
​在分布式系统中,通过网络通信传递消息来对一些状态达成一致。具体的方式有很多,总体上感觉可以分成三大类,一个是选个master出来,大家在一段时间内都听master的,master提议的大家都听,非master提议的大家都不听,任期到了就通过一种手段重新选举产生master;一个是Paxos,任何人都可以发起提议,通过具体的算法来保证大家一定都能达成一致不会冲突;一种是Gossip,大家每个周期内随机找个其他节点互相同步彼此不知道的状态,从概率上最终一定会收敛成所有节点都拿到最新的状态,只不过节点越多收敛越慢,肯定是最终一致性。今天想讲的主要是第三种,Gossip。
Gossip是最终一致性,集群越大延迟越大。但他自然也有他的好处,其中一个是没有中心节点,不存在一个中心节点挂掉整个系统就跪的问题。当然,在现代的分布式系统中,有很多种办法提高中心节点的可用性,而换来的是系统简单、可以实现强一致性,因此很多系统尤其是数据库相关的分布式存储领域,大都还是使用有中心节点的方案,只有Dynamo和对应的Cassandra等用Gossip,无论数据库本身是否火,但这类架构在最近几年已经很少有新的分布式数据库采用了。虽然Gossip这种P2P不太适合数据库,但其他地方还是可以采用的。除了不需要中心节点外,还有个好处是不需要每个节点之间两两直接互通,只要任何两个节点通过其他节点最终都能传递到,也就是一个强连通的系统,就可以达成一致。这在公网中非常重要,比如两个分别在不同内网的内网节点就是完全无法直接互连的。
历史上最火的P2P协议可能就是BT下载,大家互相从其他节点下载、向其他节点上传,只要有一个节点拥有全部数据,甚至只要整个集群中对应的文件的每一部分都有人有,最终大家都可以有完整的文件。这其实也就是Gossip协议对状态达成一致的过程,只不过从“对若干状态达成一致”变成了“对一个文件的若干区间的内容达成一致”。在一个分布式系统内,有中心节点可以方便很多,一方面是因为一般来说一个系统的所有节点都在一个机房内,是个内网,并且节点数几十几千上万也还是很有限。因此在很多情况下是比P2P好的。但是在广域网中,一个集群的节点数是非常高的,如果都去连一个中心节点,哪怕是连一个有多个节点的中心服务,其需要的机器数、带宽也是非常多的。因此P2P很好的解决了这个问题,每个人提供一点CPU和一点带宽,就可以拿到了完整的文件,并且下载速度很容易超过从某个服务器单线程下载的速度。即使某个节点下线了,照样可以接着下,想删除文件阻止发布是完全不可能的。
而无论是分布式数据库,还是BT下载,其实都依赖一个前提,就是不会有节点捣乱,故意传输错误的数据、故意抛弃一些数据不给你。在分布式系统中用“拜占庭将军问题”来描述这个问题。我们使用的分布式数据库所采用任何达成一致的算法,都是不考虑这个问题的。数据库可能还好,代码都是自己写的、网络都是内网,不存在被攻击的问题(bug啥的不算),任何数据都是可信任的。即使在公网传数据,只需要每个节点能通过一些认证协议证明自己是自己,就没问题了。而P2P下载都是匿名,无法证明自己是自己,并且如果有人故意上传错误的文件,污染整个系统,理论上就可能让绝大多数人拿到错误的内容、达成错误的一致。比如去年出现的天朝码农用迅雷下被中了木马的XCode就是如此。
所以比特币的设计者为了实现无中心节点对各种状态达成一致(每个账户有多少钱、不同账户之间的转账记录),P2P是必须要有的,关键是如何处理拜占庭将军问题。
首先和其他网络协议类似,
公钥和私钥模式的加密可以确保每个人都可以证明自己是自己,公钥可以随意传输不怕丢,私钥不能公开,通过数学运算能保证大家根据加密的结果判断出生成这条数据的人是不是这个公钥所对应的私钥的持有者。而公钥(或对应的哈希)就可以作为这个人的公开id,也就是所谓的钱包地址。
但是这样只解决了“转账记录”的正确性,其他啥都没解决,比如这个账号到底有多少钱。所以需要对“每个账号有多少余额”达成一致性,而这个数据可以通过存储每个账户的初始值和所有历史转账记录来解决(反正转账记录肯定是要存的)。并且需要保证全局使用同一个转账记录的序列,在任何人眼里都是先A给B转了50,然后B给C转了30。这样只要大家能对这个转账记录的序列达成一致,就相当于对全局每个账户的每个状态达成一致了,当然是最终一致性。但是,因为网络的通信是无法确定顺序的,不同的节点收到的转账请求顺序是完全不一样的,那么需要通过一种手段来确定“官方”所接纳的交易记录和顺序是什么样的。可以暂时由某个节点说了算(反正只要选择一些交易记录并确定了顺序以验证交易合法性就好),但不能永远让某个节点说了算(不然这个节点虽然不能伪造别人的交易记录,但可以阻止某些人做交易),也就是在短时间内独裁,但长期内必须民主。如果这在局域网内,每个节点都是两两互通的话,用本文第一段提到的“定期通过某种手段选举master”就行了,但是在广域网中,节点非常多,不可能也没必要两两之间都互通(尤其是还有内网ip的问题),而且因为采用了类似Gossip协议的方式,消息传播给整个集群都是有延迟的,因此需要采用特殊的方式来确保某个时间段内只有一个master。
因此比特币的设计者设计了所谓的“区块链”技术,其核心就是从概率上保证在一段时间内只可能有少量的节点能有资格被大家认作是master。具体的方式是,把过去大家达成一致的历史数据和自己当前准备接受的转账请求序列和一个可以随意改变的数字合并做哈希,其结果必须小于一个大家公认的数。如果我们采用的哈希算法比较复杂,理论上不可逆,那么只能通过枚举那个“可以随意改变的数”来找到一个可行(当然不唯一)的答案。因为枚举的复杂度很高,所以概率上一段时间内只会有少量的节点能算出来。并且因为哈希不可逆,不可能有人直接把一种可行解搞出来,遇到别人算出的可行解也不能随意改变内容(一旦改了交易序列那部分那么求出来的哈希就不符合要求了)。一旦某个人求出来之后,就可以把这个消息通过gossip协议传给其他节点。大家需要约定,一旦发现别人比你先算出来了,那么自己就放弃,认为这个人算出来的结果所对应的转账请求是“共识”;并且约定如果有多个人声称自己是某个时间段内的master,就以某个逻辑接受其中一个(比如谁更长选谁,同样长选两个哈希结果中更小的那个),拒绝另一个。那么根据Gossip算法可以知道,最终整个集群是可以知道这个时间段内达成共识的交易记录的。
每一次算出一个哈希,这部分数据就是一个“块”,每个块都是依赖前置条件的块的,因此是一个链条,也就是“区块链”。
因为集群中的节点数、总的计算能力是浮动的,不能因为节点多就不断的算出新的块。所以对哈希结果大小的要求也是动态调整的,如果过去几个块表明集群中的平均计算力比较大,就降低哈希结果的阈值,以提高难度;反之降低难度。从概率上保证平均每M分钟可以算出一个块,M太大,会导致转账慢,M太小,会导致概率上同时算出结果的节点太多从而冲突太多不好处理。另外因为在块中的记录才是被集群认可的交易记录,但是因为整个集群中可能同一时间算出多个不同的块,从最终一致性的角度我们可以确定这些冲突的块最终会被其中一个唯一的取代。但如果某个最终非法的块X曾经计算出某个账户多了10块钱,然后这个人当时很快再把钱转走买了现实中的东西,并且因为一些节点还没收到真正合法的块X,用这个会被取代的结果算出来块X
1,同时接受了把10块钱又转走的转账请求,那么当最终这个块和后续的块都作废后,这个人没有得到任何币,但拿到了现实中的东西,就悲剧了……所以一般来说,一个转账记录如果在块X中,必须当集群算出了块X
N之后,才允许在转账计算余额是考虑块X中的收益。这个N设置为一个安全的值之后,就可以保证即使最终一致性,大家也不会先交易再被取消。如果设置的N不够用,那这个币的公信力基本就废了,俗称“分叉”。N和M一样,也需要设定一个合适的值,太大了转账慢(准确的说是转账确认成功慢),太小了有风险。
到这为止,我们可以做到确保所有交易记录不是伪造的、并且确保确认交易过程是集群的节点轮流做的(防止某个节点故意恶心人阻止某些交易)。而这个确认过程是需要大量消耗计算资源的(枚举哈希,所以GPU算这个有很大优势),那么大家凭啥要花电费做这个事情?比特币的设计者通过“分配原始余额”的方式来鼓励大家干这个,每个算出块的人可以分到若干比特币,作为奖励,这样大家就有动力来算了,俗称“挖矿”。所以每个人的余额其实就是挖矿所得
转账收益。整个系统只要大多数人都按照约定俗成的规矩办事(比如块的认定、块难度的认定、对交易的认定等),即使有人捣乱大家也不会理。但是假如有人耗费大量的计算资源,使自己算哈希的能力超过了其他人的总和,那么就存在51%攻击。所谓51%攻击,并不能伪造交易给自己转账(因为靠公钥私钥鉴定),而是通过更快的算出合法的块,在单位时间内算出比公网中评分更大的区块链并且捂着不公开,来故意让自己和外面分叉。同时先用比特币转账买东西,然后等N个块对方确认交易后把东西给你,这个时候把自己捂着的区块链公开出来,之前的交易全部作废,然后自己就没损失任何比特币然后拿到了现实中的东西……
以上就是一个“加强版的Gossip”,很大程度上可以说是为了解决拜占庭将军问题的一个去中心化的一致性算法。因此并不是只能用在电子币中。比如可以弄个公开记录数据的系统,把转账记录改成一堆bytes,用类似的算法就支持每个人都记录一段公开的实名消息(比特币本质上是实名的,每个人都知道每个账户的全部交易记录,只不过大家不知道这个实名的比特币账户是现实中谁拥有的,所以在这种意义上才是匿名)、无法篡改伪造也无法被别人屏蔽。而这些用途可以由一些切实有需求的若干个实体(公司、国家等等)来做,他们需要一个公开公正的分布式无中心系统来记录这些(比如跨行转账、统计数据等等),完全可以实名挖矿计算块,那么只要约定每个人出特定的计算能力就可以搭一个类似的系统了,只需要考虑不被51%攻击的问题就可以。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 区块链底层协议 的文章

 

随机推荐