当前位置: 首页 > news >正文

区块链研习 | DAG网络:Blockless无区块概念将解决区块链交易性能问题

本文译自BTCManager.com。作为一种计算机领域的拓补数据结构,DAG(Directed Acyclic Graph,有向无环图)在第一次被提出来结合应用在区块链时,是为了解决比特币区块生成效率低下的问题。基于链式的存储结构,比特币网络平均的出块时间在十分钟左右。而变成区块DAG后,在区块打包时间不变的情况下,可以在网络中并行打包区块,在网络中容纳更多的交易同时进行。而在本文中介绍的DAG与Byteball系统结合的提议,则引入了无区块Blockless的概念,称将极大提升交易效率。

即使是对于普罗大众来说,在接触到虚拟加密货币的时候,就能感受到其显现出区块链相关的技术趋势。在其中最为显著的成果是比特币,同时以太坊也因其独特的技术优势获得不少关注,但实际上,区块链的发展前景远远比这辽阔得多。

在比特币在资本市场呼风唤雨之前,已经有几个版本不同的虚拟加密货币诞生了。但是比特币拥有它们所没有的,就是去中心化的伟大梦想。引入了不可篡改等区块链特性的分布式分类账本,比特币在全球范围内迅速风靡,获得了许多推崇。

然而,随着时间的推移,我们的确看到了在比特币和区块链中出现了一些问题。尽管它依然保持了不可篡改和去中心化的特性,一个巨大的问题已然凸显出来:由于区块链先天运作机制而产生的交易时间过长的问题。在Byteball区块链平台上,一项新技术通过在顶层设计中增添新的特性,来为这个比特币中产生的问题提供解决方案。

这个新技术即为Directed Acyclic Graph (DAG)有向无环图组织模型。与区块链的工作机制不同的是,区块链需要矿工来完成工作量证明(PoW)来执行每一笔交易,而DAG能摆脱区块链的限制来完成这样的操作。相反的是,在DAG中一笔交易接着另外一笔,这意味着一笔交易能够对下一笔交易提供证明,由此一直排序下去。这些交易之间的连接就是DAG,就像区块通过哈希值来向整条区块链提供它们的名字一样。

无区块概念与相邻交易验证机制

通过使用这样一个系统,交易时间的将会变得微不足道,比特币也能得到良好的运作环境。在区块链的运营机制中,每笔交易要花费十分钟的时间。而通过DAG,由于每笔交易都与下一笔交易相连,且矿工被排除在外,交易时长会随着越来越多用户加入系统而缩短。

在DAG系统中,剔除矿工的设置能够避免像区块链系统中某一个矿池集合全网50%算力的威胁,与双重攻击的隐忧。那么,DAG是如何规避这样的威胁的呢?没有了区块链中的工作量证明共识机制,DAG的交易指令能够通过这么多起交易向外扩散,正因为每一笔交易都已经极快地扩散通知至全网,大部分双重支付的攻击尝试将会被系统捕捉到并立即拒绝执行。

以防在DAG网络中的并行支路上同时进行双重支付攻击,Byteball系统启用了由可信目击者(trusted witness)来运作的“主链”(main chain)。用户将能够从被验证过的和信赖的“目击者”中进行挑选,而这一条主链的记录会被认证为唯一有效的。

和以太坊相比较,DAG网络虽然不具备智能合约强制执行的特性,但它能为用户提供一个相对简单、清晰易辨的架构,以太坊的系统则要更为复杂许多。这不仅使得用户能更容易去理解他们的虚拟货币什么时候和怎么样进行支付,而非依靠着一个满是程序员和合约的世界。从这个角度来看,可以把DAG网络看出是一个智能合约缺席执行者和旁观者的版本。

如果DAG能得到更为广泛的应用,它在几乎每个级别都能显露出比区块链更优的特性。在目前区块链系统中,随着交易时长这样的问题显现出来,用户可能会尝试选择如DAG这样更为技术超前的系统。这将会是虚拟加密货币交易在未来的发展趋势吗?也许在目前,对这些新兴技术并重开发才最明智。

原文发布时间为:2017-12-25
本文作者:吴阳煜
本文来源:雷锋网,如需转载请联系原作者。

相关文章:

  • jQuery 自制上传头像插件-附带Demo实例(ajaxfileupload.js第三弹)
  • 干货 | 手把手教你用python实现新浪微博模拟登陆,超详细
  • 百度编辑器ueditor 在vs2008中的使用方法
  • cordova 建立工程生成apk
  • 回流、重绘及其优化
  • JMeter学习参数化User Defined Variables与User Parameters
  • LAMP架构介绍、MySQL和MariaDB介绍、MySQL安装
  • PL/SQL之--变量
  • 面向Android的Tesseract工具
  • java性能优化读书笔记(1)
  • 栈大小和内存分部问题
  • linux系统部署mongodb数据库
  • CentOS6.5菜鸟之旅:安装SUN JDK1.7和Tomcat7
  • Strut2中的标签
  • 区块链应用 | 最全区块链生态图谱发布,一张图看清2400个典型项目
  • JS 中的深拷贝与浅拷贝
  • Apache Pulsar 2.1 重磅发布
  • input的行数自动增减
  • iOS 系统授权开发
  • Java应用性能调优
  • JDK9: 集成 Jshell 和 Maven 项目.
  • Linux CTF 逆向入门
  • maya建模与骨骼动画快速实现人工鱼
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • Theano - 导数
  • 后端_MYSQL
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 设计模式 开闭原则
  • 数据仓库的几种建模方法
  • 优化 Vue 项目编译文件大小
  • 怎么将电脑中的声音录制成WAV格式
  • 自制字幕遮挡器
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​secrets --- 生成管理密码的安全随机数​
  • !$boo在php中什么意思,php前戏
  • # centos7下FFmpeg环境部署记录
  • #HarmonyOS:基础语法
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (js)循环条件满足时终止循环
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (九十四)函数和二维数组
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (三)uboot源码分析
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (一)RocketMQ初步认识
  • (转) 深度模型优化性能 调参
  • .CSS-hover 的解释
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET 解决重复提交问题