如何正确的使用区块链技术
扫描二维码
随时随地手机看文章
区块链刚刚度过它的第一个十年,超高的发展速度不仅创造了振奋人心的造富神话,也带来了混乱、误解与欺诈,加上各种路“媒体”“项目方”的以讹传讹,大众甚至是业内人士,在区块链相关的技术与概念的认知上,都存在很大的误区。
只有消除了误区,有正确的价值导向,才能很好的回答以上的问题。今天我们请来了Trias的CTO 魏明博士,为我们扫清对区块链的认知误区,并与我们分享他们对未来区块链应用发展的建议与看法。
溯源逻辑,扫清误区
我见过很多人,上至币圈大佬、投资人,下至普通投资者,对区块链存在误解是一个很普遍的问题。但不管你是要投资、抄币还是做技术,至少得清楚的知道区块链到底是什么东西,能解决什么问题。
我推荐大家一定得好好看经济学人15年10月31号的封面文章《区块链:信任的机器》,这是我能找到的,对区块链最早的权威学术描述。如果你真的要做区块链,不管是投资、抄币还是技术,你都得知道它到底是什么,能干什么。一定要去读。
区块链是可信(trust)技术而不是安全(security)技术
在经济学人里给了一个非常好的定义———“信任的机器”。区块链是一种去中心化的可信(trust)技术,而不是某种安全(security)技术。
为什么专门提到这个?我发现讨论中经常会讲到一些事件,比如某某交易所被盗了多少币,然后就得出区块链技术不好的结论,认为它是没有价值。这是非常错误的一个看法,是对区块链技术完全错误的理解。
上面提到的并不是一个可信问题,而是一个安全问题。信任是不等于安全的,这个概念很多行业内所谓的大专家都会混淆。可信这个问题属于一个独立的学科,它就叫可信计算,跟安全是两码事。通俗的解释一下,皇帝会选择最信任的人执行命令,所以皇帝会信任太监,东厂对他来说就是一个信任的机器。至于皇帝下达的命令是不是正确的,这就和东厂本身没有关系了。
能不能严格按照给出的命令执行,这就是可信问题;至于这个命令对不对,数据隐私不隐私,这就是一个安全问题了。而区块链技术本身并不解决任何的安全问题,因此他还是需要搭配安全技术一起使用的,比如非对称加密、安全随机数等。
而在大多数人看来,没有经济损失才是安全的,这个涉及的范围就太广了,非要钻牛角的讲,你去京东、淘宝故意上传错误数据也会造成经济损失。共识算法保证了区块链的可信,上传的智能合约,发送的转账请求都会非常准确的进行执行,但如果合约本身有安全bug,又或者转账时输错了收账人的地址导致财产无法找回,这就和区块链没有半毛钱关系了,区块链依然是可信的。
不是说用了传统架构就算“伪区块链”
经济学人的文章还专门强调了一件事儿,区块链作为一个去中心化的可信技术,是包含多层的,数据库、通讯、文件系统等都在算在这个下面。
我遇到过很多客户,拿着一个区块链项目,问我代码里为什么会有数据库,为什么会有云服务,你这个东西不算是区块链,你这不就是一个数据库吗?
这种理解是完全错误的,没有什么技术革新是从头造轮子的。只要是一个解决信任的去中心化的系统,底层承载的方式可以是多种多样的,可以是数据库,可以是通讯协议,也可以文件系统,都可以算作区块链。
计算机领域任何一次变革都不是一次完全的革新,它一定是有一定的基础的,而且和以往的技术都有千丝万缕的关系。并没有完美的技术,区块链只要能在现有的系统上做出更好的改进,以前中心化系统有什么问题不好解决的,它哪怕能帮我多解决两三步,让我赚更多的钱,就是有价值的。
传统互联网思维在区块链世界是不适用的
区块链技术早就有了,从比特币开始才逐渐成形,但初期也只是在一个非常小的极客圈子里自嗨。它真正的兴起的原因大家都知道,和暗网有非常大的关系。
最典型例子就是地下丝绸之路这个网站。这是个完全抗监管的自由交易平台,正好这时候比特币就出现了,区块链这个新事物才真正火起来。
我现在见公司新来的产品经理,第一件事不是要听之前做过多少百万级的应用,而是让他们自己去暗网你看看。区块链这个领域真的是非常年轻,要忘记以前做移动互联网的思维,这些东西在区块链里是不适用的,你和所有人的起跑线都是一样的,要真正理解区块链,就必须去寻找它的“原罪”。
包括有人问到我币价的问题,我都会从原罪来分析。其实不用死盯交易所,特别是中心化交易所,这些都是给小白用的,给大家一个喝汤的地方。你得去暗网看看,只要交易主要还是用的比特币,并且它的交易量没有下降,那就完全不用担心比特币的价值。暗网里流动的人类的欲望,就是区块链的“原罪”。
区块链3.0仍是当前努力的目标
我不怕得罪谁,到哪里我都实话实说,我扪心自问,没有看到任何人真正完成了区块链3.0,更别说4.0乃至5.0,如果有项目这样讲自己,你甭管它背景多牛,可以直接略过,这绝对是在忽悠投资者。
我们来看区块链的技术发展曲线,它是大量基于传统技术的,p2p加密网络、数据库技术、电子现金、智能合约、电子签名。我唯一认同的区块链1.0,就是比特币,他是第一个在去中心网络里实现了可信逻辑的;区块链2.0我是认可以太坊的,他在1.0的基础上做出了智能合约,去中心网络里可以跑多个可信逻辑了。到现在,区块链3.0仍然还是所有我们这些从行业者,共同的努力的方向,Trias正在拼命的做真正有价值的DAPP,让区块链有更大的实用性。
区块链目前待改进的方向
那么现在区块链包括智能合约,有没有缺陷?当然有。我看过不少项目,包括自己亲自做的时候,跟一些企业、政府做落地项目,都能深刻体会到。 我们觉得现在主要是有这么几个问题。
和现在技术不兼容,一次重构很难
可以看看以前每一次遇到新技术的革命,大家都能照样拿着C++、JAVA加加功能就好,大不了把底层拿API改改,或者编程逻辑改改,兼容某一个新技术框架,就可以利用新技术升级业务了 。
但是到了智能合约这里,这样重构就很难了。首先大部分跑合约的虚拟机是不支持高级语言的,就算支持了高级语言,也不是说程序员拿着API想怎么实现就怎么实现的。就像以太坊你真正去使用的话,哪怕是写个小游戏,真正能用够用的API也就20多个。因此想要把原有业务整体搬到区块链上,基本不可能,因此链下计算是必不可少的。
链下计算是不可信的
上面也讲到了,链下计算是必不可少的,只有这样才能和传统业务有机融合。Trias在做项目的时候,基本上每次都会遇到很头疼的问题。合作方经常会问为什么要把数据上链。以前的数据,随便找一个后台管理员,都能私自修改它盗取它,看新闻就知道,去年京东就抓了两个私自卖用户数据的运维人员。而这个事情就可以用区块链搞定。
那如果我故意往区块链上传错误的数据,你怎么办呢?这其实就是一个链下计算不可信的问题,也是一个安全的问题。在无法一步到位的现在,我们没办法回避。链下计算有保障了,区块链才会有大发展。
Trias在做应用的时候经常就会想,怎么让链下变得更可信?因此我们在节点上设备上构建一个可信执行环境(TEE),相当于给节点装上测谎仪。这样一来,不仅整个网络更可信了,更多的逻辑也可以放在链下,区块链也就能承载更复杂更高配的业务了。
安全冗余
Trias最近在做证券相关业务,那些传统金融的机构,看到链上节点多次备份账本,会自然而然的觉得,区块链就像他们的异地多活的灾备系统,然后就会质疑:传统异地灾备系统,三四个节点就能实现的功能,区块链却要跑上百上千个节点,这不就是安全冗余嘛?
这个安全冗余的确存在,如果你要在企业上用区块链,一定得解决这个问题。我们Trias正在想尽办法,用尽量少的节点,以及账本副本,来达到尽量高的全网安全性。不然的话,按以太坊这类的搞法,上万台节点只跑一个代码,对企业来说运作成本是非常巨大的。
低效共识
大家都知道,现在区块链的运行效率不高,众所周知,区块链领域存在一个著名的“不可能三角”。现在也出来了很多新的共识算法,号称能大幅提高性能并解决这个问题的,但在没看到代码的情况下,我不相信。
到目前为止,我还没见过能非常好的在“性能”“一致性”“去中心化”三个方面做的比较均衡的共识算法,都是各有长短的。Trias采用了分层异构的方式解决问题,而不是说找一个唯一的共识算法,把全部问题解决的。
公有云的现在,可能就是公链的未来
也许现在大家都在关注公链,没有太关注联盟链,但从我自己做项目的情况来说,我觉得大家可能要从类似于云计算的角度来思考这个问题。
云计算概念刚提出的时候和区块链非常像,所有人都在吹,一定要做公有云,公有云能统治世界,公有云能赚很多钱等等等等。但就在去年,IDG发布了云计算报告,整个中国的公有云市场,就跟中国的小龙虾市场是一个体量。
一开始喊了无数口号,砸了那么多的钱,找了那么多的博士专家,写那么多的论文,然后还有那么多好听的故事给你规划蓝图,到现在可能还抵不上卖小龙虾的,真正赚钱的,却是当时大家瞧不上的私有云、混合云。
所以说大家一定要清醒冷静的对待区块链,再理想主义再极客的技术,都得给现实妥协。说白了,我们去做技术,去做应用,去做一个很好的公司,是需要真正创造价值的。
你要明白,很多时候你能接触到的一些信息,背后都是有目的性的。也许背后有大资本,为了赚钱去拼命包装他,拼命的将公有的讲得多牛逼。就像云计算,一开始再怎么喧嚣,现在大部分的公有云公司,还是得被迫转去私有云和混合云上赚钱。
目前的公链项目的确做了很多努力,但因为存在上面分析的那些问题,企业是不买单的。从B端那里赚不到钱,就只有靠发币赚钱,所以说才有割韭菜嘛。
就当我的个人观点,如果有人做公链,告诉你不靠币的情况下,短期里能赚很多钱的,是不可能的。我们Trias自认是认真做事的团队,我们在非常努力的通过区块链本身赚钱,所以我们和企业政府合作,做了很多的联盟链。
关于Trias
先介绍一下,我们Trias算是一个中西合璧的项目,主要创始人来自于北大与牛津,现在也和北京大学、牛津大学一起做联合实验室,我们也在积极的培养区块链相关的博士研究生,非常欢迎有技术学术追求的朋友。
上面也讲到,区块链还是存在不少的缺陷,trias想真正做出价值,我们做出了自己的方案。
三层结构,灵活共识
前面我讲到了不可能三角的问题,我发现只用单一的一种共识算法,是不能解决所有问题的。Trias在思考的时候,借鉴了中心化系统的思路,采用了分层的异构方式来解决问题,什么算法擅长什么,我们就让它去做什么。
Trias把整个系统分层了三层:
底层网络Leviatom负责可信部分,使用TEE+图计算实现,这首先是一个公链。当然这一层能很方便的修改成联盟链为企业提供服务。
逻辑层面的Prometh,会在可信的基础上,做好一些基础的服务,提供给企业;
最上层的MagCarta可以自定义智能合约,方便去实现一些应用给用户提供服务。
基于TEE,区块链更可信
Trias很大的一个特点在于,我们的底层是基于TEE这一套来做计算的,让整个网络更加的可信,相当于给每个节点装上了一个测谎仪。
现在的大部分项目,比如以太访,并没有规定过节点的运行环境,不管多烂多不安全的节点都能在链上运行。你可以回去尝试一下,在电脑上装一堆病毒,然后下载以太坊的节点程序,你看看能不能进入节点共识,我可以告诉你,是一定可以的。
这个风险在哪里呢?大家都知道,区块链现在的挖矿还是比较集中的,3/4的矿场都在中国,如果哪一天这个几个矿主突然因为各种愿意不想干了,故意在矿机上装上病毒广播出去。因为现在项目大多是简单的在账本校验加上一些加密措施,有害的指令就会像瘟疫一样传播开,这条链就会无法使用。Trias考虑到这种情况的可能性,就规定了我们的节点,必须得受可信计算的保护。
在Trias网络中,我们是这么保证节点的可信的:
因为是基于TEE架构的,一个节点能干什么不能干什么,这些都是清楚的写在芯片里的。想要破坏网络,必须物理上把安全芯片破坏掉,这个攻击的成本比现在高了很多。
节点间会互相检验计算可信度,我们这里叫做挑战者模型。一个节点对另一个节点会发起挑战,发送一个程序体,如果发现这个节点的计算是可信的正确的,它的信誉度就会增加。在整个链里节点的信誉越高,你的排名越靠前,就会被更多人选择,处理更多的可信计算。这个信誉完全是机器分布式的校验计算而得到的。不像现在很火的pos,单纯通过投票认定信誉,有时候可能只是某个节点运营宣传做得好,但其实节点的安全性你是不清楚的。
小世界组网,新的增效架构
在非常庞大的集群系统下,如果网络中需要太多的校验,那网络的效率一定是会很低的,显然,成千上万的节点跑同一个智能合约,性能很低成本很高,不适用大型系统。
Trias的节点,会根据网络状态与可信状态,与最近的几个节点自发的组成小网络。在这个小网络里,可信度最高的节点就会作为这个小网络派出的代表,去更大的网络中继续竞选,从而得到可信度更高的结果。
这就很像中国的人民代表制度,最高法院是不会管所有鸡毛蒜皮的小事的,我们有事都会优先找最小的单位,也就是街道办事处来协调。同样在Trias网络中,最高安全性的网络也不会承载所有的可信计算,临近的几个可信节点组成的小网络,他们会先达成共识,然后再派出代表一层层上报再继续达成共识就好,而不需要等待全网中几万个节点全部检查一遍才算完成。这样就大大提高了整个网络运行的效率。
小世界组网和以太坊提倡的分片听起来很像,但还是有很大差别的。以太坊的分片框架下,一个交易个发送出来,是需要最高层统一调度,把任务分发下去,让各分片再进行协调分工。相对去中心化和效率,都还有改进的空间。而 Trias的小世界组网,是从下而上进行的。