版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.区块链技术调研报告课程:老师:组号:组员:院系: 计算机科学学院2018 年 3 月 22 日;.目录一、区块链的起源 .1二、区块链的发展历程 .1三、区块链原理.13.1什么是中心化? .23.2为什么要去中心化? .23.3谁还可以依靠? .4四、区块链技术.74.1技术特点 .74.2公有链、私有链、侧链 .84.3关键技术 .94.3.1、采用工作量证明达到去中心化及公正性 .104.3.2每笔交易采椭圆曲线数位签章演算法加密 .114.3.3 hashcash 演算法及多种 hash 函数确保资料不被窜改.114.3.4经由 merkle tree 将大量讯息缩短成一个hash值
2、 .124.3.5用时间戳伺服器 (timestamp server) 确保区块序列 .12五、区块链存在的问题 .12六、区块链的研究方向 .13;.一、区块链的起源2008 年,区块链技术奠基性论文 比特币 : 一种点对点电子现金系统 横空出世,该文作者中本聪 首次提出了区块链的概念。 中本聪认为 首先,在中心化的体系内,价值分散在各中心手中, 由于各中心的系统不同, 各中心的互通成本非常大;其次,由于少数中心化的机构掌握了多数的价值, 因此价值的流通受制于中心化机构的体系要求,造成了一种高成本、低效率的运作现状;最后,由于所有数据均存储于中心化机构中,更容易遭恶意破坏者的篡改。基于上述现
3、存的问题, 中本聪在区块链技术的基础上, 创建了比特币 ,也正是比特币网络使得区块链进一步完善并正式进入了公众视野。 目前,以太坊、超级账本 fabric 等的许多应用已经开始出现在生活中。区块链技术是构建比特币数据结构与交易信息加密传输的基础技术,该技术实现了比特币的挖矿与交易。 区块链技术是指通过去中心化的方式集体维护一个可靠数据库的技术方案。该技术方案主要让区块( block )通过密码学方法相关联起来,每个数据块包含了一定时间内的系统全部数据信息, 并且生成数字签名以验证信息的有效性并链接到下一个数据块形成一条主链。 通过区块链技术, 互联网上的各个用户成为一个节点并相互连接起来, 所
4、有在此区块链架构上发布的内容都会在加密后被每一个节点接收并备份, 换而言之每一个节点都可以查看历史上产生的任何数据。 各节点将加密数据不断打包到区块中, 再将区块发布到网络中,并按照时间顺序进行连接,生成永久、不可逆向的数据链,这便形成了一个公开透明的受全部用户的监督的区块链。二、区块链的发展历程2009-2012 年,经济形态以比特币及其产业生态为主;2012-2015 年,区块链随着比特币进入公众视野, 新生的钱包支付和汇款公司出现, 区块链经济扩散到金融领域。区块链底层技术创新不断。区块链技术从比特币系统中剥离出来。2016 年开始探索行业应用,出现了大量区块链创业公司。2017 年 i
5、co的火热让区块链受到前所未有的关注。那么,产生的区块链具有什么价值呢?实际上这从区块链的特性上就可以得出结论:去中心化、交易点对点、不可篡改的特性可以实现机器信任;交易不可逆、信息加密的特性可以实现价值传递;此外信息点对点、 不可篡改等还可以实现智能合约。三、区块链原理区块链( block chain )是指通过去中心化和去信任的方式集体维护一个可;.靠数据库的技术方案。 该技术方案让参与系统中的任意多个节点 ( 电脑 ) ,把一段时间系统内全部信息交流的数据,通过密码学算法计算和记录到一个数据块( block ),并且生成该数据块的指纹用于链接( chain )下个数据块和校验,系统所有参
6、与节点来共同认定记录是否为真。区块链的概念首次于2008 年 11月 1日在论文比特币:一种点对点的电子现金系统( bitcoin: a peer-to-peer electronic cash system)中提出,作者为自称中本聪( satoshi nakamoto )的个人(或团体) 。上面听起来是不是很拗口?这样表达会不会好点: 区块链本质上是一个去中心化的分布式账本数据库, 其本身是一串使用密码学相关联所产生的数据块, 具体来讲:一个随机哈希算法的结果, 它唯一做的事情就是获得一些输入然后进行计算,并得到一串 64 位的随机数字和字母的字符串,每一个数据块中包含了多次比特币网络交易有
7、效确认信息, 区块链就是由一连串、 不重复、的数据块组成的。3.1 什么是中心化?要在淘宝上买一台电脑,交易流程是:你将钱打给支付宝支付宝收款后通知卖家发货卖家发货你确认收货支付宝把钱打给卖家。在这个过程中,虽然你是在和卖家交易,但是这笔交易还牵扯到了除了你和卖家的第三方,即支付宝,你和卖家的交易都是围绕支付宝展开。因此,如果支付宝系统出了问题便会造成这笔交易的失败,因此考虑极端情况, 如果支付宝跑路了或者是拿了钱不却不承认你的交易或者是支付宝所在的城市因为开g20 把所有人都赶走了,那么就。 。在金融领域中,中心化的例子就更多了:1、银行作为中心平台嫁接借贷双方2、交易所作为中心平台嫁接投资
8、人和上市公司3、 swift作为中心平台嫁接a 国家的支付机构和b 国家的支付机构这样不是挺好的嘛?为啥要去中心化?3.2 为什么要去中心化?(1)心化的处理方式就要显得简单很多,就拿你在淘宝上买电脑的事情举例,你只需要和卖家交换钱和电脑,然后双方都声称完成了这笔交易,结束。其实如果只考虑两个人的交易并不能把去中心化的好处完全展示出来,设想如果有成千上万笔交易在进行, 去中心化的处理方式会节约很多资源,使得整个;.交易自主化、简单化。(2)安全可靠。在区块链系统中,整个网络没有中心化的硬件或者管理机构,任意节点之间的权利和义务都是均等的, 所有的节点都有能力去用计算能力投票,从而保证了得到承认
9、的结果是过半数节点公认的结果。 即使遭受严重的黑客攻击,只要黑客控制的节点数不超过全球节点总数的一半, 系统就依然能正常运行,数据也不会被篡改。(3)去信任化,公开透明。传统的交易建立在信任的基础之上,尽管信任中心平台获取了大量信息, 但是从中流出的、 披露的信息却极为有限, 导致大量数据被浪费和隐藏。 参与区块链系统的每个节点之间进行数据交换则无需互相信任。在区块链系统中, 因为整个系统的运作规则是透明的, 所有的数据内容也是公开的, 因此在系统指定的规则范围和时间范围内, 节点之间不能也无法相互欺骗。(4)集体维护,降低成本。在中心化网络体系下,系统的维护和经营依赖于数据中心等平台的运维和
10、经营, 成本不可省略。 区块链则构建了一整套协议机制, 系统中的数据块由整个系统中所有具有维护功能的节点来共同维护的。 这些具有维护功能的节点是任何人都可以参与的, 每一个节点在参与记录的同时也来验证其他节点记录结果的正确性,维护效率提高,成本降低。(5)排除了被中心化代理控制的风险。图2;.3.3 谁还可以依靠?但是如果没有了中心监管平台支付宝、银行、交易所、 swift等权威机构,怎么能保证每笔交易的准确性和有效性呢?你付了钱收不到货怎么办?或者你借给张三钱, 张三后来不承认怎么办?这就引出来一个著名的难题: 拜占庭将军问题( byzantine failures ),简单来讲,拜占庭帝国
11、军队的将军们必须全体一致的决定是否攻击某一支敌军。 问题是这些将军在地理上是分隔开来的, 并且将军中存在叛徒。叛徒可以任意行动以达到以下目标: 欺骗某些将军采取进攻行动;促成一个不是所有将军都同意的决定,如当将军们不希望进攻时促成进攻行动;或者迷惑某些将军, 使他们无法做出决定。 如果叛徒达到了这些目的之一, 则任何攻击行动的结果都是注定要失败的,只有完全达成一致的努力才能获得胜利。这个难题也被称为“拜占庭容错”或者“两军问题”, (百度百科有详细解释,此处就不赘述了)此问题是由莱斯利兰伯特提出的点对点通信中的基本问题,含义是在存在消息丢失的不可靠信息通道上试图通过消息传递的方式达到一致性是不
12、可能的。因此对一致性的研究一般假设信息通道是可靠的,或不存在本问题, 但实际上,信息通道往往是不可靠的,怎么来解决这个问题呢?。 。简单答案就是“群众一起监管”但是群众监管怎么来实现呢?举个“栗子”我们先来建立一个去中心化的借贷系统:1、如果 a 借了 b 100 块钱,这个时候, a 在人群中大喊“我是 a,我借给了 b 100 块钱!”, b 也在人群中大喊“我是 b,a 借给了我 100 块钱!”,此时路人甲乙丙丁都听到了这些消息,因此所有人都在心中默默记下了“a 借给了 b100 块钱”。请注意:这个时候一个去中心化的系统就建立起来了, 这个系统中不需要银行,也不需要借贷协议和收据,
13、严格来说,甚至不需要人与人长久的信任关系(比如 b突然又改口说“我不欠 a 钱!”,这个时候群众就会站出来说“不对,我的小本本上记录了你某天借了 a100块钱!”)。2、在上述的模型中,所谓的“ 100 块钱”已经不重要了。换句话说,任何东西都可以在这个模型中交换,甚至 a 可以凭空创造一个东西,只要大家承认, a 就可以让这个东西流通。比如: a 在人群中高喊一声“我创造了 50 个 dx!”, a 甚至不需要知道 dx是什么,也不需要关心世界上是不是真的有 dx,只要大家都听到,然后在自己的小本本上记下“a 有 50 个 dx”,于是 a 就真的有 50 个 dx 了。从此以后, a 便可
14、以声称 a 给了某人 1 个 dx,只要路人甲乙丙丁都收到并且承认了这一信息,那 a 就算完成了这次交易,哪怕世界上没有 dx。你现在脑海中是不是浮现出了三个字“比特币”;.3、假设过了很长一段时间,a 凭空创造的 dx已经在这个系统中流通了起来,大家都开始认可了 dx。但是这个系统中一共就只有 50 个 dx,于是有人动了坏心思,他在人群中高呼“我有 10 个 dx!”怎么办?大家是直接在本本上记下他有 10 个 dx么,这样不是人人都可以伪造 dx了么?4、为了防止这种现象发生, a 决定在 a 创造 dx的时候打上标记(更准确地说, a 是给 a 喊的那句“我创造了 50 个 dx”打上
15、标记,比如标记为 001),这样以后在每一笔交易的时候, a 在高喊“a给了某某 1 个 dx!”的时候,会附加上额外的一句话:“这 1 个 dx的来源是记为 001 的那条记录,a 的这句话标记为 002!”。我们再抽象一点,某人喊话的内容的格式就变成了:“这句话编号xxx ,上一句话的编号是 yyy ,再上句话编号是 zzz. 我给了某某 1 个 dx!”,这样就解决了伪造的问题。其实上述模型就变成一个简化的中本聪第一版比特币区块链协议。 也就是说在群中的监督下,交易发生并且不可被逆转。但是为什么群众愿意帮忙记录呢?5、为什么群众会听话记账?为了激励群众帮 a 传话和记账, a 决定给第一
16、个听到他喊话并且记录在小本本上的人奖励: 1 个 dx,这个 dx是整个系统对你幸苦记账的报酬,而你记录了这句话之后,要马上告诉其它人你已经记录好了,让别人放弃继续记录这句话,并给你自己的记录编号让别人有据可查, 然后你再把 a 的话加上你的记录编号一起喊出来, 供下一个人记账。 当这个规则定下以后, 这个系统中一定会出现一批人,他们开始竖着耳朵监听周围发出的声音,以抢占第一个记账的权利。对的,你脑海中是不是又浮现出了“比特币挖矿”的字眼?关于比特币挖矿, 有个很形象的例子: 单身汪们要找女票, 国民岳母说我有好多女儿,这样吧我给你们出点题目, 解出一个就给其中一个姑娘的微信号。 单身汪们疯狂
17、竞争, 想破脑袋去解题。 只要其中一只汪解出一道题, 就立马得意洋洋地昭告天下,示威全部单身汪,这个姑娘是我的啦,你们放弃吧。其他单身汪们即使不服也没有办法, 惆怅懊恼也不是个事儿啊, 还是麻溜地立马去解下一道题目吧。这只喜赢姑娘的幸运小汪被岳母认可后还能得到25 个货币单位的彩礼,简直人生赢家。6、群众听谁的?在这个系统中,如果 a 和另一个人 c几乎同时地喊出一句: “我看到了! ”。由于听众所处的位置不同, 一定会有人先听到 a 说的那句话,而另外一些人则先听到 c的那句话,如果我们规定只能有一个人说出这句话, 那到底这句话是谁说的?如果不加任何条件, 那么上述的情况一定会这样发展:一部
18、分人认为这句话;.是 a 说的,在听到这句话之后开始记账, 之后他们所做的所有事情都是基于这个事实,并且随着这个信息一次次的传下去, 这条信息链会越来越深; 而另外一群认为是 c先说这句话的人, 也会按照这样的趋势发展。 这样,原本是一条唯一的信息链,在我们喊出“我看到了”这句话之后,就分叉了!?这会导致怎样的情况呢?按照我们的设想, 应该每个人的小本本上记录的东西都是一样的, 都是一条可以把所有信息串联起来的链条。 但是在这一刻, 他们小本本上记录的东西不一样了! 这还怎么玩?以后还怎么确定交易和信息的真实性!?为了解决这个问题, a 又追加了新的规则:每个人在记录小本本的时候,需要脱鞋然后
19、用脚拿笔, 在小本本上用正楷体书写( 即加入:工作量证明 prove of work,一种哈希算法 ) !有了这个规定,由于用脚写字难度很大,每个人至少需要 10 分钟才能写完, 而且由于每个人用脚写字的熟练度不通, 写完这句话所用的时间也不同,因此一定会有人先写完然后高呼“我写完了!那句话是a 喊的!”,这样其它正在写这句话的人便会停笔,然后在小本本上重新开始写“那句话是 a 写的,上一句的编号是 xxx. ”,然后系统继续周而复始重复此动作。下面是一个有趣的比喻:“群众听谁的”中本聪破解“拜占庭将军问题”的算法“在小本本上记录”比特币挖矿“脱鞋用脚写字”比特币挖矿难度“脱鞋写字速度”算力“
20、脱鞋子鞋子规则”工作量证明链看完这个例子, 让我们再回到理论的高度, 无论多大的系统或者多小的网站, 一般在它背后都有数据库。 那么这个数据库由谁来维护?在一般情况下, 谁负责运营这个网络或者系统, 那么就由谁来进行维护。 如果是微信数据库肯定是腾讯团队维护,淘宝的数据库就是阿里的团队在维护。 大家一定认为这种方式是天经地义的,但是区块链技术却不是这样。如果我们把数据库想象成是一个账本: 比如支付宝就是很典型的账本, 任何数据的改变就是记账型的。 数据库的维护我们可以认为是很简单的记账方式。 在区块链的世界也是这样, 区块链系统中的每一个人都有机会参与记账。 系统会在一段时间内, 可能选择十秒
21、钟内, 也可能十分钟, 选出这段时间记账最快最好的人,由这个人来记账, 他会把这段时间数据库的变化和账本的变化记在一个区块( block )中,我们可以把这个区块想象成一页纸上,系统在确认记录正确后,会把过去账本的数据链接( chain )在这张纸上,然后把这张纸发给整个系统里面其他的所有人。 然后周而复始, 系统会寻找下一个记账又快又好的人, 而系统中的其他所有人都会获得整个账本的副本。 这也就意味着这个系统每一个人都有;.一模一样的账本,这种技术,我们就称之为区块链技术( blockchain ),也称为分布式账本技术。由于每个人(计算机)都有一模一样的账本,并且每个人(计算机)都有着完全
22、相等的权利,因此不会由于单个人(计算机)失去联系或宕机,而导致整个系统崩溃。 既然有一模一样的账本, 就意味着所有的数据都是公开透明的, 每一个人可以看到每一个账户上到底有什么数字变化。 它非常有趣的特性就是, 其中的数据无法篡改。因为系统会自动比较, 会认为相同数量最多的账本是真的账本,少部分和别人数量不一样的账本是虚假的账本。 在这种情况下,任何人篡改自己的账本是没有任何意义的, 因为除非你能够篡改整个系统里面大部分节点。 如果整个系统节点只有五个、 十个节点也许还容易做到, 但是如果有上万个甚至上十万个,并且还分布在互联网上的任何角落, 除非某个人能控制世界上大多数的电脑,否则不太可能篡
23、改这样大型的区块链。该部分总结因此,区块链解决的核心问题不是“数字货币”, 而是在信息不对称、 不确定的环境下,如何建立满足经济活动赖以发生、发展的“信任”生态体系。四、区块链技术4.1 技术特点区块链是一种共享的分布式数据库技术。 尽管不同报告中对区块链的一句话介绍措辞都不相同,但以下 4 个技术特点是共识性的。1. 去中心化( decentralized ):图 1 的左侧描述了当今金融系统的中心化特征,右侧描述的是正在形成的去中心化金融系统, 其没有中介机构, 所有节点的权利和义务都相等,任一节点停止工作都会不影响系统整体的运作;;.图 1 ,出自花旗报告 digital disrupt
24、ion: how fintech is forcing banking to a tipping point2. 去信任( trustless ):系统中所有节点之间无需信任也可以进行交易,因为数据库和整个系统的运作是公开透明的, 在系统的规则和时间范围内, 节点之间无法欺骗彼此;3.集体维护( collectively maintain):系统是由其中所有具有维护功能的节点共同维护的,系统中所有人共同参与维护工作;4. 可靠数据库( reliable database ):系统中每一个节点都拥有最新的完整数据库拷贝, 修改单个节点的数据库是无效的, 因为系统会自动比较, 认为最多次出现的相同
25、数据记录为真。图 2 ,出自高盛报告 blockchain: putting theory into practice图 2 为简化起见,仅展示了 6 处保留数据库副本的节点; 在 3 个交易序列中,前 2 个交易的数据和签名得到了所有 6 个节点的验证,但第三个交易的位置 5没有通过验证,将被其它节点的“一致意见”更改。4.2 公有链、私有链、侧链区块链按照访问和管理权限可以分为公有链( public blockchain )和私有链或联盟链( private blockchain )。公有链是完全开放的区块链,全世界的人都可以参与系统维护工作,这使得公有链还具有以下2 个特点。1. 开源(
26、 open source):由于整个系统的运作规则公开透明,这个系统是开源系统;;.2. 匿名( anonymity ):由于节点之间无需信任彼此,所有节点也无需公开身份,系统中每一个节点的匿名和隐私都受到保护。私有链或联盟链在开放程度和去中心化程度方面有所限制, 参与者需要被提前筛选,数据库的读取权限可能是公开的, 也可能像写入权限一样只限于系统的参与者。公有链的典型代表是比特币区块链, 任何人都可以通过交易或挖矿读取和写入数据。私有链或联盟链的典型案例是 ripple 和 r3 cev,前者目前为属于联盟成员的银行类金融机构提供跨境支付服务,希望取代环球同业银行金融电讯协会( swift)
27、的跨境转账平台,打造全球统一的网络金融传输协议;后者旨在推动制定适合金融机构使用的区块链技术标准。侧链( sidechains )是用于确认来自于其它区块链的数据的区块链,通过双向挂钩( two way peg)机制使比特币、 ripple 币等多种资产在不同区块链上以一定的汇率实现转移。 侧链进一步扩展了区块链技术的应用范围和创新空间, 使区块链支持包括股票、 债券、金融衍生品等在内的多种资产类型, 以及小微支付、智能合约、 安全处理机制、 真实世界财产注册等; 侧链还可以增强区块链的隐私保护。所谓“多种资产在不同区块链上转移”其实并不会实际发生。以比特币为例,侧链的运作机制是, 将比特币暂
28、时锁定在比特币区块链上, 同时将辅助区块链上的等值数字货币解锁; 当辅助区块链上的数字货币被锁定时, 原先的比特币就被解锁。4.3 关键技术比特币区块链的关键核心技术,包括用 hashcash 演算法来进行工作量证明,且交易过程采用椭圆曲线数位签章演算法来确保交易安全, 并在每笔交易与每个区块中使用多次 hash函数以及 merkle tree ,同时也使用时间戳来确保区块序列比特币区块链的关键核心技术,包括采用 hashcash 演算法来进行工作量证明,让区块链中的各节点有机会参与验证, 达到公正性, 且交易过程采用椭圆曲线数位签章演算法来确保交易安全,并在每笔交易与每个区块中使用多次has
29、h 函数以及 merkle tree ,不只是为了节省储存空间,更重要的是藉由将前一个区块的 hash值加入新区块中,让每个区块环环相扣,也因此做到所谓的可追;.踪且不可窜改的特性, 同时也使用时间戳来确保区块序列,以下便依序解释这些关键技术。4.3.1 、采用工作量证明达到去中心化及公正性首先,最关键的便其工作量证明机制 (proof of work ,pow),这是一个可以让每个参与的节点可共同参与交易验证的方式, 来实现一个能多方共同维护的单一系统,并共享同一份记录交易的帐本, 以形成一个基于零信任基础, 却能实现去中心化的 p2p网路系统。工作量证明是让任一运算节点,花费时间和运算资源
30、来计算出一组数学公式的结果,且要完成一次有效的工作量证明,需经过一连串地尝试与失败。不过,一旦这个数值被算出来后, 其他参与节点也可用相关的数学公式,便能很容易去验证这个值是否有效。比特币区块链采用 hashcash 演算法 ( 杂凑现金演算法 ) 作为工作量证明,让各节点经由 pow计算来产生每一个有效的新区块,再经由其他节点验证并接受。进行 pow计算的过程也被称作挖矿,很多人用解一道数学题、或是解一个数独来形容,不过,怎样才是真的算出一个有效的新区块,这些节点到底在算什么 ?由于每个区块中block header 会包含许多固定的值,其中只有nonce值为一随机值,因此每个节点进行 po
31、w计算时要算的就是,藉由不断替换这个 nonce 值,来让这个区块的 block header hash 值,小于一个被设定好的难度目标值(difficulty target) ,至于为什么要小于这个目标值,则是因为这个难度值意味着每个区块在理论上应该要被产生完成。这里提到的难度值 (difficulty) 是指,节点要运算出低于困难度目标值的 hash 值,平均需花多久时间,也就是平均要完成一次 pow的时间。而比特币区块链目前设定为, 大约每 10 分钟会有节点成功算出新的区块, 不过这 10 分钟只是基于理论值,实际每个新区块产生的时间,有可能只需要17 秒 ( 第 407062 个区块
32、的实际产生时间 ) ,也有可能需要 20 分钟以上 ( 第 407068 个区块的实际产生时间 ) 。difficulty可动态调整,目前每产生2016 个区块会调整一次难度,以每10分钟产生一区块估算,大约是每两周会调整一次 difficulty 。由于 pow具有一定的难度,因此无法预期哪个运算节点可以最快算出新区块, 藉此来确保交易验证的公正性。;.4.3.2每笔交易采椭圆曲线数位签章演算法加密比特币区块链便采用椭圆曲线数位签章演算法(ecdsa),与另一种 rsa演算法,都属于公开金钥加密演算法 (public key cryptography) ,公开金钥加密技术在 1970 年代被
33、发明,也称为双金钥密码安全系统,每个使用者会拥有公开金钥 (public key) 与私密金钥 (private key) 这两把钥匙,公开金钥可让其他人知道,而私密金钥则只有本人知道。当 a 要传送一笔讯息或交易给 b 时,需使用 b 的公开金钥来将这份交易加密, 而这个加密过的讯息或交易, 只有使用 b 的私密金钥才能解开。在比特币区块链中,比特币区块链便采用椭圆曲线数位签章演算法,每一个比特币区块链中的节点使用者,会同时拥有这两把金钥, 以及一次性使用的比特币位址 (address) ,公开金钥可让区块链网络中的其他人知道,而私密金钥则须自行保管, 可用来接收货币、 进行电子签章或是发送
34、货币,而 address 就像电子邮件一样可用来当作存取比特币的地址,使用者可重复取得新的 address ,且可以在离线状态下产生,不过,每个 address 只能使用一次。在比特币区块链中,每一枚电子货币被视为一串数位签章,使用者要进行比特币交易时,必须将前一笔交易以及收款方的公开金钥经由 hash产生数位签章,加到电子货币那串数位签章的后方。rsa加密演算法是一种非对称的加密演算法,利用两个质数作为加密与解密用的两把钥匙,金钥长度约在 40 个位元到 1024 位元。不过比特币所采用的 ecdsa 能算出更短的金钥长度, 也就是能够使用相对较少的资源, 做到与 rsa相同的安全性。在 e
35、cdsa演算法中, 由私密金钥算出公开金钥很容易, 但要从公开金钥推回私密金钥却很困难。4.3.3 hashcash演算法及多种 hash 函数确保资料不被窜改前面提到比特币区块链采用 hashcash演算法来进行工作量证明, hashcash 可将任意长度的资料经由 hash函数转换为一组固定长度的代码,原理是基于一种密码学上的单向杂凑函数 (one way hash function) ,这种函数很容易被验证,但是却很难破解,还回推出原本的值。先前 hashcash演算法也被用来做阻挡垃圾邮件的机制。常使用的单向杂凑函数包括md5、 sha-1、sha-256、sha-384及 sha-5
36、12等,md5的 hash 值长度为 128 位元,虽然广为使用,但因长度不够较容易破解, sha-1;.的 hash值长度有 160 位元,虽比 md5好但仍然不够安全,因此美国国家安全局(nsa)又提出多种更复杂的sha- 2 演算法,包括 224、256、 384、512 位元长度的 hash值算法。hashcash 最早在 1997 年由 adamback 提出,并于 2002 正式发表一篇描述杂凑现金系统的论文。比特币区块链采用 hashcash来建立一套几乎无法被窜改的电子现金系统, 每个区块的 block header 都会被 hash成一串很难被回推的代码后,放进下一个区块中,
37、来确保区块的正确性。4.3.4经由 merkle tree将大量讯息缩短成一个hash值在比特币区块链中,每笔交易产生后,都已经被 hash 成一段代码才广播给各节点, 不过这样做还不够, 因为在各节点的区块中, 可能包含数百笔到数千笔的交易, 因此,为节省储存空间并减少资源耗费, 比特币区块链的设计原理采用 merkle tree 机制,让这些数百到数千笔的交易 hash值,经由两两一组形成一个新 hash值的方式,不断重复进行, 直到最后产生一组最终的 hash 值,也就是 merkle tree root ,这个最终的 hash 值便会被记录到 block header 中,只有 32
38、bytes 的大小。 merkle tree 机制可大幅减少资料传输量与运算资源消耗,验证时,只需验证这个 merkle tree 的 root 值即可。4.3.5用时间戳伺服器 (timestamp server)确保区块序列比特币采用时间戳伺服器机制(timestamp server),将每个区块 hash 后加上一个时间戳 (timestamp) 并发布出去,这个时间戳用来证明资料在特定时间的有效性,每一个时间戳章会与前一个戳章一起进行hash,这个 hash值会在与下一个时间戳章进行hash,因此而形成一个用来确保区块序列的链条。五、区块链存在的问题区块链主要要解决的问题分为如下三个:
39、交易性能、隐私、监管,目前存在的问题具体可分为如下五点:一、难以修正, 由于区块链中的交易记录是永久有效的,错误一旦造成就无法修正,只能通过修改区块链规则或者建立反向的交易来抵消,造成资源的浪费。因此,在实际的区块链应用时应考虑通过设置外部机制来解决修正问题。二、泄露隐私, 由于区块链中的信息是共享透明的,交易中涉及的隐私存在;.被泄露的风险, 个人信息的保护受到极大的挑战。 如果这些数据被非法使用, 将会产生很多社会信用问题。 在保证金融应用安全的前提下, 应对隐私保护采取必要的措施, 通过改进匿名账户算法, 既要对信息追溯成功可控制, 也要对敏感数据采集负责任。三、性能局限,非中心化的结构
40、导致区块链的运行效率受限于网络的最弱节点。虽然目前的区块链应用对网络容量和响应速度的要求都不高, 但是随着交易规模提升、 交易信息增多、 交易频率加快, 区块链技术对存储资源和计算能力都将产生巨大的压力。 区块链技术能否承载更加深入的商业应用, 取决于硬件水平的改善、网络性能的优化和算法效率的提升。四、标准各异, 目前区块链的实施标准因应用场景的差异而不尽相同, 未来区块链的应用范围进一步扩大时, 多区块链之间的互联可能会受阻于不统一的标准。另外,区块链的金融应用也亟待更加成熟的监管制度来进行规范。五、干扰市场, 由于区块链允许交易自动执行, 触发条件可能会不断产生正向反馈,导致价格波动的加速
41、,从而扰乱市场的稳定。此外,过高的交易频率可能会进入交易循环而无法自动终止。六、区块链的研究方向金融区块链应用金融领域的核心价值:促进反洗钱和顾客身份审查。在区块链的创新和应用探索中,金融是最主要的领域, 区块链技术在数字货币、支付清算、智能合约、金融交易、物联网金融等多个方面存在广阔的应用前景。支付环节需要可信任担保交易,如果有一个“可信任的超级系统”,让交易变得直观而安全, 也就不需要第三方担保了, 区块链的出现恰好可以让这个想法变成现实。比特币是目前区块链技术最广泛、最成功的运用, 因为其具有不可篡改的时间戳和全网公开的特性,得到了银行、证券、保险等金融行业的广泛信赖,近些年更是疯狂暴涨,甚至在许多国家比特币已经成为了合法货币。游戏区块链应用游戏领域的核心价值:把游戏权利交还给游戏玩家。区块链技术去中心化、 智能合约、资产交易等技术特点, 能很好的解
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CSES 182-2024沿黄城市生态环境分区管控实施成效评估技术指南
- 房地产销售顾问项目成交与市场敏感度KPI考核表
- 质量控制点操作规范手册
- 服装行业供应链总监业绩考核表
- 游戏开发设计师项目成果质量评估表
- T/SCNA 0001-2024成人体外膜肺氧合(ECMO)技术护理规范
- 智能城市规划与建设方案
- 染料生产工岗前模拟考核试卷含答案
- 下料工安全实操能力考核试卷含答案
- 长度计量员复测知识考核试卷含答案
- 生产运作管理 第7版 课件 第十一章 制造业的作业计划与控制
- 2026气凝胶绝热材料在储能系统中的应用价值评估报告
- 2026新教材语文 7 培养德智体美劳全面发展的社会主义建设者和接班人 教学课件
- 高考英语阅读理解:六大类型题目-解题方法
- 2026年湖南高速铁路职业技术学院高职单招笔试职业技能测验试题库含答案解析3套试卷
- 2026年中级经济师《知识产权实务》考试历年机考真题集附参考答案详解(完整版)
- 白银公司历年招聘试题汇 总笔试试题
- 儿童脊柱侧弯筛查与早期干预
- 爱粮始于心节粮践于行-世界粮食日主题班会课件
- 行业主题轮动研究报告:基于卷积神经网络的指数轮动策略
- 公务摄影实战技巧与案例分享
评论
0/150
提交评论