详解去中心化的DIM即时通讯协议
2019年8月21日,密码极客邀请到了DIM项目的首席科学家Albert Moky来社群做线上分享。
此次活动由密码极客与DIM主办,TokenClub、火星财经和猛牛资讯联合主办,币乎、链节点、LongBit和加密世界提供社区支持,媒体协办方包括金色财经、星球日报、深链财经、真本聪、TokenInsight、布道财经、博链财经、宏链财经、Fintech News、世链财经和兰链智库等等。
同时也感谢密码极客、TokenClub、DIM官方社群、DIM直播分享群、猛牛资讯交流群、腾讯区块链场外论坛等社群的小伙伴参与收听和互动。
以下是线上分享的全部内容
大家好!我叫Moky,是一名程序员,在服务器端、客户端开发都略有涉猎。本人是数学系毕业的,对算法比较感兴趣,之前研究过AI算法,前几年在看到区块链技术的时候也忍不住研究了一下。最近颇有一些心得,想借此机会和大家分享。
今天我想和大家分享的,是关于“去中心化”技术在IM领域的可行方案。由于我本人之前曾负责过一些IM产品的研发,虽然不算太深入,但对于IM领域的一些产品问题仍然有比较多的认识。我一直在寻找方法尝试去解决它们,但是IM领域的竞争太过激烈,除了巨头之间的竞争,一些小公司基本没有什么参与机会,直到我找到了“去中心化”的方法。
我对比研究了现有的一些较为知名的IM协议,它们都从某些侧面解决了一部分问题。但是这些协议很多都没能得到广泛的应用,哪怕有一些背后有非常强大的公司在推动也没能成功。我分析了深层次的原因,其实根本原因并不在功能性上,也不在应用了多么酷炫的技术,而在于用户体系。
我们看一下过去比较有代表性的IM协议:最初的开源IM协议主要强调通用性,而在真实性和保密性上基本是空白的,完全靠运营方去保证;区块链技术引入之后,解决了真实性问题,但效率远远不能达到IM的标准,所以很多DApp的体验非常的差;还有现在的一些端对端加密IM可以相对地解决了真实性与效率问题,但仍然有漏洞,被攻击的案例也时有发生。
所以,我决定从根本上去研究一个IM到底最关键的要素是什么,一个好的IM系统架构应该是怎样的。我发现所有的IM网络,基本上可以分成两大类设备:终端,和中间节点。一个最简单的IM系统结构,应该如上图那样,由用户终端和服务器节点组成。有一些用户直接连接在同一个服务器内,而另一些则可能连接了不同的服务器;而众多的服务器可能分布在全世界不同的地方。
那么,当一个信息从一个用户发送到另一个用户,有哪些步骤是必须的呢?针对前面的系统架构,我发现最根本的就是用户身份验证与信息转发机制;针对同一个服务器和不同服务器,甚至是不同地域不同运营商的服务器,需要有一套最佳路由算法去实现。
以上,就是每一个好的IM所必须的全部设计!那么大家可以看到,这里面其实并没有和你用什么数据库存储信息有关,也不跟运营商有什么不同的资源能力有关,只要中间节点能够准确、快速的将信息转达即可;而身份验证问题,当下主流的IM都是中心化的,然而由上面的分析可以发现,其实只要能够证明身份,与是否中心化并没有必然关系。
在我研究区块链技术的时候,我发现基于非对称密码学的区块链技术采用了一种十分巧妙的“身份证明”解决方案,于是我很自然的就联想到可以应用到DIMP的设计中来。拿BTC地址算法举例(也是DIMP支持的ID算法之一),我们可以通过一套共识算法来生成ID,同时绑定了ID与密码的关系。对比于传统的中心化IM 架构,它们采用的是中心数据库中储存ID+密码的对应关系数据来识别身份,很显然区块链这种身份识别方式完全可以替代中心化的用户身份识别。
只不过BTC地址算法有一些缺点,比如纯随机字符串可读性非常差,用户很难通过一个BTC地址判断它属于哪个好友,所以后来我研究了一些方法,用来绑定一个识别标志到该地址上,类似于传统IM里的username。对于ETH地址,或者其他任何区块链地址,都可以通过同样的方式被DIMP所兼容。因为DIMP核心算法是直接建立在非对称密码学基础上的,它本身并不需要依赖任何一条区块链。所以它可以兼容所有区块链账号作为DIM的ID来进行通讯。
我们再来看一下DIMP定义的通讯消息发送和接收过程。作为一个IM应用,每一条消息必须定义的信息字段,主要包括3个:
1、发件人(sender)
2、收件人(receiver)
3、数据内容(data)
而为了证明该信息是sender真实发送而不是伪造的,则必须带有第4个信息:
4、签名信息(signature)
如果该信息不是公开信息,则还需要一个加密方法,我这里采用了非对称加密与对称加密两层加密算法,所以还需要第5个信息:
5、密钥(key)
以上就是一个去中心化的、端对端加密IM应用中必须的数据结构。
可以说,上面的两大部分:身份识别&通讯格式,已经完成了一个去中心化即时通讯应用的全部核心定义。但我上面提到过,一个IM应用能否生存和发展,关键不在于它定义了哪些功能,使用了哪些酷炫的技术,而在于用户体系。在过去20多年的混战中,不计其数的挑战者都失败了,当然每个公司失败的原因有很多,但我发现它们几乎都有同一个特点:用户规模不够。
因为IM不同于其他信息类应用,它是一个“赢者通吃”效应特别强烈的领域。如果你的好友全部在某一个IM应用上,那么就算你对它不是十分满意,你也必须要用它;反之,另一个app无论多么的合你胃口,只要你的朋友们没有在用,你也没办法把它当成日常沟通工具。
所以接下来,我将介绍我针对这个问题的解决方案。
在我们的DIM network里,我把每一个“公司”定义为“Service Provider”。和历史上出现过无数的IM创业者(我在这里称其为“挑战者”)一样,DIM network里也有很多的创业者(我在这里称之为“服务提供商”)。而和传统不同的是,我们这里的SP采用一套共识算法来生成和识别用户身份ID。因此实质上每一个SP所发展出来的用户都是相通的,无论各个SP之间是否已建立数据共享链接。
而以往的IM领域挑战者,包括小公司和一些已经做到比较大用户规模的大公司,最后没有活下来的原因,可能仅仅是因为它不够大。但在DIM network里,一个SP能否存活和发展,跟你的用户数没有关系,而是跟你的服务能力直接相关。因为所有SP都面对着同一个用户群,只要你的服务质量好,创新增值服务丰富,能满足用户需求,就会有人用,哪怕你的增值服务只针对一小部分用户,这部分用户也不会因为你的用户关系网络不够大而不得不抛弃你;反之,如果某个曾经的大SP不思进取,服务质量逐渐下降,那它的用户们也可以很轻易地转向其他能提供更优质服务的SP。
通过SP的引入,可以解决过去一些纯粹基于p2p技术的IM应用的缺点,比如它们完全靠用户自发(或者给予一定奖励)的方式来建立点对点网络,但是很显然,普通用户的建网能力和服务能力是无法跟专业的SP相提并论的,所以这是过往的基于p2p技术的IM难以发展推广的原因。而通过统一的账号设计,又能解决过去那些IM挑战者们单打独斗的局面,所有小SP可以联合起来,拼接成一张大网络,并且通过自由竞争、而不是靠垄断手段来实现更大的用户价值。
以上就是我想和大家分享的内容,谢谢大家!
以下是互动问答环节
问题一至二来自贺鹏飞【贺鹏飞:Kaleido公有链技术合伙人,前迅雷技术总监,十余年互联网技术研发经验。任职迅雷期间打造会员离线下载业务,覆盖500万付费用户,后在网心科技基于百万级玩客云节点打造出分布式存储平台TCFS。
1
问题一
对于普通用户来说,使用基于密钥的、使用签名来校验其身份的账号机制,门槛还是比较高的,比如如何安全的保管密钥等。我们有没有一个能有效简化用户管理和使用密钥的产品方案?
Moky:签名和加密的过程其实是对用户透明的,这些工作应由DIM app自动完成,用户在日常使用中并不需要关心这些技术细节;而密钥保管的问题,一些公信力足够大的SP可以提供托管服务,这个由市场去决定哪些SP的公信力足够大,用户愿意把自己的私钥交给他们托管(托管前还可以加密)。
2
问题二
对于强调加密、匿名属性的通讯工具,从现实角度来讲,一定会有一些监管方面的风险和压力,DIM是如何平衡和处理这个风险的?
Moky:每一项新技术只要得到了广泛应用,自然会有相应的法律法规跟进,我认为这不是技术研究者的任务,就好像电报技术被发明之后,就会有结合电报业务相关的法律法规出台;后面的电话技术、互联网技术也一样,只要技术发展起来了,使用的范围足够广了,自然就会有相应的立法和执法。
DIMP设计的目的,是为了解决市场被垄断带来的一系列问题,以及中心化服务的信息安全问题,不是用来逃避监管的。每一个加入DIM network的SP都应该考虑到其所在国家的法律要求,主动接受监管。
问题三至六来自张珂良【张珂良:AToken区块链研究员,复旦大学计算机科学与技术博士,曾多次在国内外重要期刊和区块链会议发表论文。曾任中泰金控区块链研究员,专注区块链公链技术、共识算法、智能合约等。
3
问题三
DIM打造的去中心化即时通讯协议能够用于跨链吗?和Cosmos的跨链或Polkadot的跨链协议有什么区别?
Moky:您提到的这两个协议主要是用来解决不同区块链之间的数据交换问题的,而且它们也都是基于区块链的。换句话说,它们是引入新的区块链,用来桥接不通的区块链。
而DIMP是直接建立在非对称密码学基础之上的,由于目前所有区块链技术都建立在非对称密码学之上,所以它们的账号地址天然能被DIM兼容,因此跨链通讯没有任何限制。DIMP和上述区块链技术的最显著区别就在于DIMP的信息通讯是p2p的,不依赖公链,所以可以避免了区块链的效率问题,而效率是IM领域至关重要的考量指标之一。
4
问题四
DIM会有自己的通证吗,类似于ERC20 Token?
Moky:为了最大化地发挥DIMP的去中心化优势,我们需要联合众多的SP共同组建更大的DIM网络,所以我们提出了“SP联盟”的概念。而为了有效地管理和激励参与者,我们会设计开发一些需要所有SP共同维护和支持的产品,如ANS(Address Name Service)就是其中之一,因此我们会开发一个联盟链,来连接所有SP ,甚至包括用户,来实现网络价值最大化。
顺便提一下,ANS是我们参考传统的DNS提出的新概念,由“SP联盟”里的每一位SP通过共识算法实现的短域名映射增值服务,今后我们还会开发更多的联盟增值服务。
5
问题五
DIM对传统即时通讯领域主要的改进在哪里?两者是互补的还是竞争关系?
Moky:DIMP相对于传统即时通讯领域而言,最具革命性的地方在于其账号体系。传统IM由于账号数据私有(也不得不私有),从而导致了垄断,换句话说,传统IM企业的核心价值在于其用户数据与关系网络。而DIMP提出的是一个开放式的去中心化账号体系,所以传统IM的核心价值可能会受到挑战,但我对DIMP的设想是面向未来的,而未来的互联网将会走向更加扁平化,现有的IM企业要适应这种变化,可能他们需要在这方面多做一些思考。
6
问题六
目前,DIM在通过区块链技术来实现去中心化的即时通信领域的过程中,有没有竞争对手,目前各自的实现进度如何?
Moky:除了传统的IM以外,现阶段比较热门的端对端加密通讯如Telegram、Mixin 等都是基于中心化用户体系的,它们的安全性主要受到来自两方面的威胁:
1、运营方的行业道德水平制约,因为用户隐私数据全部在中心服务器上,所以运营商可以利用这些数据实现价值变现;2、运营方的安全技术水平制约,频繁出现且无法杜绝的黑客入侵事件就是证明。我认为它们没有很好地认识到通讯的本质。
衡量一个通讯技术或协议的最关键指标是:安全、高效和易扩展。但就高效这一条,目前可以看到的区块链技术是难以解决的。所以我认为DIMP是一个全新的、非常值得关注的技术方向,目前我已经把核心代码在GitHub上开源了,包括Java、Objective-C和Python版,有兴趣可以看一下。
密码极客是一群来自前阿里、蚂蚁金服的技术人员与阿里创业帮一起发起的区块链技术创投社群,也是杭州最大的区块链技术创业社群,截止目前,社群技术人员超过2000位,社群成员超过10万。
详解去中心化的DIM即时通讯协议相关推荐
- qtreewidget 获取根节点_详解去中心化信任根dRoT技术
近日,第21届国际信息与通信安全会议(ICICS 2019)在北京召开.ICICS是国际公认的网络与信息安全类顶级学术会议,汇聚了国内外诸多信息安全专家与学术泰斗.本届ICICS 2019会议围绕信息 ...
- 详解去中心化资产管理协议BlackHoleDAO
BlackHoleDAO 是一个基于 DAO 治理的去中心化资产管理协议.在 DeFi 3.0 基础之上构建了一套全新的标准化模型,被称之为「BlackHole DAO Protocol(BHDP)」 ...
- 去中心化的即时通讯协议,如何引爆通讯领域的新一轮革命?
随着互联网行业的深入发展,竞争者迅速进入市场,又迅速退出市场,最终"赢者通吃"现象愈来愈明显.互联网企业依靠技术创新和用户规模,容易实现较高的用户粘性,形成高度集中的市场竞争格局. ...
- YTA pk IPFS 蜜蜂科技深度详解王东临与YottaChain去中心化存储
一.导语 10月10日晚,「火星总编时刻」第49期在火星社群展开,本期对话主题为本期对话主题为「YTA PK IPFS,去中心化存储价值重心何在?」.由火星财经合伙人.总编辑李劳深度对话YottaCh ...
- 区块链入门文章二《以太坊:下一代智能合约和去中心化应用平台》
以太坊:下一代智能合约和去中心化应用平台 以太坊基金会 著 李志阔(网名:面神护法) 赵海涛 焦锋 译 中本聪2009年发明的比特币经常被视作货币和通货领域内一次激进的发展,这种激进首先表现为一种没有 ...
- 附录2 以太坊:下一代智能合约和去中心化应用平台(选译)
以太坊基金会 著 李志阔(网名:面神护法) 赵海涛 焦锋 译 中本聪2009年发明的比特币经常被视作货币和通货领域内一次激进的发展,这种激进首先表现为一种没有资产担保或内生价值[1],也没有中央发行者 ...
- 以太坊:下一代智能合约和去中心化应用平台
以太坊基金会 著 李志阔(网名:面神护法) 赵海涛 焦锋 译 中本聪2009年发明的比特币经常被视作货币和通货领域内一次激进的发展,这种激进首先表现为一种没有资产担保或内生价值[1],也没有中央发行者 ...
- V神:你所理解的“去中心化”不一定准确
2019独角兽企业重金招聘Python工程师标准>>> "去中心化"被视为区块链存在的核心意义,但它也许是定义最不明确的一个词. 我们花费了数千小时的时间,耗费了 ...
- 《羊了个羊》服务器2天崩3次?去中心化云会成为下一代网络基础设施吗?
中秋送走了玉兔,要说过后哪种动物最火,一定非羊莫属,而且这只羊是用钱买不到.只能通过消消乐才能得到的羊. 近日,一款号称通关率不到0.1%的硬核消除类闯关小游戏<羊了个羊>突然爆红,几度登 ...
最新文章
- 智办事:高效远程办公指南
- [翻译] RKCardView
- IT项目之旅(一)《宿舍管理系统》设计与实现
- eclipse中更改配置使得switch语句不出错
- fc-ae-1553_什么是AE-L,AF-L和*按钮,它们的作用是什么?
- Windows Server 2012 +WDK7600.16385.1+VS2010驱动开发环境搭建
- UGUI实现摇杆(模仿太极熊猫)
- TF400511: Your team has not defined any iterations to use as sprints
- 时间序列分析和预测(含实例及代码)
- HTML-坐标的含义,以及变换的使用
- 数学建模matlab画图操作大全
- 计算机相关扩展活动战队名字,有诗意的战队名字大全
- linux无损分区调整,linux如何无损调整分区大小
- 【3D游戏建模全流程教学】在Maya中制作小岛模型
- 逍遥模拟器使用指南(三、连点 连击)
- 微信小程序云端增强 SDK接入
- Unity AzureKinect Ar贴纸
- 一个Android开发的2018年 | 掘金年度征文
- 华为、荣耀笔记本如何开启或关闭虚拟化技术(Virtual Technology)
- DIT和DIF实现快速傅里叶变换的FFT
热门文章
- 现在转行做程序员还有必要吗,培训班有必要去吗?
- MariaDB 的命令
- 各大银行ATM跨行取款收费一览表
- 解决EMC、EMI传导干扰的八大方法
- android.nfc.tech圈存,荣耀7使用nfc功能教程及注意事项,亲测可以刷公交卡
- Kali [Aquatone]子域名探测工具
- mastercam2017后处理升级_如何升级Mastercam 9.1版后处理?
- 水-生命之源,喝水的讲究
- 关于blob数据类型引起的mysqldump乱码问题
- python怎样用函数求水仙花数_python求解水仙花数的方法