1. 首页 > 自媒体

公有链的几大挑战

毫无疑问,区块链技术非常具有潜力。

去中心化交易所、预测市场、资产管理平台仅是区块链研发人员们在该领域探索的一小部分。

令人兴奋的是,在ICO中募集数十亿美金,并推动2017年整个价行情上涨。说其中有炒作成分,也是真的。

我也没有其他意思,这些“炒作”确实也是向主流用户进行了推广宣传。而且,现在每当我我谈到“比特币”或者“以太坊”时,到底也大概有点了解,不会再拿疑惑的眼光看着我。

即便如此,我们也不能忽视一个问题:区块链的几大技术痛点,使得它目前并不适合大范围推广使用。

我相信终有一天这些难关一定会被攻克。但是,作为研发人员和投资者,我们需要更客观一点。要知道,区块链需要很多年的摸索,才能真正进行大规模推广。

目前,主要的技术痛点是:

1.可扩展性受限(Limited scalability);2.隐私权受限(Limited privacy);3.缺乏正式合同保障(Lack of formal contract verification);4.存储空间受限(Storage constraints);5.不可持续的共识机制(Unsustainable consensus mechanisms);6.缺乏治理和参考标准(Lack of governance and standards);7.工具不足(Inadequate tooling);8.量子计算威胁(Quantum computing threat);9.其他… …

在这篇文章中,我将详细说说这些技术痛点,并针对这些痛点提出一些解决方案。

作为研发人员,我认为我们要把注意力从ICO,转移到面临的技术难题上,因为后者才是阻碍我们前进的关键。

(本文表述可能并不详尽,或有错漏,欢迎批评指正。)

目前,所有的公有链共识机制都有一个致命的弱点:每一个全节点都必须参与每一笔交易。

为什么呢?要知道区块链本质上是“去中心化”的 ——没有一个中心机构有权利和义务去维护这个系统。相应的,网络中的每个节点有责任去参与到每一笔交易,并通过保存整个交易的副本来保护系统。

虽然去中心化的共识机制为我们带来了诸多好处:安全保障,政治中立,合规审查等等。但是,这会牺牲一部分的可扩展性。去中心化限制了区块链可以处理的交易数量,从而限制了网络中全节点数量。

这会有两个影响:

1.吞吐量低:区块链的交易处理量有限;2.交易处理缓慢:处理交易的用时很长。例如,比特币生成区块的时间是10分钟,而以太坊只需要14秒。在高峰时期,比特币处理一笔交易的时间会更长。与使用Square或Visa的时间进行比较,比特币不占优势。

结果是,公有链必然要在吞吐量低和权利集中之间做个取舍。

换句话说,区块链中交易量的增加,也增加了对节点的存储、宽带和算力的需求。这会使得整个系统会变得非常笨重,最终可能只有少数节点能应对这些需求。发展到极致的话,就会引发集中化的风险。

这样就又依赖第三方的集中式系统了。而本来,我们想要建立的是一个在去中心化的、每秒处理数千个交易的系统。

解决可扩展性问题

理想情况下,我们希望区块链,在具有与比特币和以太坊相似或更好的安全属性的同时,能够在不需要每个节点参与处理每笔交易的情况下运行。换句话说,我们需要一种机制来限制节点数量,同时又能保护网络安全。这听起来可能很简单,但在技术上却很困难。

可扩展性问题亟待解决。目前,业内许多开发团队都已经开始研究解决方案。

链下支付渠道(Off-chain payment channels)

微支付渠道(micropayment channel)背后的理念是让大多数交易可以在链下完成。它本质上是通过一种机制,把原在链上的交易放在链下完成。区块链纯粹作为沉降层(settlement layer),只用处理最终结算,这样其负担就减轻了。

这样可以提高处理效率,从而解决我们前面提到的吞吐量问题。此外,由于交易在支付通道启动时就已发生,而不用等区块被核对,这也解决了交易速度的问题,消除了典型的交易延迟。

有代表性的微支付通道包括雷电网络(Raiden Network)和闪电网络(Lightning Network)。

分片技术(Sharding)

分片概念的背后是,区块链的所有内容被分成不同的“碎片”,每个碎片都由网络中不同的节点存储和处理。每个节点只处理总体数据的一小部分,可以并行处理。除了需要在分布式节点中维护安全之外,区块链分片和传统数据库的分片十分类似。

链下计算(Off-chain computations)

这相当于状态通道(state channels),但范围更大。其本质就是希望以一种安全和可验证的方式,将计算放在链下执行(而不仅仅是代币传输)。这可以提高交易吞吐量,也解决了链上计算成本过高的问题。基于以太坊的TrueBit就是一个好的例子。

DAGs

“DAG”即“有向非循环图(Directed Acyclic Graph)”。这是一种由顶点和边组成的数据图结构。(顶点是图上的一个点,边是从一个顶点到另一个顶点的路径。)DAG保证无法从任何顶点开始,并遵循最终返回到该顶点的一系列边缘(即没有循环)。这样我们就可以得到一个按拓扑顺序排列的节点(或顶点)序列。

像IOTA’s Tangle这种基于DAG的协议,就是完全抛弃全局线性区块链,而使用DAG数据结构来维护系统。为了保护网络安全,这些协议不要求每个节点以线性方式处理每笔交易。

频谱协议(SPECTRE)是另一种基于DAG的协议,使用区块的有向非循环图,并行地挖掘DAG块,以提高吞吐量,缩短交易处理时间。

其他基于DAG的协议,我会在之后的文章里提及。这里要说的是,这些协议还处于起步阶段,没有得到大规模的推广和使用。坦率地说,它们有一些限制/弱点,尚不确定是可行的解决方案。

考虑到区块链交易并不需要绑定身份信息,似乎更加具有隐私性。世界上的任何人都可以创建一个匿名钱包,并用它进行交易。

但是,事实并非如此。

一方面,匿名性无疑是区块链的最大特点之一:交易被记录、存储到公共账本中,并且仅与一个由数字和字母组成的账户地址相连。由于这些账户地址没有绑定用户真实信息,所以无法追踪到实体个人。

然而,这种表象是具有误导性的。诚然,只要地址和个人没有联系,那么个人的隐私是绝对安全的。但是,一旦有人找到其中联系,秘密就会揭晓。好比说,执法机构承认他们能够在调查期间对比特币用户进行追踪。于是用户就不再处于匿名状态。这样也就打破了区块链交易完全匿名这个大前提。

这是讲解完成的?

商家在网站上的跟踪器和cookie很容易造成交易信息的泄露,任何人(包括政府、执法机构和恶意用户)都可以轻而易举地利用这些信息。

此外,随着有了像以太坊这样的区块链平台,用户可以通过智能合约,实现交易之外的更多功能。所有关于智能合约的细节都是公开的,包括发送人、接收方、交易数据、执行代码,以及存储状态。

将关键的商业数据上传到区块链中,黑客、竞争对手或其他未经授权的各方可以查看这些信息,大多数公司都对这点很有顾虑。考虑到:

1.电子病历,这是一个非常隐私和敏感的信息。将这些信息公开放在区块链上,侵害到病人的隐私,一般人都无法接受。2.身份验证数据,像身份证号这类的身份信息,就不能放在公共的智能合约中。3.证件管理,像如密码和密钥就不能放在公开的、不受保护的智能合约中。4.财务文件,如资产表或员工工资,绝不能和易于追踪的账户地址有关联。5.等等。

对于关心隐私和个人权益的个人、组织和行业来说,隐私权是底线。许多区块链和加密货币的拥护者都有共同的期许,希望能够建立一个无需信任的、不受审查的系统,让每个人都可以参与记账。矛盾的是,我们使用的是一个公共的、易于追踪的分类帐。(每次想到这件事,我就头疼!)

针对隐私权的解决方案

是不同开发团队做的努力。

椭圆曲线(ECDHM)地址

谈ECDHM地址之前,需要先了解Diffie-Hellman密钥交换。Diffie-Hellman密钥交换背后的理念是,它在双方之间建立了一个共享的密钥。这可以让用户在区块链网络上实现私密信息的交流。

具体怎么操作呢?

发送方和接收方可以公开共享ECDHM地址,然后利用它们共享的密钥导出匿名比特币地址。这些比特币地址只能由拥有这个密钥的人发出。唯一公开可见的是可重用的ECDHM地址。因此,用户不必担心交易被跟踪。

ECDHM地址方案的一些例子包括Peter Todd的 Stealth Addresses、Justus Ranvier的BIP 47可重用支付代码(reusable payment codes)、Justin Newton的BIP 75带外地址交换(Band Address Exchange)等。然而,这些计划的有效实施和实际使用却很少。

混合器(Mixers)

混合器背后的想法是,一群人可以将他们的付款合并到一个池中,在私人账簿中记录收支情况。然后,当池中的资金被花掉时,每一笔付款的来源就会变得模糊不清。任何人都可以看到支付的金额和收款人,但理论上,具体授权支付的人是无法追踪的。混合服务的一个例子是CoinJoin。

不幸的是,混合器不是一个可靠的解决方案。因为研究人员很容易就能识别CoinJoin交易。并且,有证据显示,只要花费32,000美元,攻击者就可以破坏交易的匿名性。而且,这种攻击的成功率为90%。此外,研究人员还证明,混合器对Sybil攻击和Denial-of-Service提供的保护很少。

更令人不安的是,混合器所谓的私人分类账却需要由某个中央实体管理,这意味着它需要一个可信的第三方来“混合”交易。

由于CoinJoin不是强制的,用户可以自己选择。因此很少人选择参与这种混合池。参与混合的用户很少,很容易就可以追踪出某一特定输出的来源。

混合解决方案的另一个例子是CoinShuffle,这是一种去中心化的混合协议,由德国萨尔兰大学的一组研究人员开发。CoinShuffle试图改进CoinJoin,不再需要可信的第三方来完成混合交易。

门罗(Monero)

另一种保护隐私的方法是创建一个私有的加密货币,比如门罗。与许多代币不同的是,门罗不是比特币的分叉。相反,门罗是基于另一种协议:CryptoNote。

门罗提供了“环签名”方案。

环签名是一种群签名,组中的每个签名者都有一个私钥和一个公钥。不同于由单个签名者使用私钥“批准”的传统签名模式,环签名证明是来自固定组的一个签名者批准了交易,而不公开具体签名的人的信息。

零知识证明

零知识证明是指在不直接透露信息的情况下,向验证者证明这些私密信息。换句话说,程序上,将信息输入,而验证时不向验证者透露任何信息。零知识证明提供了基本的原语,可以用来建立隐私保护机制。例子包括:

案例1:挑战 / 反应小游戏(Challenge / response games)

在执行挑战 — 反应认证时,一方提出一个问题(“质询”),而另一方必须提供一个有效的答案(“响应”)来进行认证。这个“游戏”可以用来验证链上交易。如果特定交易无效,则另一个节点可以选择“提请注意”。这就需要提供一个可验证的证据,来确认交易是无效的。如果做不到这一点,就会产生一个“质疑”,要求交易的发起人产生一个“响应”来证明交易是有效的

让我们看一个例子:假设“Bob”有访问某资源的唯一通道。Alice现在也想来访问这个资源。于是Bob提出了一个挑战,也许是“52w72y”。Alice必须用一串符合Bob提出的挑战的字符来回应。使用仅有Bob和Alice知道的算法,才能找到对应答案。此外,Bob每次都会发出不同的挑战。所以就算Alice知道某次的答案也没用。

挑战 / 反应游戏已经在以太坊这样的区块链中使用了。但是,我们需要软件库和工具来使这种验证方案更易于使用。

案例2:Example 2: zkSNARKs

zkSNARKs到底是什么?让我们分解一下定义:

1.ZK=Zero-knowledge,即“零 + 知识”。不需要了解信息,就能证明信息的存在。2.SNARK: Succinct Non-interactive Adaptive ARgument of Knowledge,即“简洁的、非交互式的、适应性的知识论证。”3.简洁的(Succinct):指可以快速验证的简洁证据。4.非交互的(Non-interactive):指不要求验证者与证明人交互。证明人可以先公布证据,之后验证者再进行验证。5.适应性的知识论证(Adaptive ARgument of Knowledge):指计算知识的证明。

之后我会在其他文章种详细说说zkSNARKs,但在这里,我将跳过技术细节。总而言之,zkSNARKs是非常有希望确保隐私性的,但有几个注意事项:

1)SNARKs是资源密集型的。2)SNARKs允许用户证明他们有访问某个秘密的权限,但用户有责任维护该秘密,并在需要时使其可用。3)SNARKs有一个设定阶段(setup phase)。在此阶段,要确保算力固定。算力固定的大前提时可信环境:不仅要求用户信任准备设定的人员,而且还意味着SNARKs总是需要一个准备阶段,所以是所有计算设备都适用。

案例3:zkSNARKs + Zcash

Zcash是一种基于zkSNARKs的保护隐私的加密货币。Zcash所谓的“屏蔽交易”,所有使用过的代币都会在一个匿名集里。屏蔽交易使用“屏蔽地址”,这要求发送方或接收方生成零知识证明,允许其他人在不接触交易信息的情况下,可以对交易数据进行验证。

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:http://www.fjxmta.com/zmt/57961.html

联系我们

在线咨询:点击这里给我发消息

微信号:wx123456