MIT开发新加密货币,用户所需数据比比特币减少99%
MIT的研究人员开发了一种新的加密货币,大大减少了用户加入网络和验证交易所需的数据,与当今流行的加密货币相比,最高可达99%。这意味着网络更具扩展性。
像比特币之类流行的加密货币都是构建于区块链上的网络,而区块链是按照一系列单个区块格式化的金融分类账,其中的每个区块都包含交易数据。这些网络是去中心化的,意味着没有银行或组织来管理资金和余额,因此,用户联合起来存储和验证交易。
但是,去中心化导致扩展方面的问题。为了加入一种加密货币,新用户必须从成百上千个单独的区块那里下载和存储所有交易数据。为了使用服务和帮助验证交易,他们还必须存储这些数据。这让处理过程速度变慢,或对某些人来说产生了毫无必要的计算。
在下个月将要举行的网络和分布式系统安全研讨会上,MIT的研究人员将发表一篇论文,介绍Vault这种加密货币,用户只需下载一部分交易数据就可以加入网络。它还集成了删除占用空间的空账户的技术,只需要使用整个网络中划分和共享的最新交易数据就可以验证,从而最大限度地降低了单个用户的数据存储和处理要求。
在实验中,Vault与比特币相比,减少了99%的加入网络带宽要求,与以太坊相比,则减少了90%,而以太网被认为是如今最有效率的加密货币之一。重要的是,Vault还确保所有节点验证所有交易,提供与现有节点相同的严格安全性。
论文合著者之一的Derek Leung说:“目前存在很多加密货币,但是,在新用户加入系统和存储方面遇到了瓶颈。这里的主要目标是使加密货币有良好的扩展性,能为越来越多的用户服务。”他是计算科学和人工智能实验室(Computer Science and Artificial Intelligence Laboratory,简称CSAIL)的研究生。论文的其他合著者是CSAIL研究人员Yossi Gilad、电气工程和计算科学系(the Department of Electrical Engineering and Computer Science,简称EECS)的教授Nickolai Zeldovich以及2018届校友Adam Suhl。
Vault与区块的比较
加密货币网络中的每个区块都包含一个时间戳,其在区块链中的位置,以及由数字和字母组成的固定长度的字符串,被称为“哈希”,本质上这就是区块的标识。每个新区块包含区块链中前一个区块的哈希值。Vault中的区块还包含高达1万个交易(或10MB的数据),这些必须全部由用户验证。该区块链的结构,尤其是哈希链,确保对手无法在不被检测到的情况下攻击区块。
通过下载所有过去的交易数据以确保它们是安全的和最新的,新用户就可以加入加密货币网络,或“引导程序(bootsrap)”。例如,去年要加入比特币,用户需要下载50万个区块,总计约150GB的数据。用户也必须存储所有账户余额以帮助验证新用户和确保用户有足够的资金来完成交易。存储需求正变得越来越大,因为比特币的账户扩展了,目前超过了2千2百万个。
研究人员在一个被称为“Algorand”的新加密货币网络上构建了自己的系统,Algorand是由MIT的工程福特教授Silvio Micali发明的,它是安全的、去中心化的,并且比其他加密货币有更好的扩展性。
对于传统的加密货币,用户在解验证区块的方程上竞争,第一个解得方程的获得资金。随着网络的扩展,这将减慢交易的处理。Algorand利用“股权证明”概念以更高效地验证区块并更好地支持新用户加入。对于每个区块,选择一个代表性的验证“委员会”。网络中拥有更多资金(或股权)的用户被选中的概率更高。要加入网络,用户验证每个证书而非每个交易。
但是,每个区块都包含一些关键信息以在此之前立即验证证书,意味着新用户必须从链上的第一个区块开始,连同其证书,按顺序逐一验证,这将非常耗时。为了加快速度,研究人员根据区块其后数百个或1千个区块给出每个新的证书验证信息,这被称为“breadcrumb”。当新用户加入时,他们把前面一个区块的breadcrumb和1千个区块之前的breadcrumb进行比较。这些breadcrumb可以与另外1千个区块之前的breadcrumb匹配,以此类推。
Derek Leung说道:“论文的标题是个双关语。Vault是可以存储资金的地方,但是,在加入网络时,区块链也让你‘超’过区块。当我进行引导时,只需要一个过去的区块来验证将来的区块。我可以跳过中间的所有区块,这为我们节省了很多带宽。”
划分和丢弃
为了减少数据存储需求,研究人员用一种新颖的“分片”方案设计了Vault。该技术把交易数据划分成更小的部分(或分片),并且在整个网络中共享这些分片,因此,单个用户只需要处理少量的数据就能验证交易。
为了实现安全地共享,Vault使用二进制默克尔树,这是一种众所周知的数据结构 。在二叉树中,单个顶部节点分为两个“子”节点,并且,这两个子节点各自又被分为两个子节点,以此类推。
在默克尔树中,顶部节点包含一个哈希,称为根哈希。但是,默克尔树是从底部开始向上构造的。该树将底部的每个子哈希对组合起来形成其父哈希。重复该过程直到树的顶部,从每对子节点分配一个父节点,直到把一切都组合到根哈希。在加密货币中,顶部节点包含单个区块的哈希。每个底部节点包含一个哈希,表示该区块中涉及交易的账户的余额信息。该余额哈希和区块哈希是绑定在一起的。
为了验证任何一个交易,网络把两个子节点组合起来以获得父节点哈希。在树上重复处理过程。如果最终组合的哈希匹配该区块的根哈希,则交易获得验证。但是,对于传统的加密货币,用户必须存储整个树结构。
对于Vault,研究人员把默克尔树分成片,分配给分离的用户组。每个用户账号只存储其被分配片的账户余额及根哈希。诀窍是让所有用户存储一层节点,该层节点横切整个默克尔树。当用户需要验证其分片外部的交易时,他们追溯到共同层的路径。从共同层,他们可以决定其分片外部账户的余额,并继续进行正常的验证。
Derek Leung说:“每个网络分片负责存储大数据结构的一小片,但是这一小片允许用户验证所有网络其他部分的交易。”
此外,研究人员设计了一种新颖的方案,来识别和丢弃用户分配到的在一段时间内余额为零的分片账户。其他加密货币保留所有的空账户,这增加了数据存储的需求,但因为无需验证,而没有任何实际意义。当用户在Vault中存储账户数据时,会忽略这些旧的空账户。
原文链接:http://news.mit.edu/2019/vault-faster-more-efficient-cryptocurrency-0124
相关文章:

深入了解AI加速芯片的定制数据流架构与编译器 | 公开课
随着人工智能时代的来临,业内对于更高效率算力的需求也越来越紧迫,而传统的 CPU 计算能力弱,只适合软件编程,并不适合应用于人工神经网络算法的自主迭代运算。为了满足支撑深度学习的大规模并行计算的需求,人工智能芯片…

《GPU高性能编程CUDA实战》中代码整理
CUDA架构专门为GPU计算设计了一种全新的模块,目的是减轻早期GPU计算中存在的一些限制,而正是这些限制使得之前的GPU在通用计算中没有得到广泛的应用。使用CUDA C来编写代码的前提条件包括:(1)、支持CUDA的图形处理器,即由NVIDIA推…

50年来最具影响力的十大编程语言!
作者 | javinpaul译者 | 馨怡责编 | 屠敏出品 | CSDN(ID:CSDNnews)【导语】“适者生存”的自然法则在应用竞争激烈的编程语言界同样适用,而在数百种编程语言中,相对而言,哪些最具影响力?哪些才是…

【基础篇】DatePickerDialog日期控件的基本使用(一)
项目步骤: 1.首先在Main.xml布局文件中添加一个Button标签,用来点击显示日期控件,Main.xml内容如下: <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android" xmlns:tools"http://sch…

PoPo数据可视化第9期
PoPo数据可视化 聚焦于Web数据可视化与可视化交互领域,发现可视化领域有意思的内容。不想错过可视化领域的精彩内容, 就快快关注吧 :)2018 in the Ito Design Lab(视频内容请关注微信公众号浏览)1900~2018年城市温度异常变化可视化Temperatur…

面向可解释的NLP:北大、哈工大等提出文本分类的生成性解释框架
作者 | Hui Liu, Qingyu Yin, William Yang Wang 译者 | Rachel编辑 | Jane出品 | AI科技大本营(ID: rgznai100)【导语】北大、哈工大和加州大学圣巴巴拉分校在 ACL 2019 的一篇论文中联合提出了一个全新的生成性解释框架,该框架能够对分类策…

pyramid参数
2019独角兽企业重金招聘Python工程师标准>>> 普通参数permission: 该view的访问权限,这个后续会具体介绍。attr: Pyramid默认调用的是view类的__call__函数,如果需要指定调用其他方法,通过attr指定。如attrindex。renderer: 指定构…

Linux下常用的C/C++开源Socket库
1. Linux Socket Programming In C : http://tldp.org/LDP/LG/issue74/tougher.html 2. ACE: http://www.cs.wustl.edu/~schmidt/ACE.html ACE采用ACE_OS适配层屏蔽各种不同的、复杂繁琐的操作系统API。 ACE是一个大型的中间件产品,代码20万行左右&…

前端技术选型的遗憾和经验教训
我是Max,Spectrum的技术联合创始人。Spectrum 是一个面向大型在线社区的开源聊天应用程序,最近被GitHub收购。我们是一个三人团队,主要拥有前端和设计背景,我们在这个项目上工作了近两年时间。 事后看来,以下是我做出的…

时间序列的建模新思路:清华、李飞飞团队等提出强记忆力E3D-LSTM网络
作者 | Yunbo Wang,、Lu Jiang、 Ming-Hsuan Yang、Li-Jia Li、Mingsheng Long、Li Fei-Fei译者 | 凯隐编辑 | Jane出品 | AI科技大本营(ID:rgznai100)【导读】如何对时间序列进行时空建模及特征抽取,是RGB视频预测分类࿰…

了解node.js
转载自http://debuggable.com/posts/understanding-node-js:4bd98440-45e4-4a9a-8ef7-0f7ecbdd56cb 当我向人们介绍node.js时,通常会得到两种反应,一种人马上就能了解,另一种则是非常困惑。 如果你是第二种人,请看一下我对node的解…

VS2013中Image Watch插件的使用(OpenCV)
之前在vs2010中写OpenCV程序时经常用NativeViewer,安装此插件后,在调试代码时,对于cv::Mat变量,CV_TYPE类型为CV_8UC1或CV_8UC3,可以随时查看显示结果。其操作步骤为:1. 从http://sourceforge.net/p…
【spring boot2】第8篇:spring boot 中的 servlet 容器及如何使用war包部署
嵌入式 servlet 容器 在 spring boot 之前的web开发,我们都是把我们的应用部署到 Tomcat 等servelt容器,这些容器一般都会在我们的应用服务器上安装好环境,但是 spring boot 中并不需要外部应用服务器安装这些servlet容器,spring …

让织梦内容页arclist标签的当前文章标题加亮显示
很多人在用织梦做站的时候,会用到在当前栏目页面,给当前栏目标题使用指定样式如标题加亮,或者放个背景图。这是一个很常用和实用的功能,比如在导航页面,标识当前在浏览哪个栏目。如下图: 但是有些时候&…

RHEL6入门系列之九,常用命令2
今天还是继续来学习Linux的基本命令。4、touch命令——建立空文件touch命令用于建立空文件。[rootlocalhost ~]# mkdir /root/test ‘创建目录/root/test[rootlocalhost ~]# touch /root/test/test1.txt ‘在目录/root/test中创建空文件test1.txt[rootlocalhos…

为什么华为200万招聘AI博士,马斯克却推出脑机接口对抗AI?
作者 | 伍杏玲来源 | CSDN(ID:CSDNnews)7 月,华为一则薪资通知刷爆朋友圈:华为给8位博士应届生给予 89.6 万至 201 万的年薪。其中薪资最高的两位博士均研究人工智能相关专业。7 月还有一件大事:马斯克发布…

Artistic Style在windows下的使用(C/C++)
ArtisticStyle是一个开源的源代码格式化工具。主页地址为:http://astyle.sourceforge.net/,它可以应用在C、C、Objective-C、C#、Java等程序语言中。http://astyle.sourceforge.net/astyle.html中为对使用它的详细介绍。从http://sourceforge.net/projec…

ESXi主机与网络中其他主机的网咯数据包捕获
1、tcpdump-uw -i vmk0 -s 1514 host x.x.x.x 指定捕获与某台主机间的网络数据包2、tcpdump -i vmk0 -s 1514 port not 22 and port not 53 在捕获的数据包中,过滤掉指定端口的数据包3、tcpdump-uw -i vmk0 -s 1514 -w traffic.pcap 捕获的数据包保存成PCAP文件&…

Windows下批处理文件(.bat)的使用
批处理(Batch),就是进行批量的处理,英文译文BATCH,批处理文件后缀BAT就取的前三个字母,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中。批处理文件是扩展名为.bat或.cmd的文本文件,包含一条或…

金融业加速智能化,解析360金融AI基础架构和应用
传统金融信贷业务中,催收、客服及电销人员占比超过 60%,人员素质参差不齐的现状造成了管理成本过高的问题,由此衍生的客户体验差,也成为困扰金融业的一大通病。 8 月 15 日,在 360金融 AI 媒体开放日上,360…

正则:匹配一个汉字姓名
//汉字姓名正则var reg/^[\u4e00-\u9fa5]{2,}(\.[\u4e00-\u9fa5])?$/console.log(reg.test(张卫健.爱新觉罗))console.log(reg.test(兔子)) 复制代码

NLP命名实体识别开源实战教程 | 深度应用
作者 | 小宋是呢来源 | CSDN博客近几年来,基于神经网络的深度学习方法在计算机视觉、语音识别等领域取得了巨大成功,另外在自然语言处理领域也取得了不少进展。在NLP的关键性基础任务—命名实体识别(Named Entity Recognition,NER…

poj 2063完全背包
题意:给出总资金和投资年份 ,n个股票 给出股票价格和其一年的利润。问如何选择能获得最大利润。 思路:股票可以重复选择,完全背包问题,完全背包也是从01背包衍生而行的,其主要区别在于中间那层循环的次序不…

UTF-8 CPP的使用
UTF-8 CPP是一个简单、小巧、轻量级、跨平台的UTF-8编码字符串库。下面对其使用方法进行简单的介绍:1. 从http://sourceforge.net/projects/utfcpp/下载最新的utf8_v2_3_4.zip源码,将其解压缩;2. 新建一个vs2013 控制台工程TestUTF…
一行js代码识别Selenium+Webdriver及其应对方案
有不少朋友在开发爬虫的过程中喜欢使用Selenium Chromedriver,以为这样就能做到不被网站的反爬虫机制发现。 先不说淘宝这种基于用户行为的反爬虫策略,仅仅是一个普通的小网站,使用一行Javascript代码,就能轻轻松松识别你是否使用…
Android系统移植与调试之-------如何修改Android设备添加重启、飞行模式、静音模式等功能(一)...
1、首先先来看一下修改前后的效果对比图 修改之后的图片 确认重启界面 具体的修改内容在下一篇中具体介绍。 Android系统移植与调试之------->如何修改Android设备添加重启、飞行模式、静音模式等功能(二) 作者:欧阳鹏 欢迎转载…

鸿蒙霸榜GitHub,从最初的Plan B到“取代Android”?
整理 | 郭芮出品 | CSDN(ID:CSDNnews)距离 8 月 9 日鸿蒙(HarmonyOS)正式发布刚刚过去九天,这场由华为领衔的技术风暴,经过十年蛰伏,终于成功引爆全球。与此同时,一个非官…
CODING 最佳实践:快课网研发效能提升之路
快课企业移动学习平台是上海快微网络科技有限公司自主研发的企业级 SaaS 平台,提供移动学习、考试练习、培训管理、知识分享、统计分析等学习和培训功能,为员工、经销商及客户等全价值链合作伙伴提供全面的知识服务。本文将详细介绍快课网的研发团队是如…

基于chyh1990/caffe-compact在windows vs2013上编译caffe步骤
1. 从https://github.com/chyh1990/caffe-compact下载caffe-compact代码; 2. 通过CMake(cmake-gui)生成vs2013 x64 caffe工程; 3. 从https://github.com/google/protobuf下载ProtoBuf,解压缩,编译ProtoBuf…

菜鸟学***——菜鸟的旅程
第一章.菜鸟的旅程作为一个典型的菜鸟,第一次去网吧上网我不知道怎么开机是很正常的事情,但是无论怎么菜怎么无知也无法阻止我对于***的崇拜,我喜欢他们的那种神秘和在我们普通人眼中的无所不能,在网络世界里他们就想鱼…