1. 首页
  2. 资讯
  3. 区块链

公链这么火,难道真的这么完美吗?

毫无疑问,区块链技术拥有很大的潜力,例如去中心化交易所,预测市场和资产管理平台等等,但是这些也只是所有区块链应用中很少的一部分。不过在我们高谈阔论区块链的时候,大家是否想过为何这些去中心化的应用却还没有普及开来,似乎大家对于区块链的认知还停留在比特币上。

blockchain

其实这也很好理解,因为当前区块链底层技术正在面临着几个非常严重的技术壁垒,它们从某种角度来说抑制了区块链应用成为主流。当然,随着技术的发展,我们最终都会解决这些问题。不过我们需要知道这些问题的存在,以及它们究竟是什么:

扩容性的限制
隐私性的限制
缺乏正式的合约
存储限制
不可持续的共识机制
缺乏监管和标准
量子计算机的威胁
其他更多……

1. 扩容性的限制

目前,所有的公链共识协议都有一个充满挑战的限制:每个网络中完全工作的节点都必须要处理全部交易。为什么会这样?别忘了区块链的基本原理是“去中心化”,这意味着没有任何中心化第三方来负责整个系统的安全和维护。所以,网络中任何单个的节点就需要通过处理每一笔转账来保证系统安全,并对整体网络状态进行记录。

虽然去中心化的共识机制给我们带来了区块链最重要的优势,但是这也要付出扩容的代价,因为去中心化限制了区块链上单个全节点可以处理的转账极限。

两个重大的影响:

1.低吞吐量:区块链只可以处理有限的转账数。
2.缓慢的转账时间:处理转账所需的时间很慢。例如,比特币区块转账处理的时间为10分钟,以太坊为14秒。如果是转账高峰期,需要的时间可能更长。但是Square和Visa这些传统支付手段,基本上都是实时通讯。

因此,公有链也被迫要在低转账吞吐量和高程度的中心化之间寻求平衡。

换句话说,随着区块链体量的增加,全网节点对存储,带宽和算力的需求也在增加。最终,这会导致只有某些节点有足够的资源去处理区块,造成中心化的风险。

到那个时候,我们就会有360度的大转变,回到一个中心化的系统,依赖于几个系统上的大玩家,但是我们想要的是一个能够每秒处理几千转账数的去中心化系统。

扩容性解决方案

理论上说,我们想要一个有和比特币、以太坊相似或者更好安全性的区块链,并且不用网络中每个节点都去处理所有的转账。换句话说,我们需要一个机制来限制需要验证每个转账的节点数目,同时也不会失去整个网络对每笔转账验证的信任。听起来很容易,但是技术实现却非常困难。

扩容性对未来区块链的发展是决定性作用。目前已经有一些社区团队在对扩容性进行研究,主要有以下几种。

链下支付通道

微支付通道的原理是将转账移到链下来完成。在这种机制下,区块链上的交互都会被转移到链下来完成,主链只会处理最终的结果,来帮助解决链下遇到的困难。
这就很好的解决了吞吐量问题,因为现在区块链可以通过不同的链下通道增大转账量。而且,只要支付通道开始处理,转账就会发生,而不是等到区块被确认。微支付解决了转账速度的问题,避免了延时性问题。典型的例子就是雷电和闪电网络。

分片

分片的核心内容就是将整个区块链的状态进行分割,变成很多的不同的“分片”,不同的状态都被网络中不同的节点来储存和处理。每个“分片”只需要处理整个状态的一小部分,并且可以同步进行。其实区块链的分片和传统的数据库分片很像,主要的难点在于需要确保去中心化节点的安全性。

链下计算

这和状态通道很像,但是范围更广。主要原理是在链下进行计算(不仅是代币的转账),并保证过程的安全性和可验证性。将原有的主链上的计算和验证过程搬到链下的某个单独的协议中,就可以获得很高的吞吐量。TrueBit就是在以太坊上进行这种扩容方法的案例。

DAGs

DAG,就是有向无环图的简称,是一种有点和边的图像数据结构。(点就是图形中的A,B,C…,边就是从一点到另外一点的路径)。DAG保证了无论从任何一个点开始,沿着路径都不可能回到远处,也就是说,永远不是闭环。

图片 1

DAG的使用案例,例如IOTA的缠节,就是想要线性的区块链结构,使用DAG数据结构来维护整个系统的状态。为了保证整个网络的安全性,这些协议依赖于自己的新方法,不需要每个节点都线性地处理每笔交易。

另一个基于DAG的方案,就是SPECTRE协议,使用DAG区块,并且同步挖出更多的DAG区块来保证更多的吞吐量以及更高的转账时间。

2. 隐私性的限制

尽管区块链转账不会直接和你的身份信息联系,但是这些转账或许可以更加的私密。任何人都可以随机创造钱包,并使用它。区块链转账被记录和存储在开放式账本上,同时和某个账户地址连接。由于这个地址不会和现实世界的身份信息相连,看起来转账者是不可能被追踪的。

但是,这种表面的安全性其实是有误导性的。确实,只要你的转账没有和身份信息连接起来,那么就永远无法发现你,但是,如果一旦有人能使之联系起来,那么这个秘密就被揭开了。网络追踪和网站上的缓存都让我们很容易地获取转账的信息,之后只需要展开调查,就能知道是谁在进行转账。而且,在类似以太坊的平台上,用户在使用智能合约的时候,不仅是转账一种虚拟资产。所有这些细节都被公示在以太坊网络上,包括发送者和接收者,转账数据本身,代码以及智能合约里面的状态改变。

所以,很多公司都不愿意将信息传到区块链上,因为黑客,竞争对手和其他未经授权的人可以看到所有这些信息。例如:

电子医疗病例:这是非常隐私和敏感的信息。所以很难接受存放在公有链上,任何人都可以看到病人的隐私。

身份认证信息:例如身份信息,这类信息是不能放在公开的智能合约上的。

金融文件:例如大公司的并购信息或者员工薪水这类信息,是不能放在公有链上的,因为那些地址其实很容易就被追踪。

隐私性的解决方案

面对这些问题,现在已经有一系列相应的解决方案。以下是几个例子。

ECDHM地址

想要理解ECDHM地址,首先要知道Diffie-Hellman秘钥交换协议,主要的原理就是在两者之间建立共享的秘钥。这样就可以在公开的网络中私密地交换信息。

如何完成呢?

信息的发出者和接受者可以共享ECDHM地址,然后使用它们共享的秘钥来产生一个匿名的比特币地址。这些比特币地址只能由拥有秘钥的人才可以打开。公众可以看到地就只有重复使用的ECDHM地址。因此,用户不用担心转账被跟踪。

图片 1

混合器(mixer)

混合器的原理就是将很多人的支付放入一个池子里,在私人账本中跟踪这些资金。然后,当一个池子中的资金发出,每笔转账的源头就被掩盖。区块链上的任何人可以看到资金的数额,以及接受者,但是理论上说,确认这笔支付的人是没办法追踪的。

图片 1

不过,混合器(mixer)的效果却不是很好,不能称为可靠的方案。例如,研究人员能够很容易地就确定CoinJoind的转账,通过支付32,000美元,攻击者就有90%的概率对交易去匿名化。而且,研究者也发现,混合器(mixer)对Sybil和DoS攻击的保护功能也比较弱。

Monero

另一种方法就是直接创造天生就带有匿名性质的虚拟货币,例如Monero。和很多山寨币不同,Monero不是比特币的分叉,它是基于另一个协议,CryptoNote。Monero最基本的特性是提供“环形签名”(ring signature)结构。

环形签名是一种群体性签名方法,整个群体中每个签名者都有一个私钥和公钥。和传统的加密签名不同,群体性签名是证明某固定群体的一个签名者来确认这项转账,无需暴露到底是谁。

零知识证明

零知识证明是一个证明方(prover)说服验证方(verifier)他们有秘密内容,但是却不用揭露其具体内容的加密协议。换句话说,你可以将秘密输入,但是证明方却不会告诉验证方这个秘密是什么。零知识证明提供了基本的原理,可以用来创建隐私的机制。

使用零知识证明,最好的例子就是Zcash(零币)。Zcash是一种匿名加密货币,有着“转账防护”功能,这种功能使用了“防护地址”,需要转账发送者和接收者建立零知识证明,可以让其他人验证转账的加密信息,但是却不需要揭露信息。

图片 1

代码混淆

代码混淆是要找到某种方法,能够混淆程序P,然后混淆器可以生成另外一个程序O(P) = Q,然后程序P和Q在相同输入的情况下,会生成相同的输出。但是程序Q不会揭露任何程序P内部的信息。这样就可以保护Q内部的隐私信息,例如密码,身份信息等等,但是仍然只能在程序中使用。

预言机(Oracles)

在区块链世界,预言机连接外部数据资源和智能合约,是智能合约和区块链外部数字资源之间的数据载体。所以其中一种保证信息“私密”的方法就是使用预言机从外部数据资源中拿到私密信息。

可信执行环境 (TEE)

TEE是在主处理器上的安全区域,保证了代码和数据的安全性,隐秘性和完整性。这个可信环境和用户操作界面一起运行,但是可以比用户操作系统更加隐私和安全。

图片 1

3. 缺少正规的合约验证

智能合约的正规审核和验证一直是很大的问题。那么为什么对于智能合约来说,验证是如此重要呢?首先,智能合约是不可改变的,也就是说一旦智能合约部署到以太坊主链上,你就没办法去更改或者更新它。所以,在使用这些智能合约之前,就要确保它们是完全正确的。而且,智能合约是对外开放的,里面的内容也是公众都可见的,很容易成为黑客的目标。事实上,在编写智能合约的时候,也很难确保没有错误。例如验证以太坊虚拟机代码就非常困难。

4. 存储量的限制

大多数在公有链上构建的应用,都需要很多的存储空间。(用户信息,财务信息等等)

但是,在区块链上存储信息,其实就意味着将信息存储在网站中所有的全节点中。同时存储空间也有限,因为区块链数据库是不可变的。

对于这类问题,现在也有一些解决方案,将数据分开成不同的片区,并进行分布式储存。主要的原理是,并不需要每个节点来存储所有的信息,有一系列的节点在他们之间来分散信息。例如Swarm,Stroj,IPFS,Decent等项目都是这些解决方案。

5. 不可持续发展的共识机制

矿工挖矿需要花费巨大的算力解决工作量证明算法,但是这些计算工作对社会没有任何价值,并且比特币现在耗费的电力已经占到了全球电力总消耗的0.13%,非常的浪费资源。

想要解决这个问题,可以让计算量证明机制变得有意义, 比如让矿工去计算负责的人工智能问题,而不是计算没有意义的SHA256问题。同时,还可以考虑权益证明共识机制,让挖矿过程虚拟化。使用网络中的“验证者”代替矿工。

6. 缺乏管理和标准

现在的区块链,没有中心化机构去对其制定标准。一方面,这实现了我们的梦想,一个无需第三方信任的世界,但是另一方面,对于整体区块链协议的更新,却没有很安全的途径,没人对制定标准负责。Tezos就是个很好的例子,它试图通过协议内部链上的管理,来对整个协议进行升级。

总体来说,区块链管理是非常困难的,需要在中心化和分布式控制中找到平衡,这才是关键。

7. 量子计算机的威胁

对加密货币和加密算法来说,最重要的威胁就是量子计算机。尽管现在量子计算机如今还不确定到底能解决什么样的问题,但是这些总会被发现。而且,现在大多数著名的公链算法都能够很容易地被量子计算机攻破,是不是很恐怖!所以我们在构建区块链的时候,也要考虑到防量子措施。

其他需要注意的挑战:

我们需要内部区块链的通信,来完成多链沟通(例如比特币,以太坊,莱特币等等),并且能够无缝转账。
我们需要更好的链内秘钥管理系统。
我们需要更有效的签名架构和其他加密系统。

结论

很不幸地是,太多的区块链资金都在推动着ICO的发展。同时,少数的研究员和开发者还在努力解决这些问题,但是却没有足够的资源。很多最有影响力的开发人员,因为利益,也忽视这些问题的存在。

不论现有的投资环境是不是泡沫,我都坚信区块链一定会继续存在。我们只需要解决阻碍区块链称为主流使用的障碍。同时,也需要投资者发现并且资助这些事情。

公链这么火,难道真的这么完美吗?
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。

发表评论

登录后才能评论