Back to list
Aug 26 2017

Skycoin Overview 天空币概述

天空币介绍

天空币是基于一种新的被称为公共广播频道的加密原语的技术。它也引入了一种称为Obelisk的新共识算法实施。Obelisk减少了比特币底层的工作量证明及挖矿过程所带来的承诺问题,从而解决了大量与挖矿有关的安全问题。Obelisk并非一个算法,而是使用多重技术来实现某个安全保证的实施方案。

比特币及当前区块链协议的创新和缺陷

在比特币里,新的交易数据是保存进入区块里的,区块附加在区块链上。比特币网络里任何人都可以创造新的区块。因此每个区块都有一个单独的母块,但是有一个或多个有效地继承块(孩子)。多条链形成了一棵树,比特币解决的核心问题是让网络中的每个节点对应链树上那一条未来的链是共识区块链从而达成一致。

比特币使用了工作量(POW)证明的技术来确定一条独一无二的区块链。一个有效地区块需要一个低于目标值的哈希值。节点将交易数据加到新的区块里,随机尝试任一数直到一个区块的有效哈希值被找到。

在区块树中使用一个功能来创造一个链的总排序。拥有最高难度和需要最多哈希值操作的链将产生"最长的链",最终形成共识链。"区块深度"和"难度"创造了区块树中所有直链的总排序。只有耗费资源最密集的链被接受产生共识链。

比特币节点之间随机连接,每个节点传递它所知道的难度最大的区块链。如果一个节点有一个比其它节点更难产生的链,则节点将按照顺序接收区块。节点将评估其功能并决定接收到的链是否更难产生,从而有可能将它的共识转到接收的链上。然后节点将这条新链广播给其它节点。通过这种方式,共识能够传播到整个网络,所有节点达成相同的共识。

比特币并不假设节点有身份,也不假设节点是诚实的。节点可能发给其它节点任何数据。这不会影响共识决策,因为难度是能够按照其价值进行独立验证的。

比特币的创新

* 区块链

每个人都能拥有的一个数据结构

* 可以交易的公共账本

在区块链里存储财务交易

* 使用工作量证明(POW)和重新定位难度来维持区块产生的恒定速度。

* 使用公钥哈希值作为地址

公钥在使用前不会被公开

* 使用"输出"作为余额

排除尝试创造可分割的数字现金:从一个$25的输出数据,以支付$20为例,发送$20到一个人,同时把$5发送回给自己。

* 工作量(POW)难度功能和区块深度

首次使用可以定义区块树总排序的功能。公共账本规避了传统数字现金的双重支付问题。

比特币的主要缺陷

在开发新的加密货币的解决方案时,必须解决一些问题。比特币应被视为一种萌芽期的加密货币,在此基础上未来的发展需要进一步完善。天空币的技术通过重新设计整个分布式协议系统以便解决比特币的主要缺陷。

* 比特币里的共识决策不是最终性的,可以被复原。

个人或组织可以租用或者购买足够的哈希算力来复原交易。

* 比特币可以达到网络共识,但是单独的比特币节点是容易遭受对手的攻击,尤其是来自那些可以控制数据包通过的路由器。

那些控制路由器的对手,对节点有绝对的控制力,可以专横地影响节点的共识决策。

* 比特币交易所极度容易遭受攻击

熟练的攻击者使用51%攻击法则, 或通过购买及销售比特币交易所的山寨币来使交易所破产。

* 银行和赌博网络易遭受51%攻击

* 随着比特币的不断成熟,购买比特币的期权和攻击网络变得更有利可图

在未来,成功地攻击比特币可以从期权交易中获利数百万美元。

* 拥有强有力的资本控制的国家以及相互竞争的公司可能会直接攻击比特币网络来保护他们的金融利益。

这类机构可以轻易地吸收攻击网络的成本,同时危及比特币的安全。

* 允许"云哈希"和第三方哈希算力租赁的服务正变得越来越成功

很多大型矿池现在有能力租赁哈希算力来发起大多数攻击。

* 黑客可以使用路由器和网络设备里的诸多安全漏洞来窃取银行和交易所的比特币

攻击者可以控制连接到比特币节点的用户,确保他们连接到被攻击者控制的节点上。比如,一名攻击者可能往银行的侧链上引入一个存款交易,让银行发布一个可以被转发到主要网络的取款交易。

* 比特币无法以低成本提供安全

比特币网络使用大量且持续增长地用电。比特币的安全依赖于通过产生足够多的电耗量。因为安全与实现大多数哈希速率有关,运行比特币网络的成本不断提高。在一个设计良好的系统里,每1美元的安全需要1000美元的规避成本。而在比特币里,这个比例是1:1,而且从环保的角度说是不负责任的。

* 比特币从根本上无法在不牺牲安全性的前提下降低交易时间

比特币交易平均需要花10分钟才能被打包到区块中,如果需要更高的安全性,则花费的时间更长。

分布共识协议的财务账本的可取性

比特币可以被更加完善的功能如下:

* 无双重支付

一旦一个交易被执行,应当无法复原共识。共识应当是不可被撤销为最好。

* 效率

运行绝对安全的账本所消耗的成本应该可以足够低。

* 速度

系统应当允许交易在几秒内确认。

* 透明度

数据足够透明,应当很容易地审计和确认恶意节点。

* 路由器攻击安全

如果节点的共识与网络不同,他们应当能够被探测出。即便网络中的绝大多数节点是恶意和串通的,一些安全特性应当能保持完整无缺的。

在基本原理层面上,很多与比特币系统有关的问题,大部分是由于工作量证明和挖矿的内在承诺问题所引起的。它的安全性代表了一个真实世界的拜占庭将军问题。参与者有操纵验证过程的动机,比如说通过贿赂和黑客行为,攻击者将操纵系统时钟,危害路由器,使用哈希碰撞,往网络里释放几十万的机器人,利用签名延展性。

安全的系统不仅要阻止已知的攻击,还要足够安全及能够进化以适应未来的攻击。比特币的一些问题可以修复,比如说签名延展性。其它问题是根本性的,在不定义一个整的新的框架的情况下是无法解决的,比如对工作量证明和挖矿的依赖。

天空币的安全理念

安全是一个持续识别和防御威胁的过程。搭建一个好的系统来实现"深度防御",有多重冗余系统,能够在任何单独措施及完全失败的情况下,还能够生存下来。好的安全性需要在已存在的高威胁和那些仅仅是低威胁的事情之间做出区分。

显然没有单个系统可以消除所有的安全威胁,并同时实现上述列出的所有目标。天空币代表了加密货币技术的下一步,因为它在安全性上采用了一个模块化分层的方法,使用不同的系统来加强达到特定的保证。天空币专注于解决比特币面临的已经存在的威胁,保护用户抵挡日常的威胁,尽力最大程度地为用户提供防御。这需要完全重新设计比特币,从钱包的产生到区块链的共识以及在其它几个方面的根本性的创新。

比特币中大多数的损失都是由其设计缺陷,缺少可用性以及终端用户错误而非软件和数学的根本性技术攻击引起的。天空币必须解决潜在的数学威胁和由于比特币对用户体验的考虑不周给日常用户造成的安全威胁。差劲的实用性和设计已经促使用户牺牲了安全性,把数以百万美元计的交易依赖于不安全的网络钱包上。尽管每天都有媒体报道频繁出现的大型盗窃事件,但是时至今日,由于使用性问题所造成的比特币丢失数量,已经超过了所有各类罪犯盗取的比特币的总数量。

所有现存的比特币有多达一半从来没有从他们的最初地址转移过,未来也不会。因为他们丢失了无法恢复的钱包文件,丢失钱包或者错误地理解了在钱包文件里实际上备份的东西。Mt.Gox最近报道在一个他们之前不知道的钱包里"发现了"200,000枚比特币。该钱包之前被忽略了,可能不小心被错误删掉了。钱包经常被错误地认为空着,因为计算机软件无法写入一个"太老"的软件所创建的钱包。因此与比特币有关的大多数安全问题发生在使用性层面,终端客户和交易所安全上。

这一章节的剩下部分讲了一些我们跟其他合作伙伴,一起合作创造的新技术来解决网络层面的安全问题,使得天空币区块链比之前的网络更加安全。

我们在数学上证明了我们的系统能够实现共识,拥有我们想要的安全性能,在正常的网络条件下工作良好。我们有一些激动人心的新数据——在其它加密货币或软件从来没见过的结构。天空币的开发过程是迭代性的。随着我们完成细节,解决已知缺陷,测试系统和获得反馈的过程,将会有些调整,改善和优化。

透明性和安全性:Obelisk和公共广播频道

为了解决与比特币系统有关的承诺问题,天空币的底层技术是以公共广播频道的形式实施区块链。每个人都可以阅读及检查链,但是只有拥有者可以为链铸造区块。一个私有链要想有效,每个区块必须通过拥有者的私钥签名。在这个共识算法系统(Obelisk)里的每个节点都有一个私人区块链,这是Obelisk系统的核心原语。

公共广播频道加强及部署了几个约束:

* 一旦一个区块被公布了,则其无法复原回未公布的状态

区块是点对点复制给所有订阅者的。一旦一个区块被公布了,它会传播给所有订阅者。你必须销毁所有接收到区块的订阅者才能把它从互联网上消除。

* 节点未经探测无法公布一个之前区块的不同版本

区块是编号的,如果节点给两个不同区块签了同样地序列号则会被探测出来。

* 节点一旦收到区块在不延迟发布区块的情况下则无法回溯时间戳

时间戳只能往上走,时间戳随着区块序列数单调增长。

* 在链中间的区块如果不将它之后的所有区块都无效,则其无法被修改

在每条哈希链上,每个区块头包含之前区块的哈希

Obelisk

每个Obelisk节点(天空币共识节点)有一个公钥(身份)和个人区块链(公共广播频道)。共识决策和沟通发生在每个Obelisk节点个人区块链的内部。节点公开记录一切事情。这允许社区可以审计节点的欺骗和串通。这能让社区识别出哪些节点参与了攻击网络,公布网络的决策是如何做出的以及哪些节点影响这些决策。

每个节点都有一张它订阅的其它节点的清单。节点的订阅者越多则越"可信",对网络的影响也越大。如果社区不信任代表它们的节点或者感觉网络里的权力太集中了(或者不够集中)社区可以通过集体改变网络里的信任关系来集体改变网络里的权力平衡。节点订阅关系可以是随机的和/或者通过信任网络(订阅你社区里你信任的认识的人的节点)实现。

当一个节点从它订阅的一条链上接收到一个新区块时,它公布这个区块公布的哈希。这是公开承认接收到了区块。每个区块都是打了时间戳的,反引用其它链上的区块。这就创造了一个密集相互关联的区块承认链。这些链建立起了因果关系可以作为下一章节描述的分布式时间戳系统。这使得网络能证明数据没有存在过或者没有公布到网络里或者在某个时间间隔里确定某些节点是否活跃或者下线。

当前的Obelisk共识算法是基于Ben‐Or的随机共识算法。

随机图(最坏情况)的女巫攻击使得女巫节点控制了共识,但是节点无法复原交易,消除了攻击网络的唯一经济激励。在真实世界图表里,网络抗拒女巫攻击性实际上是很高的。运行一个节点按照带宽来说是相对昂贵的,也就禁止了僵尸网络。

信任关系是稀缺的,是可以被撤销的。在一次攻击中,网络的反应是切断不那么可靠的节点,收缩到更小规模的核心的可靠节点。每个节点个人区块链留下的公共记录使得识别参与攻击的节点变得非常容易。随着攻击节点被识别出,单独的服务器切断跟这些节点的关系,降低它们的影响。

因此:天空币网络的主要优势是:

  • 天空币共识是民主的,节点是由社区运行
  • 天空币节点共识是公共的
  • 每个节点开放予社区和第三方审计
  • 天空币系统内部的影响是民主和透明的(但是不均衡的)

简单的二进制共识算法:在两个区块之间进行选择

每个投票决策是一个哈希对(A,B)。A是区块的母块的哈希,而B是该区块的哈希。每个节点就它认为的共识区块进行投票选出下一个区块。如果它定的节点的40%有相同的共识候选人,则节点可以改变那一区块的共识。节点在共识取得之前在两个候选人之间不停跳跃。

多重并发分支选择共识

一个更先进的系统公布(A,B,P),当P是一个介于0到1之间的值。所有继承者的P值之和为1。这使得在多重链分支上实现并发共识。如果网络里的大多数节点是诚实的,它们将形成相同的共识。

天空币同时也拥有一个有限形式的权益证明(POS)。我们偏向投票支持那些交易费更大的区块。如果对于一个已给的母块中,如有两个可能的共识选择,两个区块都会执行你的交易,则交易不管最终这这两个区块中哪个被网络选择都会被有效地执行。早期共识决策被推翻的可能性随着区块深度会出现指数型的下降。