我们最近描述了如何将区块链技术应用于真实项目,就如崛起币(Emercoin)一样。“崛起币区块链平台”是第一个被微软Azure应用市场(Azure Marketplace)中加入的区块链服务提供商。这篇文章提供更深入地介绍了崛起币区块链平台(EMC)的技术,并描述了Emer的核心与其他加密数字货币核心之间的主要区别。
就象其它对等网络(P2P Network)一样,Emer在可扩展性方面没有任何限制,随着参与者数量的增加,崛起区块链的效率和可靠性也随之增加,这就是为什么崛起币区块链平台是企业级应用平台,是全球范围内解决方案的完美工具。
介绍
我们先来定义一下术语:
“Emer”是一种技术、网络和基础设施。
“Emercoin”(崛起币)是指在Emer网络内流通的信用点数或支付单位。
作为规则,术语“崛起币”(Emercoin)在语义上指的是上述两个概念,在这里,我们将遵循这一传统。我们将使用“Emer”来指代技术,而不是计算或叙述;我们使用术语“coins”(币)或“money”(钱)来指在分布式电子货币网络内流通的数字信用点数。
Emercoin(崛起币)的历史
从历史上来说,Emercoin的核心继承自Peercoin(点点币),而Peercoin则继承自Bitcoin(比特币)。Peercoin在其产品中引入了一个重要的创新,那就是将Proof-of-Stake(股权证明机制)和Proof-of-Work(工作量证明机制)结合起来,整合为一种实现达成共识的工具,与纯粹的Proof-of-Work(工作量证明机制)和纯粹的Proof-of-Stake(股权证明机制)有所区别。现在,我们先来谈谈这些工具和共识本身。
共识是一种加密数字货币的算法,由分布式网络中的对等体使用,以支持验证某个版本的区块链,是来自所有矿工积极努力的共识结果;他们使用其资源来验证该版本区块链的区块,并获得新产生的数字货币或交易费作为奖励。换句话说,矿工出售他们的服务,以维持对整个数字货币网络的信任度,并以新产生的数字货币作为补偿。
什么是在分布式去中心化网络中的投票?
最明显的答案是:这是一种钱包。但在这种情况下,一个致力于欺诈的投票人可以创建数以百万计的钱包,并使用这些“幽灵投票”来验证他们喜欢的任何版本的区块链。
第二个被普普遍接受的答案是:这是一个IP地址。当然这不是正确的解读方法,任何ISP可以效仿一个大型网络,并创造大量的“幽灵选票”。真正投票需要一定的资源,以及有严格的限定条件,无法复制或伪造。
就比特币系统来说,中本聪提出了一个工作量证明(Proof-of-Work)的解决方案,这种方案是通过计算能力来进行验证。事实上,如果您计算机的计算能力是X,您可以创建N个虚拟子计算机,但总算力不会超过X。换句话说,计算机的所有者不会有更多的投票。现在挖矿的矿机也可以看做是计算机。
然后,其他的共识概念被提出,如关注于除了处理器之外的计算资源,如磁盘驱动器容量,这被称为容量证明(Proof-of-Capacity)。这些新的共识证明概念在加密数字货币的生态系统中引发了一场“军备竞赛”,矿业公司继续投资于挖矿设备,直到他们在设备折旧费用和挖矿收入之间达到平衡,然后就会抱怨“挖矿没有收益”,或“加密数字货币是一种骗局。
股权证明(Proof-of-Stake)共识是Sunny King为其创建的Peercoin(点点币)提出的开创性概念。为了限制投票资源,Peercoin使用由系统本身控制的货币来进行挖矿,有助于将虚拟的数字货币替代硬件资源(如计算机、矿机等),避免了人们陷入“物资军备竞赛”的陷阱,节省了人们在通过矿机挖矿的过程中产生的如电力、设备等资源浪费。
网络安全
用于达成共识的每种工具都有一定缺陷,举例来说,PoW共识的数字货币易收到巨大算力的攻击,而PoS共识的数字货币则易受到其他类型的攻击,如内部攻击,只能使用名为“动态检查点”的附加工具来确保对后者的保护。通常来说,PoS技术已被证明比PoW更可靠和安全。
因此说,Peercoin使用的混合协议被认为是最安全的,这就是为什么它被用于Emer项目的基础。要成功攻击网络,攻击者必须拥有崛起币网络计算能力的51%,以及Emercoin现有存量的51%,因此,攻击者将会遇到两种不同来源的障碍,使得Emer网络受到信任。
选择Peercoin共识机制的另一个原因,是经典和成熟的比特币代码不仅被许多专家在安全方面进行了审查,而且许多针对其的攻击也以失败告终。Emer认为比特币代码得到了很好的支持,从而有助于Emer项目的进一步发展。
此外,Emer对其项目也采用了工业级的方法,即设计的基础必须最大限度的符合现有的标准和规范。考虑到比特币的技术和API在事实上确立了区块链行业的标准,因此Emer团队尽力确保与这些标准进行最大限度的兼容,从而使用比特币作为其核心的基础。
EmerCoin:相似与差异
本节介绍了交互式的区块链组件和永久固化的区块链组件。我们将把Emer区块链与比特币区块链分开来描述其特性。请参阅下面的Emercoin组件的图表映射。
PoW+PoS Vs PoW
如前所述,EmerCoin使用了一个混合共识协议,它定义了项目的起始点。 通常来说,这个混合工具取自Peercoin,其唯一的变化是使用更多的PoS方法。 实质上,Emer是一个基于PoS的加密数字货币,POW协议用作辅助(虽然重要)的工具; 在Emer中,约80%的区块通过PoS产生。
SHA-256
要产生区块,需要使用相同的SHA-256散列函数。Emer选择SHA-256是因为它是一个官方标准,拥有足够高的安全级别,以确保网络的可靠性。
此外,专业ASIC处理器已经长时间用于SHA-256挖矿,所以可让人们做出如下判断:
如果不设计其他新算法的专用设备, 将会导致掌握新设备的人挖矿能力进一步得到巩固,从而引发一场撼动网络的难度革命。
崛起币反对用普通电脑进行挖矿,因为这可能会影响到不该牵涉的人群。众所周知,ASIC(专业挖矿显卡)出现之前,许多计算器病毒使用被感染电脑的计算能力进行比特币挖矿。ASIC会使得这些恶意软件攻击的成本高昂而放弃实施。然而,其他利用通用计算机进行挖矿的虚拟币仍然面临这种风险。
10分钟打包间隔
崛起币打包一个块的时间是10分钟,和比特币和点点币同样的时间间隔。中本聪已经选择了最佳参数;更短的打包时间会导致与孤块产生更多冲突并且会降低网络可靠性。让我们来看看细节情况。
冲突概率的计算是网络更新时间除以块打包时间。网络更新时间取决于网络映射及其负载;如今更新比特币网络可能需要几分钟时间。相应地,其他压缩了块打包时间到分钟以下的虚拟币(如夸克),只要网络负载稍微增加的时候就会不断遭遇分叉威胁。
有人可能会反对,提到以太坊出色的幽灵协议不存在分叉风险。尽管它的孤块(称为“uncles叔叔”)不是产生区块链的一部分,他们参加链版本的投票,因此块间隔从而减少到大约20秒。
不管怎样,崛起币相信这个协议有自己的弱点。例如,一个网络,使用幽灵协议是有网络攻击风险的,例如,一定的临界负载下广播以太网络中会出现极端的交易数量 。简单地说,网络是脆弱的,因为它的更新时间是和他的负载是想对应的,即,交易在极端负载下 (每秒太多的交易),网络更新时间变得与生成一个新块所需的时间相匹配。在这种情况下,不同的矿工可以独立生成候选块包含在区块链内。惊喜来了:这些块将包含相同的交易。这些大块将再次在整个网络流通,交易繁殖,即,产生更多的网络负载,更多的延迟,和“uncles叔叔”。网络的表现好似处于一个DNS /NTP放大攻击风险中。但在这种情况下,相同的网络节点会同时扮演攻击者和受害者的角色,一种由临界负载所引发的情形,它取决于网络映射。
此外,应该记住的是,只有一个候选块将被包含在区块链中。网络使用资源不仅要计算这个块,而且要计算参加投票又不包括在生成区块链中的紧随块。被这样攻击的结果是,对区块链的信任会急剧减少,网络可以用不到51%的总计算容量进行攻击。
考虑这一点,中本聪所使用的方法是迄今为止最实用的。
每个块之后重新计算难度
不像比特币,每2016块之后就要重新计算他的挖矿难度(大约每两周的时间),崛起币(和Peercoin)网络在每个新块之后就重新计算一次难度。这有助于网络的可靠性。案例研究:
假设比特币结束上次难度重新计算预定难度时,50%网络的矿工就停止工作了。顺便说一下,这种情况并不是那么不可能。这个是可能的,假如美国政府控制了大量的矿池并颁布法律终止挖矿。如此的结果,打包块的时间可能翻倍(即这个块的打包时间会变成20分钟一次)。因此只要打包一个块就需要花费2倍的时间,块大小也将翻倍。考虑到现在很多块的大小已经达到1 mb的极限值,很可能许多交易将滞留在块“外部”,然后许多天都得不到确认。这可能会引起想在这个价格出售的人的恐慌,和带来更多的交易,这只会恶化环境。这种情形下恢复系统的话需要花费一个月时间。
假如每个新块被添加后重新计算难度,网络将不会有这样的风险,因为他实时适应新矿工的总计算容量。此外,作为POS币的主导币种, 崛起币不是那么太受到挖矿/或者矿池的影响。即使所有的池同时停止工作,他将仅仅是多花费20%的时间来添加一个块,然后仅仅在24小时内校正系统就会处理这个事情。
再评价POW区块奖励的数量
崛起币有多种工具维持他的矿工容量来调节网络可靠性,比如,一个应用网络哈希率(总旷工容量)的负向反馈回路。在这里矿工奖励并不是一个固定数量(如比特币的情况),而是网络难度的4次开根值的反比这样一个函数值。
以防崛起币在屯币期间价格上涨,许多矿工会对崛起币进行挖矿,造成网络难度增加,从而减少每个块的奖励。如此的结果,网络会保护免遭受法币的高通胀。相反,一旦矿工失去对崛起币的兴趣,不管出于什么原因,系统难度就减小,从而依靠更高的奖励来保留旷工。
理论上,崛起币最有效的挖掘策略是参与者进行合作,使用最小计算容量共享最大收入。然而,这是不可能的,因为自我本位的矿工发现自己身在一个囚徒困境的场景中。
PoS 年化6%
由于崛起币是PoS币,在挖掘网络中既可以使用采矿设备挖矿,也可以将币在他/她的钱包存款产生收入。崛起币作者选择以每年以6%的速度进行PoS奖励。换句话说,如果崛起币原封不动的保持关闭交易一个多月的时间,就很有可能得到打包一个区块的机会,生成年化6%的币给持有人。一旦崛起币被使用,封存时间就被“烧毁”然后新持有者的封存时间会重新开始计算。换句话说,年化6%是最大的POS奖励,需 要保证在币原封不动和完全不发生转移的情况下。目前,崛起币存量增加值PoS年化大约是每年4 - 5%。随着崛起币变得越来越普遍和交易的增加,这个值将减少以匹配典型硬性法币的速率,虽然不是完全为零。
有人可能会会反对这6%的通货膨胀,但它应该提到崛起币有通货紧缩的趋势,即。虚拟币的价值增长,相当快。这可以在虚拟币交易所的汇率上边看到,自从今年年初以来增长了几乎4倍。这个价格和预想的不符是由于币的价值是和对应的经济价值联系的(经济增长推动币价值升值),所以如果和其他因素相比较的话,PoS对整个货币存量的增长贡献可以忽略不计。
发行和销毁崛起币
读完上面的讨论,我们可以得出这样的结论:崛起币存量将不断增长,乍看起来好像是真的。事实上,参与者维持共识向网络出售他们的服务,然后得到产出的新币奖励。然而,为平衡新发行的币,崛起币也有一个对币进行销毁的工具。崛起币伴随着区块链服务进行销毁(发送虚拟币或用NVS购买账户)。换句话说,不同于比特币,限制发币数量又不具有币的销毁工具,崛起币提供无限发行虚拟币的同时又提供一个反向的手段来平衡它。这些出售他们的服务到网络的人会得到奖励,而这些从网络中购买服务的人则需要进行支付。
目前进行一个粗算,并考虑起作用的各项因素,80年内大约会产生10亿EMC(崛起币)。
STUN RFC5389
RFC5389协议是第一个出自崛起币的独有工具,一个解析外部IP地址的STUN工具。NAT之后,钱包软件需要外部IP值来运行。比特币过去接收它(其他虚拟币一直接收它)是通过指向地址到中心化服务器实现(
http://checkip.dyndns.org),但是这个请求的代码在上一个比特币的版本更新中被删除,只使用UPNP或手动设置配置。这种方法由于几个原因被否决(例如多层NAT后UPNP失效),决定不指向中心化服务器地址,而应用在VoIP有类似用途的STUN工业标准。目前,崛起币集团管理公共STUN服务器的大多数完整目录,它在STUN子系统中使用这些服务器识别外部IP地址。
交易优化器
交易优化器是另一个崛起实现的独有创新工具。
有虚拟币交易功能的区块链在创建一个新的交易时,必须在交易中为花销金额选择一个输入子集。就像其他虚拟币一样,比特币使用一个随机算法进行1000次随机分析选择一个子集,这个子集的总额尽可地能接近目标金额,然而,即使钱包包含一个子集完全匹配目标金额,标准算法却几乎总是忽略这个子集,为支付创建一个新的交易却维持这种差异。这将导致创建过大的交易传送而且需要在将来的交易中抵消这种差异。
此外,该算法是所谓的“金砂”问题的由来,导致一些无用交易。
崛起应用动态规划的方法选择交易子集。这个算法是确保找到的一个交易子集,可能的话确保和目标数量的完美匹配。结果评估显示,崛起币平均交易传送下降了5%,相应地,他使得区块链膨胀率得以减速。有关详细信息,请参阅我们的文章。
http://www.emercoin.info/zh-Hans/news/20160115/Emercoin实现了解决区块链数据通胀的方案.html分布式动态检查节点
PoS 币容易受到一些外来的PoS-specific攻击。最危险的一种叫做“内部攻击”。我们的想法是,防止欺诈者控制没有币的空钱包,这样的欺诈者可能会追赶系统时间回滚这些钱包到有币的时刻 。从而欺诈者控制51%的虚拟币,建立一个更长的链将主链替换掉,并且回溯改变区块链内容。
这些攻击可能被阻止通过检查节点,限制区块链调整到一定深度。比特币在嵌入的钱包中只使用硬性的检查节点;这样的检查节点只有在钱包更新发布的时候进行更新。不同的是,点点币和崛起币使用动态检查节点并且在线发送数据。这个不需要客户端的任何代码更新,使检查节点的结构保持更新。
就像前面的Emer的发布,目前点点币仅仅为一个节点发送检查节点数据。如果被多个节点发送,这些数据将产生网络冲突。因此,这个节点失效会阻止这个动态检查节点数据进行升级。
0.5.0版本发行后,当这些数据被几个独立节点发送的时候,崛起币嵌入了一个分布式动态检查节点结构,一种防止检查节点数据的“二次发送”的算法。这有助于网络可靠性,因为即使一些节点发生故障,检查节点仍在进行更新。
以太坊模式的智能合约
崛起币不提供这样的合约,我们无意在崛起区块链中推行这种合约。崛起币是完全反对这种合约的,这是为了安全起见。我们认为未经授权的、图灵完备的、依赖他人操作代码的下载是非常危险的。
使得这类合约有意义的是“微软核心”(micro-core)方法,在这里所有没有被开发者授权的代码是隔离在崛起核心代码之外执行的。
名称-值存储系统(NVS)
名称-值存储子系统(NVS)是具有实际应用价值的主要创新。该系统的开发灵感来自于域名币的分布式DNS系统 。
不像域名币的类似结构,它重点关注分布式DNS,Emer NVS(崛起NVS)是多用户共享控制的可信分布式通用存储系统。想了解更多细节请随时访问我们的网站。
简要描述说,这个子系统适用于任何类型二进制数据的存储设备(20 Kb大小)。这些数据节点与一个搜索键链接的(可达512个字节)。这个键在整个崛起币网络中是唯一的。换句话说,它是不可能存在任何重复的键。每个记录是与对应钱包主人的支付地址连接的。
支付地址所有者是记录管理的唯一授权人。管理一个记录意味着一个新的记录被创建代替旧记录,或者所有权转移到另外一个支付地址。旧的记录永远不会抹去。他们仍然可以从相关区块链进入。因此,每个记录有一个完整的历史记录,这个记录会列出所有的变更和因变更带来的所有权变化。
从技术上讲,区块链的一个记录指的是一个0.01 emc交易输出划归到记录所有者的支付地址。因此,这一脚本合约中的输出包含NVS的内容。记录所有者是批准花费这个输出唯一授权人,因为批准这个花销的私匙只可以在他/她的钱包被创建。要花费这个数目,一个人必须要修改记录值或者其他属性,包括付款地址。在后一种情况中,记录被转移到包含接收人地址的钱包中。
NVS子系统可以通过JSON API(类似于比特币接口)或可以从指定的入口进入GUI钱包来处理。
在我们将来文章描述的崛起币服务就是基于这个系统。