学号20189220 2018-2019-2 《密码与安全新技术专题》第五周作业

学号20189220 2018-2019-2 《密码与安全新技术专题》第五周作业

课程:《密码与安全新技术专题》

班级: 1892
姓名: 余超
学号:20189220
上课教师:张健毅
上课日期:2019年2月26日
必修/选修: 选修

1.本次讲座的学习总结

本次讲座主要学习了比特币、区块链的基本原理和交易流程,以及挖矿的意义和区块链的特点、未来的发展预测。

区块链

1.区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
2.区块链(Blockchain),是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
3.狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构, 并以密码学方式保证的不可篡改和不可伪造的分布式账本。
4.广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。

区块链的架构模型

一般说来,区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成。 其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等基础数据和基本算法;网络层则包括分布式组网机制、数据传播机制和数据验证机制等;共识层主要封装网络节点的各类共识算法;激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;应用层则封装了区块链的各种应用场景和案例。该模型中,基于时间戳的链式区块结构、分布式节点的共识机制、基于共识算力的经济激励和灵活可编程的智能合约是区块链技术最具代表性的创新点。
1505483-20190425144412835-348667535.png

区块链的技术

区块链主要解决交易的信任和安全问题,因此它针对这个问题提出了四个技术创新:

  • 第一个叫分布式账本,就是交易记账由分布在不同地方的多个节点共同完成,而且每一个节点都记录的是完整的账目,因此它们都可以参与监督交易合法性,同时也可以共同为其作证。跟传统的分布式存储有所不同,区块链的分布式存储的独特性主要体现在两个方面:一是区块链每个节点都按照块链式结构存储完整的数据,传统分布式存储一般是将数据按照一定的规则分成多份进行存储。二是区块链每个节点存储都是独立的、地位等同的,依靠共识机制保证存储的一致性,而传统分布式存储一般是通过中心节点往其他备份节点同步数据。没有任何一个节点可以单独记录账本数据,从而避免了单一记账人被控制或者被贿赂而记假账的可能性。也由于记账节点足够多,理论上讲除非所有的节点被破坏,否则账目就不会丢失,从而保证了账目数据的安全性。
  • 第二个叫做非对称加密和授权技术,存储在区块链上的交易信息是公开的,但是账户身份信息是高度加密的,只有在数据拥有者授权的情况下才能访问到,从而保证了数据的安全和个人的隐私。
  • 第三个叫做共识机制,就是所有记账节点之间怎么达成共识,去认定一个记录的有效性,这既是认定的手段,也是防止篡改的手段。区块链提出了四种不同的共识机制,适用于不同的应用场景,在效率和安全性之间取得平衡。区块链的共识机制具备“少数服从多数”以及“人人平等”的特点,其中“少数服从多数”并不完全指节点个数,也可以是计算能力、股权数或者其他的计算机可以比较的特征量。“人人平等”是当节点满足条件时,所有节点都有权优先提出共识结果、直接被其他节点认同后并最后有可能成为最终共识结果。以比特币为例,采用的是工作量证明,只有在控制了全网超过51%的记账节点的情况下,才有可能伪造出一条不存在的记录。当加入区块链的节点足够多的时候,这基本上不可能,从而杜绝了造假的可能。
  • 最后一个技术特点叫智能合约,智能合约是基于这些可信的不可篡改的数据,可以自动化的执行一些预先定义好的规则和条款。以保险为例,如果说每个人的信息(包括医疗信息和风险发生的信息)都是真实可信的,那就很容易的在一些标准化的保险产品中,去进行自动化的理赔。在保险公司的日常业务中,虽然交易不像银行和证券行业那样频繁,但是对可信数据的依赖是有增无减。因此,笔者认为利用区块链技术,从数据管理的角度切入,能够有效地帮助保险公司提高风险管理能力。具体来讲主要分投保人风险管理和保险公司的风险监督。

2.学习中遇到的问题及解决

  • 问题1:什么是去中心化?
    问题1解决方案:
    先来考虑一个中心化集中式处理的过程。你要在某宝上买一部手机,交易流程是:你将钱打给支付宝-支付宝收款后通知卖家发货-卖家发货-你确认收货-支付宝把钱打给卖家。在这个过程中,虽然你是在和卖家交易,但是这笔交易还牵扯到了除了你和卖家的第三方,即支付宝,你和卖家的交易都是围绕支付宝展开。因此,如果支付宝系统出了问题便会造成这笔交易的失败。并且虽然你只是简单的买了一个手机,但是你和卖家都要向第三方提供多余的信息。因此考虑极端情况,如果支付宝跑路了或者是拿了钱不却不承认你的交易或者是支付宝所在的城市因为开G20把所有人都赶走了,那么你就悲剧了。
    1505483-20190425150537846-2064310113.png
    而去中心化的处理方式就要显得简单很多,你只需要和卖家交换钱和手机,然后双方都声称完成了这笔交易,就OK了。可以看出在某些特定情况下,去中心化的处理方式会更便捷,同时也无须担心自己的与交易无关的信息泄漏。去中心化是区块链技术的颠覆性特点,它无需中心化代理,实现了一种点对点的直接交互,使得高效率、大规模、无中心化代理的信息交互方式成为了现实。
      
  • 问题2:区块链当前的主要应用场景有哪些?
    问题2解决方案:
    IT之家理解到区块链主要的优势是去中心化(无需中介参与)、过程高效透明、数据高度安全。在未来,数字化的信息都可以加入区块链。

  • 证券市场:证券交易市场也是区块链非常适合的应用领域,两者之间的契合度非常高,传统的证券交易,需要经过中央结算机构、银行、证券公司和交易所这四大机构的协调工作,才能完成股票的交易,效率低了,成本倒是高的可以,而区块链系统就可以独立地完成一条龙式服务。跨境支付与结算:2016年7月14日宣布成功利用SAP和Ripple公司的技术,用20秒的时间将1000加元发送给了德国,而这样的支付一般需要6个工作日来完成,银行之间基于区块链技术的点对点的支付方式,“不但可以全天候支付、实时到账、提现简便及没有隐形成本,也有助于降低跨境电商资金风险及满足跨境电商对支付清算服务的及时性、便捷性需求”

  • 音乐、游戏等数字化流媒体:用区块链的透明度来解决音乐行业的问题,流媒体的出现,虽然让世界人民受益无穷,随时随地都能听到想听的音乐,但音乐人却在反对着这种模式,几乎所有的技术巨头们都布局了流媒体,这种模式的出现,使得模式导致了数字音乐的收益变得不再像传统唱片(唱片数量*价格)一样透明,如Taylor Swift和adele为了促进唱片销量,拒绝与流媒体平台合作。

  • 投票系统:很多商业机构正在积极的打造区块链投票系统,全球证券交易巨头纳斯达克在今年2月份宣布,它正在开发一种基于区块链技术的股东电子投票系统。未来人们可以用自己的手机进行投票,并永远记录于区块链之上。”如果像总统大选等大型投票选举活动使用了区块链技术,那么人们也就无需担心选举过程中存在作弊等现象的发生了。

  • 支付系统:电子现金系统开始展现出取代传统银行的态势,银行们已经意识到了危机感,很多银行的内部培训开始关注区块链等新技术,未来区块链加入传统银行系统也并非异想天开,当前已经有30家世界顶级商业银行结成的R3区块链联盟。

3.本次讲座的学习感悟、思考等

区块链技术类似于目前的网络协议,一旦被真正利用起来有着巨大的潜力,可以降低信任成本和提高工作效率,甚至改变一部分目前已有的规则颠覆部分行业。但区块链也存在着诸多难题,首先是国家政府层面,因为区块链技术尚未成熟,发展前景也不是很明朗,并且对目前国家的中心化机构带来潜在威胁,因此各国政府对区块链持保守态度,在中国更是禁止数字货币的交易。所以区块链在发展上并未得到国家的完全支持。其次区块链技术自身也存在一些问题,比如数据的问题,因为每笔交易都会在各个节点上记录,会存在大量垃圾数据,同时也会存在隐私的问题,虽然采取了加密技术,但是否真的做到了很好的保护隐私,如我购买了某件商品真的有必要记录在其他人的节点上吗?

4.区块链的最新研究现状

  • 第一篇
    1首先我找了一篇发布在Conference: ACM Conference on Computer and Communications Security (CCS) 2015上的论文“Tampering with the Delivery of Blocks and Transactions in Bitcoin”。
    2作者信息:Arthur Gervais†, Hubert Ritzdorf†, Ghassan O. Karame‡and Srdjan ˇCapkun
    3.鉴于比特币越来越多的采用,系统内的交易数量和块大小预计只会增加。为了在不断增加的使用中保持正确的操作,比特币实施了许多必要的优化和可扩展性措施。这些措施将系统中信息广播的数量限制在最低限度。在本文中,作者表明比特币采用的当前可扩展性措施与系统的安全性不一致。更具体地说,作者表明攻击者可以利用这些措施来有效地延迟事务和块传播到特定节点 - 而不会在系统中引起网络分区。作者表明,这使得攻击者可以轻松地进行拒绝服务攻击,大大增加其在网络中的挖掘优势,并且尽管比特币采用了当前的对策,但仍然会花费双倍的交易。基于作者研究的结果,本文提出了一些对策,以提高比特币的安全性而不会降低其可扩展性。
    更具体地说,本文中的贡献可以概括如下:
    •本文表明,资源有限的攻击者可能会滥用比特币客户端采用的现有可扩展性措施,或者至少在20分钟内拒绝有关新生成的块和交易到比特币节点的信息。本文发现并展示了对手如何能够持续否认这些信息的传递。
    •本文通过使用遍布全球的少数主机实施来验证作者们的分析。本文的结果证明了在当前比特币客户端实现中攻击的可行性和易于实现。
    •本文表明,本文的结果可以让对手轻松地进行服务攻击,大大增加其在网络中的挖掘优势,或者在比特币采用的当前对策中进行双重交易。
    •本文提出了一些缓解措施,以加强网络安全性,防止这种不当行为,同时不会破坏比特币的可扩展性。也就是说,作者们建议在比特币中修改块请求管理系统,以便检测块交付中的任何不当行为。此外,利用本文的发现来估计所需的最短等待时间,以便以可观的概率确保快速支付在比特币中的安全性。

1505483-20190426221156936-993552432.png
攻击者可以使用简单的中继代理来转发inv消息,而无需验证相应对象的正确性

1505483-20190426221316603-1058752261.png
通过利用弱矿工的计算能力,对手可以对供应商的1次确认交易进行双重支出。 Tdcor对应于双重支出,并且Tlto是合法交易。

根据我们的发现,我们讨论和探索可能的途径来增强比特币的安全性而不会降低其可扩展性。主要有动态超时、更新块广告、处理交易广告、惩罚不响应的节点。

  • 第二篇
  1. 第二篇论文我找的是发布在2016 IEEE Symposium on Security and Privacy (SP)上的论文,论文的题目为Hawk: The Blockchain Model of Cryptography and Privacy-Preserving Smart Contracts
    2作者信息:Ahmed Kosba ; Andrew Miller ; Elaine Shi ; Zikai Wen ; Charalampos Papamanthou
    3 新兴的智能合约系统优于分散的加密货币,允许相互不信任的各方在没有可信第三方的情况下安全地进行交易。在合同违约或中止的情况下,分散的区块链可确保诚实的当事人获得相应的赔偿。然而,现有系统缺乏交易隐私。所有交易,包括假名和交易金额之间的资金流动,均在区块链中公开。本文提出了Hawk,这是一种分散的智能合约系统,它不会在区块链中明确存储金融交易,从而保留了公众视角下的交易隐私。Hawk程序员可以直观地编写私有智能合约,而无需实施加密,本文的编译器自动生成一个有效的加密协议,其中契约方使用加密原语(如零知识证明)与区块链进行交互。为了正式定义和推理本文所提出的协议的安全性,本文是第一个正式化密码学的区块链模型。正式建模具有独立的意义。本文提倡社区在分散区块链上设计应用程序时采用这种正式模型。
    Hawk,这是一个构建隐私保护智能合约的框架。使用Hawk,非专业程序员可以轻松编写Hawk程序,而无需实施任何加密。我们的Hawk编译器负责将程序编译为区块链和用户之间的加密协议。如图1所示,Hawk程序包含两部分:

表示的私有部分φ私法 它接收参与方的输入数据(例如,“摇滚,纸张,剪刀”游戏中的选择)以及货币单位(例如,拍卖中的出价)。 φ私法执行计算以确定各方之间的支付分配。例如,在拍卖中,获胜者的出价将转至卖家,其他人的出价将被退还。私人鹰计划φ私法 旨在保护参与者的数据和货币兑换。

表示的公共部分φ酒馆 这不会触及私人数据或金钱。

我们的编译器将Hawk程序编译成以下部分,共同定义用户,管理器和区块链之间的加密协议:

区块链的程序将由所有共识节点执行;

用户要执行的程序; 和

由称为经理的特别促进方执行的程序,将在稍后解释。

安全保障
Hawk的安全保障包括两个方面:

链上隐私。在线隐私规定,交易隐私是针对公众提供的(即,针对未参与合同的任何一方) - 除非合同方自己自愿披露信息。虽然在Hawk协议中,用户与区块链交换数据,并依靠它来确保公平对抗中止,私人Hawk程序中的金额和金额交易φ私法密码隐藏在公众的视野之外。非正式地,这是通过向区块链发送“加密”信息,并依靠零知识证据来强制执行合同执行和资金保护的正确性来实现的。

合同安全。而在链隐私保护合同当事人对公众隐私(即,不涉及金融合同当事人),合同安全保护各方从同一合同约定对方。Hawk假设合约方自私行事以最大化自己的经济利益。特别是,它们可以任意偏离规定的协议甚至中止过早。因此,合同安全是一个多方面的概念,不仅包括保密性和真实性的加密概念,还包括在作弊和流产行为存在的情况下的金融公平性。理解合同安全性的最佳方式是通过一个具体的例子,我们将读者引用到IB部分以获得更详细的解释。

最小的信任经理
Hawk合同的执行由称为经理的特殊方促进。经理可以看到用户的输入,并且被信任不会泄露用户的私人数据。但是,管理者不能与受信任的第三方等同 - 即使经理可以任意偏离协议或与当事人串通,经理也不能影响合同的正确执行。如果经理中止协议,则可能在经济上受到惩罚,并且用户相应地获得补偿。
1505483-20190426222149212-2242033.png

编译器包含几个步骤,我们在下图中说明并描述如下:
预处理
首先,输入的Hawk程序分为公共合同和私有合同组件。公共合同是Serpent代码,可以直接在普通加密货币平台(如以太坊)上执行。私有契约是用C语言的子集编写的,并作为输入传递给Pinocchio算术电路编译器[49]。诸如HawkDeclareParties之类的关键字实现为C预处理器宏,用于定义输入(Inp)和输出(Outp)数据类型。目前,我们的私有契约继承了Pinocchio编译器的限制,例如,不能支持动态长度循环。在未来,我们可以通过使用SNARK的递归组合来放松这些限制。

电路增强
在用Pinocchio编译预处理的私有契约代码之后,我们有一个表示输入/输出关系的算术电路 φ私法。这成为更大的运算电路的子组件,我们使用定制的电路组装工具进行组装。此工具通过参与方数量和输入/输出数据类型进行参数化,并附加加密约束,例如计算各方输出值的承诺和加密,并声明输入和输出值满足balance属性。

密码协议
最后,增强运算电路用作最先进的zkSNARK库Libsnark [15]的输入。为避免在以太坊的Serpent语言中实施SNARK验证,我们必须在以太坊的堆栈计算机上添加SNARK验证操作码。我们最终根据我们的协议为各方编译可执行程序以计算Libsnark证明。
1505483-20190426222620140-531252789.png

  • 第三篇
  1. 第三篇论文我找的是发布在IEEE Transactions on Information Forensics and Security ( Volume: 11 , Issue: 8 , Aug. 2016 )上的论文,论文题目为The Balance Attack or Why Forkable Blockchains Are Ill-Suited for Consortium
    2作者信息:Zinelabidine Boulkenafet ; Jukka Komulainen ; Abdenour Hadid
  2. 大多数区块链系统是可分叉的,因为它们要求参与者就多个可能的区块分支中的链条达成一致。在本文中,作者针对这些可分叉的区块链系统确定了一种新的攻击形式,称为平衡攻击。这种攻击的新颖性在于延迟具有平衡挖掘能力的多个节点子组之间的网络通信。作者的理论分析捕获了网络延迟和攻击者的挖掘能力之间的权衡,这种权衡需要在GHOST协议中以高概率进行双重花费。本文在R3联盟的以太坊测试网的设置中量化本文的分析,其中显示单个机器需要将消息延迟20分钟以使消费增加一倍,而具有三分之一采矿能力的联盟仅需要4分钟来增加消费有94%的成功。在争夺不可分叉的区块链设计以防止平衡攻击之前,在本文的私有以太坊链中来进行试验攻击。

人们可以利用Balance攻击来破坏或违反主分支的持久性,从而重写以前提交的事务,并允许攻击者花费更多时间。与之前针对比特币的攻击相反,攻击者必须扩展最长链,以便使正确的矿工获得此结果,攻击的新颖之处在于攻击者对正确的矿工链之一的贡献,以超过另一个正确的矿工链。本文通过提出一个简单的可分叉区块链模型并指定Nakamoto和GHOST共识算法差异来推广本文对toforkable区块链的贡献,即体验分叉的区块链。更准确地说,本文做了以下四个贡献:
1)本文表明,当攻击者可以延迟通信时,GHOST共识协议是高可能性或容易受到双重攻击攻击的攻击。本文介绍了影响分支选择的平衡攻击,而不是试图挖掘更重或更长的分支。
2)如果单个节点可以将通信延迟20分钟或者联盟在4分钟内延迟通信,作者将在R3Ethereum testnet的上下文中说明问题。这种漏洞源于参与者的异质性质,这种性质在小型财团区块链中更加严重。
3)作者主张采用不可分叉的区块链设计来保护平衡攻击。本文的想法是设计免费的区块链,这样任何对手都无法利用分数来影响特定分支的决策。这种设计可能会在关键部门中找到无法容忍数字资产损失的应用

1505483-20190426224051578-797157903.png
Nakamoto在比特币核心的共识协议选择主分支作为最长的分支(黑色),而以太坊核心的GHOST共识协议遵循最重的子树(灰色)

1505483-20190426224202872-824046200.png
两个通信分解由攻击者绘制成子图,其中E 0表示链接子图的通信边缘的切割

1505483-20190426224239266-1896065737.png
截至2016年6月eth-netstats报告的R3以太坊网络的挖掘能力

  • 第四篇
  1. 这是一篇发布在Conference: 2017 IEEE Symposium on Security and Privacy (SP)的论文,论文题目为Hijacking Bitcoin: Routing Attacks on Cryptocurrencies
  2. 作者信息如下:Maria Apostolaki ; Aviv Zohar ; Laurent Vanbever
    3.作为迄今为止最成功的加密货币,比特币成为攻击者的首选目标。虽然已经发现了许多攻击媒介,但是遗漏了一个重要的载体:通过互联网路由基础设施本身攻击货币。实际上,通过操纵路由通告(BGP劫持)或通过自然拦截流量,自治系统(AS)可以拦截和操纵大部分比特币流量。本文介绍了路由攻击的第一个分类法及其对比特币的影响,考虑了针对单个节点的小规模攻击和针对整个网络的大规模攻击。虽然具有挑战性,但本文表明两个关键属性使路由攻击变得切实可行:(i)路由操作的效率; (ii)比特币在采矿和路线方面的重大集中化。具体来说,本文作者发现任何网络攻击者都可以劫持少量(<; 100)BGP前缀来隔离约50%的挖掘能力 - 即使考虑到挖掘池是多宿主的。本文还表明,路径上的网络攻击者可以通过干扰几个关键的比特币消息来大大减缓块传播。本文证明了针对部署的比特币软件的每次攻击的可行性。本文还使用从比特币超级节点结合BGP路由数据收集的数据来量化它们在当前比特币拓扑上的有效性。对比特币的潜在损害令人担忧。通过隔离网络的某些部分或延迟块传播,攻击者可能会浪费大量的采矿能力,导致收入损失并实现广泛的攻击,如双重支出。为了在实践中防止这种影响,还提供短期和长期对策,其中一些可以立即部署。

本文的主要贡献是:
第一项关于比特币网络攻击的综合研究(第三部分),从针对单个节点的攻击到影响整个网络的攻击。

比特币路由性质的测量研究(第六节)。本文表明比特币是高度集中的:很少有AS承载大部分节点,而其他AS拦截了很大一部分连接。

彻底评估路由攻击(分区和延迟攻击)的实用性。本文的评估基于广泛的测量,大规模模拟和实际比特币软件和网络实验。

1505483-20190426224850509-562076202.png
如何通过劫持前缀来隔离节点集来拦截比特币流量的图示

1505483-20190426224917236-868718146.png
如何自然拦截一部分流量的插图可以延迟向受害者节点传递一个块20分钟

算法1:分区算法
1505483-20190426225004435-95423209.png

算法2:泄漏检测算法
1505483-20190426225026810-1689896936.png

A.短期措施
增加节点连接的多样性 AS 连接越多,攻击它就越困难。因此,我们鼓励比特币节点所有者确保他们是多宿主。观察到即使是单宿主比特币节点也可以通过加密隧道使用一个或多个VPN服务从额外连接中受益,这样进出节点的比特币流量就会通过多个不同的AS。希望拒绝通过隧道连接的攻击者需要知道相关的IP地址,或者破坏进出节点的所有加密流量 - 使攻击非常明显。

选择比特币对等体同时考虑路由到比特币节点随机建立8个传出连接。虽然随机性对于避免有偏差的决策很重要,但比特币节点应该建立一些考虑路由的额外连接。为此,节点可以向每个对等体发出traceroute,并分析相同AS在路径中出现的频率,或者,也可以选择其网络的BGP馈送,并根据AS-PATH选择其对等体。在这两种情况下,如果所有路径中都出现相同的AS,则应建立额外的随机连接。

监控往返时间(RTT)攻击期间对被劫持目的地的RTT增加。通过监视RTT到其对等体,节点可以检测突然的变化并建立额外的随机连接作为保护机制。

监视其他统计信息节点应部署异常检测机制以识别突然发生的变化:连接的分布,请求与相应答案之间经过的时间,对等体的同时断开以及其他较低级别的连接异常。同样,异常应该刺激建立额外的随机连接。

拥抱流失节点应该允许网络的自然流失来刷新它们的连接。具有已禁用传入连接的节点或甚至位于NAT或防火墙后面的节点将永远不会从网络的其余部分接收随机传入连接。如果节点被劫持了几分钟并与网络的一部分隔离,则它将仅在重新引导或其中一个传出连接失败时重新连接到另一部分。

使用不同的网关 一个 硒 小号在推断拓扑结构时,我们注意到许多池在同一AS中使用网关。在不同的AS中托管这些网关将使它们对路由攻击更加健壮。

更喜欢在同一个托管的同行 一个S和在/ 24前缀作为托管节点的交通/ 24前缀可以仅部分地被转移(第二节)。托管这些前缀中的所有节点将以互联网前缀总数(~1%)增加为代价来防止分区攻击。或者,节点可以连接到托管在属于其提供者的/ 24前缀中的对等体。通过这样做,它们与至少部分地防止劫持的节点保持秘密(AS内)连接。

B.长期措施
加密比特币通信和/或采用MAC虽然加密比特币连接不会阻止攻击者丢弃数据包,但它会阻止他们窃听连接和修改关键消息。或者,使用消息验证代码(MAC)来验证每个消息的内容是否未被更改将使延迟攻击更加困难。

使用不同的控制和数据通道比特币的一个关键问题是通过过滤默认端口(8333)可以轻松识别其流量。假设加密连接,两端可以在使用众所周知的端口相互连接时协商一组随机TCP端口,并使用它们建立实际的TCP连接,在这些连接上,它们将交换比特币数据。这将迫使AS级别的对手查看所有流量,这将成本太高。

一个更简单(但更差)的解决方案是比特币客户端使用随机TCP端口(用ADDR消息清除编码),因为它会强制AS级别的对手维持状态以跟踪这些端口。虽然节点已经可以在非默认端口上运行,但是这样的节点将接收更少的传入连接(如果有的话),因为默认客户端强烈优先选择在默认端口上运行的对等端。

使用UDP心跳由于非对称路由,两个比特币节点之间的TCP连接可能采用不同的前向和后向路径,使AS级别的对手更强大(因为它们只需要看到一个方向,请参见第V节)。除了TCP连接之外,比特币客户端还可以周期性地发送具有确证数据的UDP消息(例如,具有几个最近的块头)。这些UDP消息可以用作心跳,允许节点发现其连接被部分拦截。由于UDP消息不依赖于返回流量,这将使节点能够意识到它们不同步并建立新连接。

在多个连接上请求块比特币客户端可以向多个对等体请求块的块。该措施将防止行为不当的节点故意延迟块的传递,这仅仅是因为在这种情况下,客户端将仅错过块的一部分,其可以从其他对等体请求。

  • 第五篇
  1. 这是一篇发布在CCS '17 Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security上的论文,论文的题目为Concurrency and Privacy with Payment-Channel Networks
    2.作者信息: Giulio MalavoltaPedro Moreno-Sanchez Aniket Kate Matteo Maffei Srivatsan
    3.无比的区块链协议(如比特币)在事务吞吐量和延迟方面具有固有的局限性。目前解决这一关键问题的努力集中在可以在支付通道网络(PCN)中组合的离线支付渠道,以实现无限数量的支付,而无需访问区块链,而不是注册初始和最终容量。每个频道。虽然这种方法为低延迟和高吞吐量的支付铺平了道路,但实际上它的部署引起了一些隐私问题以及与迄今尚未充分研究的固有同时支付性质相关的技术挑战。在这项工作中,本文为PCN中的隐私和并发奠定了基础,在Universal Composability框架中提供了正式的定义以及实用且可证明安全的解决方案。特别是,本文介绍了Fulgor和Rayo。 Fulgor是PCN的第一个支付协议,为PCN提供可证明的隐私保证,并且与比特币脚本系统完全兼容。但是,Fulgor是一种阻塞协议,因此在当前可用的PCN中容易出现并发支付的死锁。相反,Rayo是第一个实施非阻塞进程的PCN协议(即,至少有一个并发支付终止)。本文通过一个新的不可能性结果表明,非阻塞进程必然以牺牲隐私为代价。 Fulgor和Rayo的核心是Multi-Hop HTLC,这是一种新的智能合约,与比特币脚本系统兼容,提供条件支付,同时减少与先前方法相关的运行时间和通信开销。本文对Fulgor和Rayo的绩效评估表明,10名中级用户的付款只需5秒钟,从而证明了他们在实践中部署的可行性。

总结

近年来区块链技术发展的很快,已经提出了各种各样的实现方法。通过上面论文的总结,我发现区块链的主要研究热点如下:
第一类:恶意造成网络延迟或者隔离发起的攻击

1(15SECURITY)EclipseAttacks on Bitcoin's Peer-to-Peer Network.

2(15CCS)Tampering with the Delivery of Blocks and Transactions in Bitcoin

3(17DSN)TheBalance Attack or Why ForkableBlockchains are Ill-Suited for Consortium

4(17SP)Hijacking Bitcoin: Routing Attacks on Cryptocurrencies

 

第二类:智能合约安全性

5(15CCS)Demystifying Incentives in the Consensus Computer//浪费算力的恶意脚本

6(16CCS)TheRing of Gyges: Investigating the Future of Criminal Smart Contracts//犯罪的智能合约

7(16CCS)TownCrier: An Authenticated Data Feed for Smart Contracts//数据源安全

    [NDSS'18]TLS-N-Non-repudiation over TLS   //CES签名保障数据源的安全

8(16CCS)MakingSmart Contracts Smarter   //智能合约漏洞

9(16SP)Hawk: The Blockchain Model of Cryptography and Privacy-Preserving SmartContract   //智能合约隐私和交易隐私

10(18NDSS)ZEUS_AnalyzingSafety of smart contracts  //智能合约漏洞检测工具

11(18NDSS)Chainspace_ASharded Smart Contracts Platform //智能合约效率扩展

12(18SECURITY)Enter the Hydra-Towards Principled Bug Bounties and Exploit-Resistant Smart Contracts//智能合约安全监测及预防

13[SECURITY'18]teEther-Gnawing at Ethereum to Automatically Exploit Smart Contracts//智能合约漏洞检测-bytecode level

14[SECURITY'18]Enter the Hydra-Towards Principled Bug Bounties and Exploit-Resistant Smart Contracts //智能合约容错

 

第三类:共识协议的设计与改进

12(16NDSS)Equihash:Asymmetric Proof-of-Work Based on the Generalized Birthday Problem  //ASIC-resistent

13(16SECURITY)Enhancing Bitcoin Security and Performance with Strong Consistency viaCollective Signing  //ByzCoin

14(16CCS)The Honey Badger of BFT Protocols  //不需要时间假设仍旧保持活性

15(16CCS)A Secure Sharding Protocol For Open Blockchains //随机安全分片,性能高

16(17SECURITY)REM: Resource-Efficient Mining for Blockchains.//有用的工作

 

第四类:矿池

17(15SP)The Miner's Dilemma//矿池互相攻击

18(17SECURITY)SmartPool: Practical Decentralized Pooled Mining//矿池中心化

19(17CCS)Be Selfish and Avoid Dilemmas: Fork After Withholding (FAW)                 Attacks on Bitcoin //矿池攻击

 

第五类:隐私问题,包括交易隐私、支付通道隐私等

20(17NDSS)P2P Mixing and Unlinkable Bitcoin Transactions //交易隐私

21(17CCS)Solidus-ConfidentialDistributed Ledger Transactions via PVORM//交易隐私

22(17CCS)PracticalUC-Secure Delegatable Credentials with Attributes and          Their Application to Blockchain  //证书引发的隐私问题

23(17CCS)Bolt: Anonymous Payment Channels for Decentralized Currencies //支付通道隐私问题

24(17CCS)Concurrency and Privacy with Payment-Channel Networks//支付通道网络

25(17CCS)Revive: Rebalancing Off-Blockchain Payment Networks// 平衡链下支付通道

26(17CCS)Zero-Knowledge Contingent Payments Revisited: Attacks and            Payments for Services //保证公平交换

27(17NDSS)SilentWhispers: Enforcing Security and Privacy in Decentralized Credit Networks

 

第六类:区块链的应用场景

28(15CCS)Liar, Liar, Coins on Fire!: Penalizing Equivocation By Loss of Bitcoins

29(17CCS)Betrayal, Distrust, and Rationality: Smart Counter-Collusion                Contracts for Verifiable CloudComputing//降低云计算服务商的数量为2

30(17SP)IkTurninga pki around with decentralized automated incentives//CA正确行为

31(18SP)OmniLedger_ASecure, Scale-Out, Decentralized Ledgervia Sharding //账本分片

32(18'INFOCOM)CertChain Public and Efficient Certificate Audit Based on Blockchain for TLSConnections//基于区块链实现证书可公开验证

 
第九类:单

33(15CCS)Micropayments for Decentralized Currencies//降低交易成本使微支付可行

34(15SP)Bitcoin over Tor isn't a Good Idea //基于Tor增加BTC匿名性引发的攻击

35(16CCS)On the Security and Performance of Proof of Work Blockchains//度量框架

36(15CCS)Provisions: Privacy-preserving Proofs of Solvency for Bitcoin Exchanges//交易所可偿还能力证明

37(16NDSS)Centrally Banked Cryptocurrencies//去中心化交易仍保留银行

38(15SP)SoK:Research Perspectives and Challenges for Bitcoin and Cryptocurrencies //对第二代加密货币的综述

参考资料

转载于:https://www.cnblogs.com/yuchao123/p/10769053.html

已标记关键词 清除标记
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对IT的憧憬、向往!此时此景,笔者只专注Android、Iphone等移动平台开发,看着这些源码心中有万分感慨,写此文章纪念那时那景! Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除,从账户中取出amt,如果amt>账户余额抛出异常,一个实体Bean可以表示不同的数据实例,我们应该通过主键来判断删除哪个数据实例…… ejbCreate函数用于初始化一个EJB实例 5个目标文件,演示Address EJB的实现 ,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口函数得到远程接口的引用,用远程接口的引用访问EJB。 EJB中JNDI的使用源码例子 1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上直接地使用它,但是它的主要作用是供程序使用的。本规范尝试满足大型主机、微型主机、个人工作站、和TACs 的不同需求。例如,容易实现协议的设计。 Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天通信演示代码 2个目标文件,一个服务器,一个客户端。 Java Telnet客户端实例源码 一个目标文件,演示Socket的使用。 Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密   Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。   设定字符串为“张三,你好,我是李四”   产生张三的密钥对(keyPairZhang)   张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节   通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后的公钥,将其解码,李四用张三的公钥加密信息,并发送给李四,张三用自己的私钥解密从李四处收到的信息…… Java利用DES私钥对称加密代码实例 同上 java聊天室 2个目标文件,简单。 java模拟掷骰子2个 1个目标文件,输出演示。 java凭图游戏 一个目标文件,简单。 java求一个整数的因子 如题。 Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥   Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从文件中得到公钥编码的字节数组、如何从字节数组解码公钥。 Java数据压缩与传输实例 1个目标文件 摘要:Java源码,文件操作,数据压缩,文件传输   Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页