❶ 区块链技术,怎么才能正确应用到金融产业
回望2008年, 区块链 技术展示了它可以在不同商业领域带来的变化。这项技术虽然还在初期,但是已经改变了很多产业。区块链的各种特性,例如去中心化,不可篡改以及透明性,可以改变商业模式。尤其是对于银行和金融业来说。
虽然现在还有很多问题,但是,区块链有潜力能够为金融和银行产业减少成本和劳动力。根据德勤的报告,全世界24%的金融机构对区块链技术很熟悉,北美地区会比其他地方更加熟悉这些技术。考虑到这项技术的广泛应用性,企业也在逐渐寻找区块链能够应用的不同领域。
特别是银行和金融业,成百上千的基金每天正在从世界的消哪一端到另一端。这就让全球金融系统成为了能够从区块链应用获利的行业之一。银行和金融业需要大量的人工,这时候如果有任何错误,对于金融系统来说会产生很大的影响。根据全球金融科技的报告,2017年,77%的金融科技机构希望在2020年将区块链作为金融生产系统。
区块链在银行业的应用
对于区块链技术和运行方式的基本理解,你脑中真正的问题,可能是:区块链真地能够应用在银行产业吗?如果是的,我们如何才能最好地利用区块链技术?而且,最重要的是,区块链会停留在原地还是继续往前走?
根据哈佛商学院的报道,区块链此时对于银行业,就像互联空桥旁网对于媒体那样。区块链能够解决银行和金融产业的很多问题。区块链技术拥有所有可靠技术应该有的特性,其中也包括金融相关的业务。
区块链可以提供高级别的安全性,特别是在交换数据,信息和金钱等方面。同时,这也让用户可以利用透明的网络架构,操作成本很低,同时,也可以获得去中心化的帮助。这些特性会使得区块链会成为银行和金融行业非常稳定,可靠以及受欢迎的解决方案。
金融机构想要保证资金安全,就需要很多中介机构。然而这些中介机构却使得整个产业更加昂贵。而且,由于其中有太多的人参与整个过程,发生错误的几率也在增加。区块链技术可以保证转账安全,同时也可以让用户获得更好的体验,成本也更低。
银行使用区块链技术案例
虽然在早期,银行和金融机构对于区块链技术仍旧是持怀疑态度,但是,现在,事情已经变了。随着区块链在多个领域获得成功,银行业正在寻找区块链新的领域和应用。
有些大企业,例如,JP摩根对于区块链的未来发展充满信心。美国投资银行总部也开始了对区块链技术的研究和实施。Quorum项目是一个企业分布式账本和智能合约平台,能够支持快速转账和吞吐量,来解决金融行业,银行等的问题。根据目前的消息,他们已经基于分布式注册机构发布了不同 利率 的 年金 证明书。
除了这些斗橡,主要的美国银行已经得到了由美国专利局发放的专利证明。这份文件提到关于许可性区块链的部署,这是为了保证记录的安全性,同时,也是为了认证企业和个人数据。
这个系统会让通过认证的成员获得数据并且记录下所有的个体成员。此外,系统会使用区块链技术,将多个现有的数据存储平台进行整合。这个安全的单个网络会提供整体效率,同时也减少用户数据的存储地址数量。
另一个机构就是高盛。高盛也在积极地融入分布式注册技术的研究之中。为了给区块链行业的初创公司服务,解决数字货币的波动性,高盛已经投资了数字货币项目。
高盛集团旨在成为华尔街数字货币的领导者。设定自己的数字货币交易,可以帮助他们很好地管理数字交易。
金融使用区块链技术案例
随着更多应用案例出现,区块链技术已经有潜力来改变目前的金融和银行产业。该技术可以通过以下几点,改变目前的银行产业:
减少欺诈
任何牵涉到金融相关的项目,就会有欺诈。此外,从最基本的金融模型来看,安全性也是最重要的。有超过40%的金融主体和中介机构,例如股票交易所,每年都会因为金融盗窃事件,蒙受重大损失。
中心化数据库系统是用来进行金融管理和操作。但是中心化的数据库很容易被入侵,如果有单点出现问题,那么就会形成网络攻击。一旦黑客进入到这种系统,盗窃资金很容易。这就会使对于更加安全系统的需求产生,需要足够的安全保证来防止这类攻击。
由于区块链是分布式的,不可能会出现单点的破坏。按照区块形式存储的每个转账都会有加密机制的保护,很难被攻击。
而且,所有的区块都是互相连接的。由于这个连接的机制,如果有区块被改变,那么区块链上所有其他区块都会立刻表现出这个改变。因此,这会帮助追踪这个入侵,同时也让黑客没有机会来对整个系统进行改变。通过一个安全的区块链系统,我们能够防止网络攻击以及现在的银行和金融业攻击。
客户身份验证银行和金融机构对于这点是非常担忧的,所以他们必须要进行AML和KYC,从而减少损失。所有这些过程都会花费很多时间,并且所有的银行和金融机构都需要独立地进行所有的验证。
根据调查报告,每年这类过程都需要花费从600万美金到5000万美金不等的金额。有些客户尽调是为了减少洗钱以及攻击行为。目前,银行需要上传客户的KYC数据到中心化的注册机构,被用来检验老客户或者新客户的信息。
随着区块链系统的应用,每个银行或者金融机构的客户验证,也可以被其他银行使用,这些KYC认证不需要进行多次。
也就是说,通过区块链技术,可以免去很多重复工作。而且,在不远的未来,所有金融机构都会获得客户更新的相关信息,使得管理员以及管理机构的成本减少。
智能资产
当所有资产都需要通过清晰的日期和时间戳来记录,贸易金融就会变得很困难。全球的供应链包含了很多机构和个体,参与方在不停地进行交易。这其中的文件更加复杂。区块链可以通过数字形式来存储这些智能资产的记录。智能资产系统不会仅限于把物品转移,同时还会追踪物品的轨迹。
银行和金融机构的智能资产追踪系统现在也面临很大的竞争。拥有丰富数据的银行可以通过区块链将这些数据转变为客户价值。
智能合约
智能合约的应用可以证明银行和金融行业的重要性。智能合约是在某些条件满足的时候,可以自我执行的代码。
在使用到金融转账的时候,智能合约对于提高速度和简化复杂的流程很有帮助。只有在代码中的条件满足,合约才会执行,也会保证转账的信息十分准确。而且,由于这些条款对于所有人都是可见的,出现错误的概率就会下降很多。
贸易金融
贸易金融被认为是区块链技术在银行产业最有用处的应用之一。所有参与方,例如复杂的转账可以在区块链网络进行记录,贸易商和银行通过一个共有账本 共享 这些信息。一旦某个条件满足,那么智能合约就会自动运行,相关的参与方可以看到所有发生的行为。
根据有关消息,有初创企业已经成功进行基于区块链的交易转账,通常这一过程需要花费7-10天,但是现在只需要4小时。和现在的基础架构相比,使用区块链可以大幅减少证书、票据以及其他费用的产生。
为什么银行业需要区块链?
1.目前银行系统高度依赖于纸质文件和现在的系统。现在需要可信稳定的系统升级,来防止任何欺诈,解决扩容和安全问题。区块链技术和去中心化本质,可以让银行系统拥有正在寻找的高端技术。
2.银行不能独立地运行,现在很多转账都是通过中介的。跨国转账需要花费5天时间,其中也会有不少风险。银行通过区块链系统,能够让转账非常快速,而且不需要承担任何风险,银行自身就足够解决这些问题。
3.世界正在向着数字化迈进。经济发展的速度也在逐渐增加,并且毫无疑问,这个速度还会更快。区块链技术会让小额转账变得更加快速,同时能保证更低的费用和转账扩容性。
4.除了银行以外的金融服务企业也逐渐通过最新科技来改革自己的系统,通过提供可靠的服务、更低的 费率 ,来保证市场的安全。银行和其他金融机构应该接受新型区块链技术,让他们的生态系统保证安全。
区块链技术融入还有很多挑战
区块链技术当然有它的优势,但其中也包含着很多挑战,特别是对于金融和银行产业的机构来说。
交互性:区块链技术不会被任何国际条例所束缚,所以这其中并没有标准。随着大型产业,例如银行对交互性要求的提升,区块链需要和不同的系统兼容,并且还需要能够被大众所接受。现有系统和区块链的整合对于目前的系统是个非常大的挑战,因为现有的系统不能被完全地替代。如果区块链技术可以让多个系统完美地一起工作,那么操作可行性就完全可以满足。
隐私:银行和金融机构的背书,是人们将资金存入其中的信任。如果想让区块链替代它们,很重要地就是要保证存入区块链的数据被安全存放,并且不会改变任何人的身份。由于转账信息是在区块链上公开进行,也需要对私链进行研究,这同时也有助于解决交互性问题。
加密性:私钥是区块链系统的必要元素,因为他们对于保证区块链上个人数据有着非常重要的作用。但是,一旦获得私钥,就必须要非常安全地进行存储,因为如果丢失,就再也没办法找回了。而且,存储数据的加密方式也会存在漏洞,这也导致了区块链很容易被黑客攻击。
安全性:区块链网络是安全并且可靠的,因为它其中融入了加密学的技术,为防止黑客攻击,这类系统中任何的加密性能都需要大量的算力。当区块链网络被应用在任何银行机构,就必须要通过多个安全协议来进行加密。网络需要能够有足够多的算力去防止任何人进行控制,除非是根据特定的准入许可。根据这些需求,融入区块链的这类系统或者机构可以是许可的或者非许可的。在这些机构中的人需要能够处理不同级别的准入许可,从而能够从欺诈和网络攻击者,来拯救整个网络。
可扩容性:现有数据的增长是不可否认的。随着人口数量的增长,数据库的增长也会随之而来。这就会给区块链的应用带来很大的挑战。通过区块链创建的网络应该能够处理逐渐增加的流量,同时也能维持网络参与者的速度。如果区块链技术能够应用在目前的银行系统和机构,就必须要能保证处理这些数据流量的能力。
能源消耗:大多数区块链网络都是基于工作量证明机制,其中网络参与者会根据他们解决问题的速度来获得奖励,这也会基于他们解答问题的速度,从而将新的区块放入网络。这可以让整个网络稳定运行,同时也增加了能源消耗。这类算力会消耗很多的电力,从而对环境造成影响。在接受区块链技术之前,这些问题需通过其他激励机制来解决。
法律监管:如果区块链应用到银行业,那么国际监管条例就是非常必要的。现在,数字货币作为区块链最受欢迎的应用,目前还没有监管条例,有利有弊。但是,如果区块链在银行和金融业进行应用,那么就一定需要监管,避免人们因为有所损失而造成麻烦。
结论
尽管对于银行业来说,监管条例非常严格,金融机构也开始了将区块链技术作为解决方案的征程。银行业巨头已经开始进行测试,去寻找去中心化技术的潜在用途。
机构正在大力投资研究区块链解决方案。通过让区块链进入现在的产业,很多问题都会得到解决。因为这项技术让系统更加透明,可靠,也容易使用。
❷ 区块链 金融 应用
区块链金融应用是其在现实当中发挥作用的重点领域,金融业需要这样的高端技术,传统的运作方式会因为这样的技术而发生深刻的变化。区块链金融应用有着很多鲜明的特点,也让人们对此津津乐道,更因为实际产生的效果而倍受众人的关注,产生了越来越大的影响。
提要:发达国家和科技公司在区块链技术的研究和应用方面已经走在了前面。从专利技术的申请来看,我国与 美国 区块链技术或有一年半左右的差距。基于上述形势,中国如何实现“非对称”赶超?首先是要看清形势,抓住机遇,迎接挑战。其次,在了解区块链底层建设对于金融业现有业务及未来发展的必要性后,在各金融企业之间达成建立“中国的金融区块链联盟”的共识。最后是要协同推进,迎接变革。
如何理解区块链?
比特币:一种点对点的电子现金系统。2009年,论文发表之后,比特币作为一种虚拟货币在 互联网 的数字世界里诞生了。目前,比特币总市值65亿美元左右,虽然市值在不断变化,但它仍然是全球最大的虚拟货币。
还有一个重要的概念就是区块链。区块链是比特币的一个底层技术,而比特币只是区块链的一个应用。众所周知,比特币可以实现点对点的价值传递,除比特币区块链外,还有很多其他的区块链,例如,以太坊的区块链等。所以,我们应该区分比特币、比特币区块链、区块链以及区块链技术等概念。
目前,人们对区块链有几个误读。可以用英文描述区块链为“Decentralized Blockchain”,其中Decentralized被翻译成“去中心化”。但是,我认为区块链实现了价值的无中介传播,就是点对点的价值传播,这并不是说进入区块链时代以后就不需要中心了,而是应当从一个单一的集中化向中心与中心之间的并联发展。那么,现有的中心很可能变成分中心或者弱中心。目前所有银行都拥有自己的数据中心,如果今后成立金融区块链联盟,那么它们就可以成为区块链联盟里的各个节点,所以区块链并不是不需要中心。
区块链不是不需要信用
我们经常会看到一些文章观点认为区块链是要“去信用”,其实,区块链是通过共识算法建立信任,通过各个节点之间的共识保证交易的正确性。通过数学、算法以低成本建立信任,而不是“去信用”。只不过人与人之间的数字资产交易不需要两个人相互认识,或者是相互有信任关系,也不需要第三方信用机构,只需要大家信任区块链这个可信网络即可。
为什么说或渗它可信呢?因为它是一个分布式的数据库,有一套基于共识的机制:一套加密算法,使得它不可篡改。一方面通过公钥使得信息透明化、可追溯;另一方面,私钥可以保护隐私。
区块链并非成熟技术,也非万能目前区块链技术还处于发展初期。今年年初我们派团去巴克莱 南非 的区块链研究室学习,在研讨会上,巴克莱非洲区块链专家认为,区块链技术要成为真正成熟的技术至少需要五到十年的时间。目前,区块链存在计算速度相对较慢、存储空间小的缺陷,而且,并非所有的数据处理都需要使用区块链。
区块链在国外的研究、运用
我们发现,老牌金融发达国家在区块链技术的研究方面已经走在了前面。英国政府认为,政府参与数字货币和区块链网络的立法是非常重要的,政府鼓励对区块链技术的深入研究。英国政府正在积极评估区块链技术的潜力,考虑将它用于减少金融欺诈,降低成本。此外,英国政府计划开发能够在政府和公共机构之间使用的应用系统。
今年2月,欧盟委员会把加密数字货币放在快速发展目标领域的空枝首位,这项举措推动了各个机构针对数字货币的政策研究。科技公司在区块链技术的研究方面也走在了前面。
IBM推出了“开放账本项目”(Open Ledger Project),开发企业级的区块链软件结构,推动区块链技术的商用,通过IBM云计算平台的Bluemix和API基础架构来支持外部数据的对接。IBM在区块链技术方面的实践还有很多,近期,它与 韩国 的一家公司利用区块链技术和物联网做了富有创意的试验,取得了一些成果。
微软利用Azure平台,为用户提供“区块链即服务”,可以使得R3以及其银行成员加快试验和学习进程,加速分布式台账的开发、测试和部署。
Intel也发布了用来搭建、部署和运行分布式账本的高效模块化平台SawtoothLake;同时,Intel还斗团敏研究为区块链应用的硬件芯片创造可信任的执行环境,提供更高的安全性和隐私。
与此同时,华尔街也在积极行动。尽管创建比较晚,但是R3的核心职能是制定 银行业 区块链技术开发的行业标准,以及探索实践用途,并建立银行的区块链联盟。
从我们了解的情况来看,华尔街除了有这两家迎合数字金融时代到来的新公司之外,大型金融机构都在研究区块链技术,都在建立自己的区块链概念和技术团队。
目前,区块链技术已经有了实际应用的案例。
在加拿大,区块链初创公司“区块链科技有限公司”(Blockchain Tech Ltd )已经成功在多伦多证券交易所 创业板 上市;爱沙尼亚政府将推出政府的区块链医保记录。
国内对区块链技术的关注和研究情况
区块链是可选的技术。此前,中国人民银行还召开了数字货币研讨会。除了央行以外,去年 浙江 省、 北京 市等有关部门也表达了对区块链应用研究工作的支持。
从企业角度来看, 布比区块链已经应用于股权、供应链、积分等领域,并正在与交易所、银行开展试验和应用测试。布比区块链专注于区块链技术和产品的创新,已拥有多项核心技术,开发了自有的区块链服务平台。而且很多区块链创新创业企业不断涌现。
此外,一批行业联盟正在建立起来。在金融机构方面,目前我国大型银行和金融机构对区块链应用的案例仍有待破题。
2015年末美国银行已经获得15项关于区块链的专利。我国与美国区块链技术或有一年半左右的差距。
区块链金融应用正在全面的进入新的阶段,各种应用将会越来越深入,相关的改变也会越来越受人瞩目,也将会形成一股极大的新潮流。
❸ 区块链行业应用有哪些
区块链技术有广泛的应用领域,以下是一些主要的行业应用:1. 加密货币:比特币、以太币等数字货币的发行与交易。2. 金融:用于交易结算、证券交易、银行贷款、交易融资等业务。3. 物流和供租并启应链管理: 用于优化物流过程和减少物流成本。4. 物联网:与物联网相关的数据、应用和通信,保证数据的安全和一致性。5. 版权管理: 用于版权信息的打包、存储、管理和交易。6. 选举: 用于公开、透明、安全的虚拟选举。7. 公共服弊如务:政府的文件和数据集的管理,例如出生证明、死蔽扰亡证明等。8. 医疗:用于管理医疗档案和提供更好的医疗服务。9. 慈善事业:用于捐赠和筹款。10. 游戏:游戏虚拟货币的发行管理。
❹ 区块链的加密技术
数字加密技能是区块链技能使用和开展的关键。一旦加密办法被破解,区块链的数据安全性将受到挑战,区块链的可篡改性将不复存在。加密算法分为对称加密算法和非对称加密算法。区块链首要使用非对称加密算法。非对称加密算法中的公钥暗码体制依据其所依据的问题一般分为三类:大整数分化问题、离散对数问题和椭圆曲线问题。第一,引进区块链加密技能加密算法一般分为对称加密和非对称加密。非对称加密是指集成到区块链中以满意安全要求和所有权验证要求的加密技能。非对称加密通常在加密和解密进程中使用两个非对称暗码,称为公钥和私钥。非对称密钥对有两个特点:一是其间一个密钥(公钥或私钥)加密信息后,只能解密另一个对应的密钥。第二,公钥可以向别人揭露,而私钥是保密的,别人无法通过公钥计算出相应的私钥。非对称加密一般分为三种首要类型:大整数分化问题、离散对数问题和椭圆曲线问题。大整数分化的问题类是指用两个大素数的乘积作为加密数。由于素数的出现是没有规律的,所以只能通过不断的试算来寻找解决办法。离散对数问题类是指基于离散对数的困难性和强单向哈希函数的一种非对称分布式加密算法。椭圆曲线是指使用平面椭圆曲线来计算一组非对称的特殊值,比特币就采用了这种加密算法。非对称加密技能在区块链的使用场景首要包含信息加密、数字签名和登录认证。(1)在信息加密场景中,发送方(记为A)用接收方(记为B)的公钥对信息进行加密后发送给
B,B用自己的私钥对信息进行解密。比特币交易的加密就属于这种场景。(2)在数字签名场景中,发送方A用自己的私钥对信息进行加密并发送给B,B用A的公钥对信息进行解密,然后确保信息是由A发送的。(3)登录认证场景下,客户端用私钥加密登录信息并发送给服务器,服务器再用客户端的公钥解密认证登录信息。请注意上述三种加密计划之间的差异:信息加密是公钥加密和私钥解密,确保信息的安全性;数字签名是私钥加密,公钥解密,确保了数字签名的归属。认证私钥加密,公钥解密。以比特币体系为例,其非对称加密机制如图1所示:比特币体系一般通过调用操作体系底层的随机数生成器生成一个256位的随机数作为私钥。比特币的私钥总量大,遍历所有私钥空间获取比特币的私钥极其困难,所以暗码学是安全的。为便于辨认,256位二进制比特币私钥将通过SHA256哈希算法和Base58进行转化,构成50个字符长的私钥,便于用户辨认和书写。比特币的公钥是私钥通过Secp256k1椭圆曲线算法生成的65字节随机数。公钥可用于生成比特币交易中使用的地址。生成进程是公钥先通过SHA256和RIPEMD160哈希处理,生成20字节的摘要成果(即Hash160的成果),再通过SHA256哈希算法和Base58转化,构成33个字符的比特币地址。公钥生成进程是不可逆的,即私钥不能从公钥推导出来。比特币的公钥和私钥通常存储在比特币钱包文件中,其间私钥最为重要。丢掉私钥意味着丢掉相应地址的所有比特币财物。在现有的比特币和区块链体系中,现已依据实践使用需求衍生出多私钥加密技能,以满意多重签名等愈加灵敏杂乱的场景。
❺ 区块链之加密原理总结(一)
先放一张以太坊的架构图:
在学习的过程中主要是采用单个模块了学习了解的,包括P2P,密码学,网络,协议等。直接开始总结:
秘钥分配问题也就是秘钥的传输问题,如果对称秘钥,那么只能在线下进行秘钥的交换。如果在线上传输秘钥,那就有可能被拦截。所以采用非对称加密,两把钥匙,一把私钥自留,一把公钥公开。公钥可以在网上传输。不用线下交易。保证数据的安全性。
如上图,A节点发送数据到B节点,此时采用公钥加密。A节点从自己的公钥中获取到B节点的公钥对明文数据加密,得到密文发送给B节点。而B节点采用自己的私钥解密。
2、无法解决消息篡改。
如上图,A节点采用B的公钥进行加密,然后将密文传输给B节点。B节点拿A节点的公钥将密文解密。
1、由于A的公钥是公开的,一旦网上黑客拦截消息,密文形同虚设。说白了,这种加密方式,只要拦截消息,就都能解开。
2、同样存在无法确定消息来源的问题,和消息篡改的问题。
如上图,A节点在发送数据前,先用B的公钥加密,得到密文1,再用A的私钥对密文1加密得到密文2。而B节点得到密文后,先用A的公钥解密,得到密文1,之后用B的私钥解密得到明文。
1、当网络上拦截到数据密文2时, 由于A的公钥是公开的,故可以用A的公钥对密文2解密,就得到了密文1。所以这样看起来是双重加密,其实最后一层的私钥签名是无效的。一般来讲,我们都希望签名是签在最原始的数据上。如果签名放在后面,由于公钥是公开的,签名就缺乏安全性。
2、存在性能问题,非对称加密本身效率就很低下,还进行了两次加密过程。
如上图,A节点先用A的私钥加密,之后用B的公钥加密。B节点收到消息后,先采用B的私钥解密,然后再利用A的公钥解密。
1、当密文数据2被黑客拦截后,由于密文2只能采用B的私钥解密,而B的私钥只有B节点有,其他人无法机密。故安全性最高。
2、当B节点解密得到密文1后, 只能采用A的公钥来解密。而只有经过A的私钥加密的数据才能用A的公钥解密成功,A的私钥只有A节点有,所以可以确定数据是由A节点传输过来的。
经两次非对称加密,性能问题比较严重。
基于以上篡改数据的问题,我们引入了消息认证。经过消息认证后的加密流程如下:
当A节点发送消息前,先对明文数据做一次散列计算。得到一个摘要, 之后将照耀与原始数据同时发送给B节点。当B节点接收到消息后,对消息解密。解析出其中的散列摘要和原始数据,然后再对原始数据进行一次同样的散列计算得到摘要1, 比较摘要与摘要1。如果相同则未被篡改,如果不同则表示已经被篡改。
在传输过程中,密文2只要被篡改,最后导致的hash与hash1就会产生不同。
无法解决签名问题,也就是双方相互攻击。A对于自己发送的消息始终不承认。比如A对B发送了一条错误消息,导致B有损失。但A抵赖不是自己发送的。
在(三)的过程中,没有办法解决交互双方相互攻击。什么意思呢? 有可能是因为A发送的消息,对A节点不利,后来A就抵赖这消息不是它发送的。
为了解决这个问题,故引入了签名。这里我们将(二)-4中的加密方式,与消息签名合并设计在一起。
在上图中,我们利用A节点的私钥对其发送的摘要信息进行签名,然后将签名+原文,再利用B的公钥进行加密。而B得到密文后,先用B的私钥解密,然后 对摘要再用A的公钥解密,只有比较两次摘要的内容是否相同。这既避免了防篡改问题,有规避了双方攻击问题。因为A对信息进行了签名,故是无法抵赖的。
为了解决非对称加密数据时的性能问题,故往往采用混合加密。这里就需要引入对称加密,如下图:
在对数据加密时,我们采用了双方共享的对称秘钥来加密。而对称秘钥尽量不要在网络上传输,以免丢失。这里的共享对称秘钥是根据自己的私钥和对方的公钥计算出的,然后适用对称秘钥对数据加密。而对方接收到数据时,也计算出对称秘钥然后对密文解密。
以上这种对称秘钥是不安全的,因为A的私钥和B的公钥一般短期内固定,所以共享对称秘钥也是固定不变的。为了增强安全性,最好的方式是每次交互都生成一个临时的共享对称秘钥。那么如何才能在每次交互过程中生成一个随机的对称秘钥,且不需要传输呢?
那么如何生成随机的共享秘钥进行加密呢?
对于发送方A节点,在每次发送时,都生成一个临时非对称秘钥对,然后根据B节点的公钥 和 临时的非对称私钥 可以计算出一个对称秘钥(KA算法-Key Agreement)。然后利用该对称秘钥对数据进行加密,针对共享秘钥这里的流程如下:
对于B节点,当接收到传输过来的数据时,解析出其中A节点的随机公钥,之后利用A节点的随机公钥 与 B节点自身的私钥 计算出对称秘钥(KA算法)。之后利用对称秘钥机密数据。
对于以上加密方式,其实仍然存在很多问题,比如如何避免重放攻击(在消息中加入 Nonce ),再比如彩虹表(参考 KDF机制解决 )之类的问题。由于时间及能力有限,故暂时忽略。
那么究竟应该采用何种加密呢?
主要还是基于要传输的数据的安全等级来考量。不重要的数据其实做好认证和签名就可以,但是很重要的数据就需要采用安全等级比较高的加密方案了。
密码套件 是一个网络协议的概念。其中主要包括身份认证、加密、消息认证(MAC)、秘钥交换的算法组成。
在整个网络的传输过程中,根据密码套件主要分如下几大类算法:
秘钥交换算法:比如ECDHE、RSA。主要用于客户端和服务端握手时如何进行身份验证。
消息认证算法:比如SHA1、SHA2、SHA3。主要用于消息摘要。
批量加密算法:比如AES, 主要用于加密信息流。
伪随机数算法:例如TLS 1.2的伪随机函数使用MAC算法的散列函数来创建一个 主密钥 ——连接双方共享的一个48字节的私钥。主密钥在创建会话密钥(例如创建MAC)时作为一个熵来源。
在网络中,一次消息的传输一般需要在如下4个阶段分别进行加密,才能保证消息安全、可靠的传输。
握手/网络协商阶段:
在双方进行握手阶段,需要进行链接的协商。主要的加密算法包括RSA、DH、ECDH等
身份认证阶段:
身份认证阶段,需要确定发送的消息的来源来源。主要采用的加密方式包括RSA、DSA、ECDSA(ECC加密,DSA签名)等。
消息加密阶段:
消息加密指对发送的信息流进行加密。主要采用的加密方式包括DES、RC4、AES等。
消息身份认证阶段/防篡改阶段:
主要是保证消息在传输过程中确保没有被篡改过。主要的加密方式包括MD5、SHA1、SHA2、SHA3等。
ECC :Elliptic Curves Cryptography,椭圆曲线密码编码学。是一种根据椭圆上点倍积生成 公钥、私钥的算法。用于生成公私秘钥。
ECDSA :用于数字签名,是一种数字签名算法。一种有效的数字签名使接收者有理由相信消息是由已知的发送者创建的,从而发送者不能否认已经发送了消息(身份验证和不可否认),并且消息在运输过程中没有改变。ECDSA签名算法是ECC与DSA的结合,整个签名过程与DSA类似,所不一样的是签名中采取的算法为ECC,最后签名出来的值也是分为r,s。 主要用于身份认证阶段 。
ECDH :也是基于ECC算法的霍夫曼树秘钥,通过ECDH,双方可以在不共享任何秘密的前提下协商出一个共享秘密,并且是这种共享秘钥是为当前的通信暂时性的随机生成的,通信一旦中断秘钥就消失。 主要用于握手磋商阶段。
ECIES: 是一种集成加密方案,也可称为一种混合加密方案,它提供了对所选择的明文和选择的密码文本攻击的语义安全性。ECIES可以使用不同类型的函数:秘钥协商函数(KA),秘钥推导函数(KDF),对称加密方案(ENC),哈希函数(HASH), H-MAC函数(MAC)。
ECC 是椭圆加密算法,主要讲述了按照公私钥怎么在椭圆上产生,并且不可逆。 ECDSA 则主要是采用ECC算法怎么来做签名, ECDH 则是采用ECC算法怎么生成对称秘钥。以上三者都是对ECC加密算法的应用。而现实场景中,我们往往会采用混合加密(对称加密,非对称加密结合使用,签名技术等一起使用)。 ECIES 就是底层利用ECC算法提供的一套集成(混合)加密方案。其中包括了非对称加密,对称加密和签名的功能。
ECC 是 Elliptic Curve Cryptography的简称。那么什么是椭圆加密曲线呢?Wolfram MathWorld 给出了很标准的定义: 一条椭圆曲线就是一组被 定义的且满足 的点集。
这个先订条件是为了保证曲线不包含奇点。
所以,随着曲线参数a和b的不断变化,曲线也呈现出了不同的形状。比如:
所有的非对称加密的基本原理基本都是基于一个公式 K = k*G。其中K代表公钥,k代表私钥,G代表某一个选取的基点。非对称加密的算法 就是要保证 该公式 不可进行逆运算( 也就是说G/K是无法计算的 )。
ECC是如何计算出公私钥呢?这里我按照我自己的理解来描述。
我理解,ECC的核心思想就是:选择曲线上的一个基点G,之后随机在ECC曲线上取一个点k(作为私钥),然后根据k*G计算出我们的公钥K。并且保证公钥K也要在曲线上。
那么k*G怎么计算呢?如何计算k*G才能保证最后的结果不可逆呢?这就是ECC算法要解决的。
首先,我们先随便选择一条ECC曲线,a = -3, b = 7 得到如下曲线:
在这个曲线上,我随机选取两个点,这两个点的乘法怎么算呢?我们可以简化下问题,乘法是都可以用加法表示的,比如2*2 = 2+2,3*5 = 5+5+5。 那么我们只要能在曲线上计算出加法,理论上就能算乘法。所以,只要能在这个曲线上进行加法计算,理论上就可以来计算乘法,理论上也就可以计算k*G这种表达式的值。
曲线上两点的加法又怎么算呢?这里ECC为了保证不可逆性,在曲线上自定义了加法体系。
现实中,1+1=2,2+2=4,但在ECC算法里,我们理解的这种加法体系是不可能。故需要自定义一套适用于该曲线的加法体系。
ECC定义,在图形中随机找一条直线,与ECC曲线相交于三个点(也有可能是两个点),这三点分别是P、Q、R。
那么P+Q+R = 0。其中0 不是坐标轴上的0点,而是ECC中的无穷远点。也就是说定义了无穷远点为0点。
同样,我们就能得出 P+Q = -R。 由于R 与-R是关于X轴对称的,所以我们就能在曲线上找到其坐标。
P+R+Q = 0, 故P+R = -Q , 如上图。
以上就描述了ECC曲线的世界里是如何进行加法运算的。
从上图可看出,直线与曲线只有两个交点,也就是说 直线是曲线的切线。此时P,R 重合了。
也就是P = R, 根据上述ECC的加法体系,P+R+Q = 0, 就可以得出 P+R+Q = 2P+Q = 2R+Q=0
于是乎得到 2*P = -Q (是不是与我们非对称算法的公式 K = k*G 越来越近了)。
于是我们得出一个结论,可以算乘法,不过只有在切点的时候才能算乘法,而且只能算2的乘法。
假若 2 可以变成任意个数进行想乘,那么就能代表在ECC曲线里可以进行乘法运算,那么ECC算法就能满足非对称加密算法的要求了。
那么我们是不是可以随机任何一个数的乘法都可以算呢? 答案是肯定的。 也就是点倍积 计算方式。
选一个随机数 k, 那么k * P等于多少呢?
我们知道在计算机的世界里,所有的都是二进制的,ECC既然能算2的乘法,那么我们可以将随机数k描 述成二进制然后计算。假若k = 151 = 10010111
由于2*P = -Q 所以 这样就计算出了k*P。 这就是点倍积算法 。所以在ECC的曲线体系下是可以来计算乘法,那么以为这非对称加密的方式是可行的。
至于为什么这样计算 是不可逆的。这需要大量的推演,我也不了解。但是我觉得可以这样理解:
我们的手表上,一般都有时间刻度。现在如果把1990年01月01日0点0分0秒作为起始点,如果告诉你至起始点为止时间流逝了 整1年,那么我们是可以计算出现在的时间的,也就是能在手表上将时分秒指针应该指向00:00:00。但是反过来,我说现在手表上的时分秒指针指向了00:00:00,你能告诉我至起始点算过了有几年了么?
ECDSA签名算法和其他DSA、RSA基本相似,都是采用私钥签名,公钥验证。只不过算法体系采用的是ECC的算法。交互的双方要采用同一套参数体系。签名原理如下:
在曲线上选取一个无穷远点为基点 G = (x,y)。随机在曲线上取一点k 作为私钥, K = k*G 计算出公钥。
签名过程:
生成随机数R, 计算出RG.
根据随机数R,消息M的HASH值H,以及私钥k, 计算出签名S = (H+kx)/R.
将消息M,RG,S发送给接收方。
签名验证过程:
接收到消息M, RG,S
根据消息计算出HASH值H
根据发送方的公钥K,计算 HG/S + xK/S, 将计算的结果与 RG比较。如果相等则验证成功。
公式推论:
HG/S + xK/S = HG/S + x(kG)/S = (H+xk)/GS = RG
在介绍原理前,说明一下ECC是满足结合律和交换律的,也就是说A+B+C = A+C+B = (A+C)+B。
这里举一个WIKI上的例子说明如何生成共享秘钥,也可以参考 Alice And Bob 的例子。
Alice 与Bob 要进行通信,双方前提都是基于 同一参数体系的ECC生成的 公钥和私钥。所以有ECC有共同的基点G。
生成秘钥阶段:
Alice 采用公钥算法 KA = ka * G ,生成了公钥KA和私钥ka, 并公开公钥KA。
Bob 采用公钥算法 KB = kb * G ,生成了公钥KB和私钥 kb, 并公开公钥KB。
计算ECDH阶段:
Alice 利用计算公式 Q = ka * KB 计算出一个秘钥Q。
Bob 利用计算公式 Q' = kb * KA 计算出一个秘钥Q'。
共享秘钥验证:
Q = ka KB = ka * kb * G = ka * G * kb = KA * kb = kb * KA = Q'
故 双方分别计算出的共享秘钥不需要进行公开就可采用Q进行加密。我们将Q称为共享秘钥。
在以太坊中,采用的ECIEC的加密套件中的其他内容:
1、其中HASH算法采用的是最安全的SHA3算法 Keccak 。
2、签名算法采用的是 ECDSA
3、认证方式采用的是 H-MAC
4、ECC的参数体系采用了secp256k1, 其他参数体系 参考这里
H-MAC 全程叫做 Hash-based Message Authentication Code. 其模型如下:
在 以太坊 的 UDP通信时(RPC通信加密方式不同),则采用了以上的实现方式,并扩展化了。
首先,以太坊的UDP通信的结构如下:
其中,sig是 经过 私钥加密的签名信息。mac是可以理解为整个消息的摘要, ptype是消息的事件类型,data则是经过RLP编码后的传输数据。
其UDP的整个的加密,认证,签名模型如下:
❻ 区块链在金融领域的应用
一、区块链的应用与发展
部分互联网、互联网初创企业以及传统金融行业开始在部分项目进行尝试应用
二、国内金融机构试水区块链
各个金融机构纷纷试水,基本上都处于概念实验阶段,尚未大规模商用。
三、区块银隐链在金融领域应用的全景图
四、代笔
五、数字票据
票据是金融市场中一种重要的金融产品,它具备支付和融资双重功能,具有价值高、承担银行信用或商业信轿尘用等特点。票据一经开立,其票面金额、日期等重要信息不得更改。票据还具备流通属性,在特定生命周期内可进行承兑、背书、贴现、转贴现、托收等交易,交易行为一旦完成,交易就不可被撤销。票据在流通上有两个特点:一是票据流通主要发生在银行承兑汇票,商业承兑汇票的数量和流通量都较少;二是由各银行独立对票据业务进行授信和风险控制,单个银行的风控结果可能会影响到票据市场交易链条上的其他参与者。
数字票据交易平台实验性生产系统使用SDC(Smart Draft Chain,数金链)区块链技术,借助同态加密、零闭搏禅知识证明等密码学算法进行隐私保护,通过实用拜占庭容错协议(PBFT)进行共识,采用看穿机制提供数据监测。
实验性生产系统包含票交所、银行、企业和监控四个子系统:票交所子系统负责对区块链进行管理和对数字票据业务进行监测;银行子系统具有数字票据的承兑签收、贴现签收、转贴现、托收清偿等业务功能;企业子系统具有数字票据的出票、承兑、背书、贴现、提示付款等业务功能;监控子系统实时监控区块链状态和业务发生情况
六、
❼ 知链区块链金融应用实践平台成绩怎么算
1. 工作量证明(PoW)
中本聪在2009年提出的比特币(Bitcoin)是区块链技术最早的应用,其采用PoW作为共识算法,其核心思想是节点间通过哈希算力的竞争来获取记账权和比特币奖励。PoW中,不同节点根据特定信息竞争计算一个数学问题的解,这个数学问题很难求解,但却容易对结果进行验证,最先解决这个数学问题的节点可以创建下一个区块并获得一定数量的币奖励。中本聪在比特币中采用了HashCash[4]机制设计这一数学问题。本节将以比特币采用的PoW算法为例进行说明,PoW的共识步骤如下:
节点收集上一个区块产生后全网待确认的交易,将符合条件的交易记入交易内存池,然后更新并计算内存池中交易的Merkle根的值,并将其写入区块头部;
在区块头部填写如表1.1所示的区块版本号、前一区块的哈希值、时间戳、当前目标哈希值和随机数等信息;
表1.1 区块头部信息
随机数nonce在0到232之间取值,对区块头部信息进行哈希计算,当哈希值小于或等于目标值时,打包并广播该区块,待其他节点验证后完成记账;
一定时间内如果无法计算出符合要求的哈希值,则重复步骤2。如果计算过程中有其他节点完成了计算,则从步骤1重新开始。
比特币产生区块的平均时间为10分钟,想要维持这一速度,就需要根据当前全网的计算能力对目标值(难度)进行调整[5]。难度是对计算产生符合要求的区块困难程度的描述,在计算同一高度区块时,所有节点的难度都是相同的,这也保证了挖矿的公平性。难度与目标值的关系为:
难度值=最大目标值/当前目标值 (1.1)
其中最大目标值和当前目标值都是256位长度,最大目标值是难度为1时的目标值,即2224。假设当前难度为,算力为,当前目标值为,发现新区块的平均计算时间为,则
根据比特币的设计,每产生2016个区块后(约2周)系统会调整一次当前目标值。节点根据前2016个区块的实际生产时间,由公式(1.4)计算出调整后的难度值,如果实际时间生产小于2周,增大难度值;如果实际时间生产大于2周,则减小难度值。根据最长链原则,在不需要节点同步难度信息的情况下,所有节点在一定时间后会得到相同的难度值。
在使用PoW的区块链中,因为网络延迟等原因,当同一高度的两个区块产生的时间接近时,可能会产生分叉。即不同的矿工都计算出了符合要求的某一高度的区块,并得到与其相近节点的确认,全网节点会根据收到区块的时间,在先收到的区块基础上继续挖矿。这种情况下,哪个区块的后续区块先出现,其长度会变得更长,这个区块就被包括进主链,在非主链上挖矿的节点会切换到主链继续挖矿。
PoW共识算法以算力作为竞争记账权的基础,以工作量作为安全性的保障,所有矿工都遵循最长链原则。新产生的区块包含前一个区块的哈希值,现存的所有区块的形成了一条链,链的长度与工作量成正比,所有的节点均信任最长的区块链。如果当某一组织掌握了足够的算力,就可以针对比特币网络发起攻击。当攻击者拥有足够的算力时,能够最先计算出最新的区块,从而掌握最长链。此时比特币主链上的区块大部分由其生成,他可以故意拒绝某些交易的确认和进行双花攻击,这会对比特币网络的可信性造成影响,但历派这一行为同样会给攻击者带来损失。通过求解一维随机游走问题,可以获得恶意节点攻击成功的概率和算力之间的关系:
图1.1 攻击者算力与攻击成功概率
2. 权益证明(PoS)
随着参与比特币挖矿的人越来越多,PoW的许多问题逐渐显现,例如随着算力竞争迅速加剧,获取代币需要消耗的能源大量增加,记账权也逐渐向聚集了大量算力的“矿池”集中[6-9]。为此,研究者尝试采用新的机制取代工作量证明。PoS的概念在最早的比特币项目中曾被提及,但由于稳健性等原因没被使用。PoS最早的应用是点点币(肢肢贺PPCoin),PoS提出了币龄的概念,币龄是持有的代币与持有时间乘积的累加,计算如公式(1.4)所示。利用币龄竞争取代算力竞争,使区块链的证明不再仅仅依靠工作量,有效地解决了PoW的资源浪费问题。
其中持有时间为某个币距离最近一次在网络上交易的时间,每个节点持有的币龄越长,则其在网络中权益越多,同时币的持有人还会根据币龄来获得一定的收益。点点币的设计中,没有完全脱离工作量证明,PoS机制的记账权的获得同样需要进行简单的哈希计算:
其中proofhash是由权重因子、未饥逗消费的产出值和当前时间的模糊和得到的哈希值,同时对每个节点的算力进行了限制,可见币龄与计算的难度成反比。在PoS中,区块链的安全性随着区块链的价值增加而增加,对区块链的攻击需要攻击者积攒大量的币龄,也就是需要对大量数字货币持有足够长的时间,这也大大增加了攻击的难度。与PoW相比,采用PoS的区块链系统可能会面对长程攻击(Long Range Attack)和无利害攻击(Nothing at Stake)。
除了点点币,有许多币也使用了PoS,但在记账权的分配上有着不同的方法。例如,未来币(Nxt)和黑币(BlackCion)结合节点所拥有的权益,使用随机算法分配记账权。以太坊也在逐步采用PoS代替PoW。
3. 委托权益证明(DPoS)
比特币设计之初,希望所有挖矿的参与者使用CPU进行计算,算力与节点匹配,每一个节点都有足够的机会参与到区块链的决策当中。随着技术的发展,使用GPU、FPGA、ASIC等技术的矿机大量出现,算力集中于拥有大量矿机的参与者手中,而普通矿工参与的机会大大减小。
采用DPoS的区块链中,每一个节点都可以根据其拥有的股份权益投票选取代表,整个网络中参与竞选并获得选票最多的n个节点获得记账权,按照预先决定的顺序依次生产区块并因此获得一定的奖励。竞选成功的代表节点需要缴纳一定数量的保证金,而且必须保证在线的时间,如果某时刻应该产生区块的节点没有履行职责,他将会被取消代表资格,系统将继续投票选出一个新的代表来取代他。
DPoS中的所有节点都可以自主选择投票的对象,选举产生的代表按顺序记账,与PoW及PoS相比节省了计算资源,而且共识节点只有确定的有限个,效率也得到了提升。而且每个参与节点都拥有投票的权利,当网络中的节点足够多时,DPoS的安全性和去中心化也得到了保证。
4. 实用拜占庭容错算法(PBFT)
在PBFT算法中,所有节点都在相同的配置下运行,且有一个主节点,其他节点作为备份节点。主节点负责对客户端的请求进行排序,按顺序发送给备份节点。存在视图(View)的概念,在每个视图中,所有节点正常按照处理消息。但当备份节点检查到主节点出现异常,就会触发视图变换(View Change)机制更换下一编号的节点为主节点,进入新的视图。PBFT中客户端发出请求到收到答复的主要流程如图4.1所示[10] [11],服务器之间交换信息3次,整个过程包含以下五个阶段:
图4.1 PBFT执行流程
目前以PBFT为代表的拜占庭容错算法被许多区块链项目所使用。在联盟链中,PBFT算法最早是被Hyper ledger Fabric项目采用。Hyperledger Fabric在0.6版本中采用了PBFT共识算法,授权和背书的功能集成到了共识节点之中,所有节点都是共识节点,这样的设计导致了节点的负担过于沉重,对TPS和扩展性有很大的影响。1.0之后的版本都对节点的功能进行了分离,节点分成了三个背书节点(Endorser)、排序节点(Orderer)和出块节点(Committer),对节点的功能进行了分离,一定程度上提高了共识的效率。
Cosmos项目使用的Tendermint[12]算法结合了PBFT和PoS算法,通过代币抵押的方式选出部分共识节点进行BFT的共识,其减弱了异步假设并在PBFT的基础上融入了锁的概念,在部分同步的网络中共识节点能够通过两阶段通信达成共识。系统能够容忍1/3的故障节点,且不会产生分叉。在Tendermint的基础上,Hotstuff[13]将区块链的块链式结构和BFT的每一阶段融合,每阶段节点间对前一区块签名确认与新区块的构建同时进行,使算法在实现上更为简单,Hotstuff还使用了门限签名[14]降低算法的消息复杂度。
5. Paxos与Raft
共识算法是为了保障所存储信息的准确性与一致性而设计的一套机制。在传统的分布式系统中,最常使用的共识算法是基于Paxos的算法。在拜占庭将军问题[3]提出后,Lamport在1990年提出了Paxos算法用于解决特定条件下的系统一致性问题,Lamport于1998年重新整理并发表Paxos的论文[15]并于2001对Paxos进行了重新简述[16]。随后Paxos在一致性算法领域占据统治地位并被许多公司所采用,例如腾讯的Phxpaxos、阿里巴巴的X-Paxos、亚马逊的AWS的DynamoDB和谷歌MegaStore[17]等。这一类算法能够在节点数量有限且相对可信任的情况下,快速完成分布式系统的数据同步,同时能够容忍宕机错误(Crash Fault)。即在传统分布式系统不需要考虑参与节点恶意篡改数据等行为,只需要能够容忍部分节点发生宕机错误即可。但Paxos算法过于理论化,在理解和工程实现上都有着很大的难度。Ongaro等人在2013年发表论文提出Raft算法[18],Raft与Paxos同样的效果并且更便于工程实现。
Raft中领导者占据绝对主导地位,必须保证服务器节点的绝对安全性,领导者一旦被恶意控制将造成巨大损失。而且交易量受到节点最大吞吐量的限制。目前许多联盟链在不考虑拜占庭容错的情况下,会使用Raft算法来提高共识效率。
6. 结合VRF的共识算法
在现有联盟链共识算法中,如果参与共识的节点数量增加,节点间的通信也会增加,系统的性能也会受到影响。如果从众多候选节点中选取部分节点组成共识组进行共识,减少共识节点的数量,则可以提高系统的性能。但这会降低安全性,而且候选节点中恶意节点的比例越高,选出来的共识组无法正常运行的概率也越高。为了实现从候选节点选出能够正常运行的共识组,并保证系统的高可用性,一方面需要设计合适的随机选举算法,保证选择的随机性,防止恶意节点对系统的攻击。另一方面需要提高候选节点中的诚实节点的比例,增加诚实节点被选进共识组的概率。
当前在公有链往往基于PoS类算法,抵押代币增加共识节点的准入门槛,通过经济学博弈增加恶意节点的作恶成本,然后再在部分通过筛选的节点中通过随机选举算法,从符合条件的候选节点中随机选举部分节点进行共识。
Dodis等人于1999年提出了可验证随机函数(Verifiable Random Functions,VRF)[19]。可验证随机函数是零知识证明的一种应用,即在公私钥体系中,持有私钥的人可以使用私钥和一条已知信息按照特定的规则生成一个随机数,在不泄露私钥的前提下,持有私钥的人能够向其他人证明随机数生成的正确性。VRF可以使用RSA或者椭圆曲线构建,Dodis等人在2002年又提出了基于Diffie-Hellman 困难性问题的可验证随机函数构造方法[20],目前可验证随机函数在密钥传输领域和区块链领域都有了应用[21]。可验证随机函数的具体流程如下:
在公有链中,VRF已经在一些项目中得到应用,其中VRF多与PoS算法结合,所有想要参与共识的节点质押一定的代币成为候选节点,然后通过VRF从众多候选节点中随机选出部分共识节点。Zilliqa网络的新节点都必须先执行PoW,网络中的现有节点验证新节点的PoW并授权其加入网络。区块链项目Ontology设计的共识算法VBFT将VRF、PoS和BFT算法相结合,通过VRF在众多候选节点中随机选出共识节点并确定共识节点的排列顺序,可以降低恶意分叉对区块链系统的影响,保障了算法的公平性和随机性。图灵奖获得者Micali等人提出的Algorand[22]将PoS和VRF结合,节点可以采用代币质押的方式成为候选节点,然后通过非交互式的VRF算法选择部分节点组成共识委员会,然后由这部分节点执行类似PBFT共识算法,负责交易的快速验证,Algorand可以在节点为诚实节点的情况下保证系统正常运行。Kiayias等人提出的Ouroboros[23]在第二个版本Praos[24]引入了VRF代替伪随机数,进行分片中主节点的选择。以Algorand等算法使用的VRF算法为例,主要的流程如下:
公有链中设计使用的VRF中,节点被选为记账节点的概率往往和其持有的代币正相关。公有链的共识节点范围是无法预先确定的,所有满足代币持有条件的节点都可能成为共识节点,系统需要在数量和参与度都随机的节点中选择部分节点进行共识。而与公有链相比,联盟链参与共识的节点数量有限、节点已知,这种情况下联盟链节点之间可以通过已知的节点列表进行交互,这能有效防止公有链VRF设计时可能遇到的女巫攻击问题。
7. 结合分片技术的公式算法
分片技术是数据库中的一种技术,是将数据库中的数据切成多个部分,然后分别存储在多个服务器中。通过数据的分布式存储,提高服务器的搜索性能。区块链中,分片技术是将交易分配到多个由节点子集组成的共识组中进行确认,最后再将所有结果汇总确认的机制。分片技术在区块链中已经有一些应用,许多区块链设计了自己的分片方案。
Luu等人于2017年提出了Elastico协议,最先将分片技术应用于区块链中[25]。Elastico首先通过PoW算法竞争成为网络中的记账节点。然后按照预先确定的规则,这些节点被分配到不同的分片委员会中。每个分片委员会内部执行PBFT等传统拜占庭容错的共识算法,打包生成交易集合。在超过的节点对该交易集合进行了签名之后,交易集合被提交给共识委员会,共识委员会在验证签名后,最终将所有的交易集合打包成区块并记录在区块链上。
Elastico验证了分片技术在区块链中的可用性。在一定规模内,分片技术可以近乎线性地拓展吞吐量。但Elastico使用了PoW用于选举共识节点,这也导致随机数产生过程及PoW竞争共识节点的时间过长,使得交易延迟很高。而且每个分片内部采用的PBFT算法通讯复杂度较高。当单个分片中节点数量较多时,延迟也很高。
在Elastico的基础上,Kokoris-Kogias等人提出OmniLedger[26],用加密抽签协议替代了PoW选择验证者分组,然后通过RandHound协议[27]将验证者归入不同分片。OmniLedger。OmniLedger在分片中仍然采用基于PBFT的共识算法作为分片中的共识算法[28],并引入了Atomix协议处理跨分片的交易,共识过程中节点之间通信复杂度较高。当分片中节点数量增多、跨分片交易增多时,系统TPS会显着下降。
Wang等人在2019年提出了Monoxide[29]。在PoW区块链系统中引入了分片技术,提出了连弩挖矿算法(Chu ko-nu mining algorithm),解决了分片造成的算力分散分散问题,使得每个矿工可以同时在不同的分片进行分片,在不降低安全性的情况下提高了PoW的TPS。
❽ 区块链的应用方面
区块链主要应用的范围包括:数字货币、金融资产的交易结算、数字政务、存证防伪数据服务等领域。区块链是将数据区块有序链接,每个区块负责记录一个文件数据,并进行加密来确保数据不能够被修改和伪造的数据库技术。
区块链本质上是一个应用了密码学技术的多方参与、共同维护、持续增长的分布式数据库系统也称为分布式共享账本。共享账本中的每一页就是一个区块,每一个区块写满了交易记录,区块链技术匿名性、去中心化、公开透明、不可篡改等特点让其备受企业的青睐,得到了更加广泛的应用尝试。
区块链能够提供信任机制,具备改变金融基础架构的潜力,各类金融资产如股权、债券、票据、仓单、基金份额等都可以被整合到区块链技术体系中,成为链上的数字资产,在区块链上进行存储、转移和交易。
区块链技术的去中心化,能够降低交易成本,使金融交易更加便捷、直观和安全。区块链技术与金融业相结合,必然会创造出越来越多的业务模式、服务场景、业务流程和金融产品,从而给金融市场、金融机构、金融服务及金融业态发展带来更多影响。随着区块链技术的改进及区块链技术与其他金融科技的结合,区块链技术将逐步适应大规模金融场景的应用。
传统的公共服务依赖于有限的数据维度,获得的信息可能不够全面且有一定的滞后性。区块链不可篡改的特性使链上的数字化证明可信度极高,在产权、公证及公益等领域都可以以此建立全新的认证机制,改善公共服务领域的管理水平。
公益流程中的相关信息如捐赠项目、募集明细、资金流向、受助人反馈等,均可存放于区块链上,在满足项目参与者隐私保护及其他相关法律法规要求的前提下,有条件地进行公开公示,方便公众和社会监督。
利用区块链可追溯、不可篡改的特性,可以确保数据来源的真实性,同时保证数据的不可伪造性,区块链技术将从根本上改变信息传播路径的安全问题。
区块链对于信息安全领域体现在以下三点:
区块链的分布式存储架构则会令黑客无所适从,已经有公司着手开发基于区块链的分布式互联网域名系统,绝除当前 DNS 注册弊病的祸根,使网络系统更加干净透明。
区块链+物联网,可以让物联网上的每个设备独立运行,整个网络产生的信息可以通过区块链的智能合约进行保障。
安全性:传统物联网设备极易遭受攻击,数据易受损失且维护费用高昂。物联网设备典型的信息安全风险问题包括,固件版本过低、缺少安全补丁、存在权限漏洞、设备网络端口过多、未加密的信息传输等。区块链的全网节点验证的共识机制、不对称加密技术及数据分布式存储将大幅降低黑客攻击的风险。
可信性:传统物联友毁网由中心化的云服务器进行管控,因设备的安全性和中心化服务器的不透明性,用户的隐私数据难以得到有效保障。而区块链是一个分布式账簿,各区块既相侍尺互联系又有各自独立的工作能力,保证链上信息不会被随意篡改。因此分布式账本可以为物联网提供信任、所有权记录、透明性和通信支持。
效益性:受限于云服务和维护成本,物联网难以实现大规模商用。传统物联网实现物物通信是经由中心化的云服务器。该模式的弊端是,随着接入设备的增多,服务器面临的负载也更多,需要企业投入大量资金来维持物联网体系的正常运转。
而区块链技术可以直接实现点对点交易,省略了中间其他中介机构或人员的劳务支出,可以有效减少第三方服务所产生的费用,实现效益最大化。
供应链由众多参与主体构成,存在大量交互协作,信息被离散地老告高保存在各自的系统中,缺乏透明度。信息的不流畅导致各参与主体难以准确地了解相关事项的实时状况及存在问题,影响供应链的协同效率。当各主体间出现纠纷时,举证和追责耗时费力。
区块链可以使数据在各主体之间公开透明,从而在整个供应链条上形成完整、流畅、不可篡改的信息流。这可以确保各主体及时发现供应链系统运行过程中产生的问题,并有针对性地找到解决方案,进而提升供应链管理的整体效率。
去年宣布合伙使用区块链建立一个概念证明来简化汽车租赁过程,并把它建成一个“点击,签约,和驾驶的过程。未来的客户选择他们想要租赁的汽车,进入区块链的公共总账;然后,坐在驾驶座上,客户签订租赁协议和保险政策,而区块链则是同步更新信息。这不是个想象,对于汽车销售和汽车登记来说,这种类型的过程也可能会发展为现实。
很多年来,许多公司致力于使得买进、卖出、交易股票的过程变得容易。新兴区块链创业公司认为,区块链技术可以使这一过程更加安全和自动化,并且比以往任何解决方案与此同时,区块链初创公司 Chain 正和纳斯达克合作,通过区块链实现私有公司的股权交
政务信息、项目招标等信息公开透明,政府工作通常受公众关注和监督,由于区块链技术能够保证信息的透明性和不可更改性,对政府透明化管理的落实有很大的作用。政府项目招标存在一定的信息不透明性,而企业在密封投标过程中也存在信息泄露风险。区块链能够保证投标信息无法篡改,并能保证信息的透明性,在彼此不信任的竞争者之间形成信任共只。并能够通过区块链安排后续的智能合约,保证项目的建设进度,一定程度上防止了腐败的滋生。
区块链技术应用还有很多很多,这只是区块链应用的一下支点。未来区块链技术将应用各个地方