詳解去中心化的DIM即時通訊協議

2020-12-16 界面新聞

文 | 阿里八卦

2019年8月21日,密碼極客邀請到了DIM項目的首席科學家Albert Moky來社群做線上分享。

以下是線上分享的全部內容

大家好!我叫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。】

問題一

對於普通用戶來說,使用基於密鑰的、使用籤名來校驗其身份的帳號機制,門檻還是比較高的,比如如何安全的保管密鑰等。我們有沒有一個能有效簡化用戶管理和使用密鑰的產品方案?

Moky:籤名和加密的過程其實是對用戶透明的,這些工作應由DIM app自動完成,用戶在日常使用中並不需要關心這些技術細節;而密鑰保管的問題,一些公信力足夠大的SP可以提供託管服務,這個由市場去決定哪些SP的公信力足夠大,用戶願意把自己的私鑰交給他們託管(託管前還可以加密)。

問題二

對於強調加密、匿名屬性的通訊工具,從現實角度來講,一定會有一些監管方面的風險和壓力,DIM是如何平衡和處理這個風險的?

Moky:每一項新技術只要得到了廣泛應用,自然會有相應的法律法規跟進,我認為這不是技術研究者的任務,就好像電報技術被發明之後,就會有結合電報業務相關的法律法規出臺;後面的電話技術、網際網路技術也一樣,只要技術發展起來了,使用的範圍足夠廣了,自然就會有相應的立法和執法。

DIMP設計的目的,是為了解決市場被壟斷帶來的一系列問題,以及中心化服務的信息安全問題,不是用來逃避監管的。每一個加入DIM network的SP都應該考慮到其所在國家的法律要求,主動接受監管。

問題三至六來自張珂良【張珂良:AToken區塊鏈研究員,復旦大學計算機科學與技術博士,曾多次在國內外重要期刊和區塊鏈會議發表論文。曾任中泰金控區塊鏈研究員,專注區塊鏈公鏈技術、共識算法、智能合約等。】

問題三

DIM打造的去中心化即時通訊協議能夠用於跨鏈嗎?和Cosmos的跨鏈或Polkadot的跨鏈協議有什麼區別?

Moky:您提到的這兩個協議主要是用來解決不同區塊鏈之間的數據交換問題的,而且它們也都是基於區塊鏈的。換句話說,它們是引入新的區塊鏈,用來橋接不通的區塊鏈。

而DIMP是直接建立在非對稱密碼學基礎之上的,由於目前所有區塊鏈技術都建立在非對稱密碼學之上,所以它們的帳號地址天然能被DIM兼容,因此跨鏈通訊沒有任何限制。DIMP和上述區塊鏈技術的最顯著區別就在於DIMP的信息通訊是p2p的,不依賴公鏈,所以可以避免了區塊鏈的效率問題,而效率是IM領域至關重要的考量指標之一。

問題四

DIM會有自己的通證嗎,類似於ERC20 Token?

Moky:為了最大化地發揮DIMP的去中心化優勢,我們需要聯合眾多的SP共同組建更大的DIM網絡,所以我們提出了「SP聯盟」的概念。

而為了有效地管理和激勵參與者,我們會設計開發一些需要所有SP共同維護和支持的產品,如ANS(Address Name Service)就是其中之一,因此我們會開發一個聯盟鏈,來連接所有SP ,甚至包括用戶,來實現網絡價值最大化。

順便提一下,ANS是我們參考傳統的DNS提出的新概念,由「SP聯盟」裡的每一位SP通過共識算法實現的短域名映射增值服務,今後我們還會開發更多的聯盟增值服務。

問題五

DIM對傳統即時通訊領域主要的改進在哪裡?兩者是互補的還是競爭關係?

MokyDIMP相對於傳統即時通訊領域而言,最具革命性的地方在於其帳號體系。傳統IM由於帳號數據私有(也不得不私有),從而導致了壟斷,換句話說,傳統IM企業的核心價值在於其用戶數據與關係網絡。而DIMP提出的是一個開放式的去中心化帳號體系,所以傳統IM的核心價值可能會受到挑戰,但我對DIMP的設想是面向未來的,而未來的網際網路將會走向更加扁平化,現有的IM企業要適應這種變化,可能他們需要在這方面多做一些思考。

問題六

目前,DIM在通過區塊鏈技術來實現去中心化的即時通信領域的過程中,有沒有競爭對手,目前各自的實現進度如何?

Moky:除了傳統的IM以外,現階段比較熱門的端對端加密通訊如Telegram、Mixin 等都是基於中心化用戶體系的,它們的安全性主要受到來自兩方面的威脅:

1、運營方的行業道德水平制約,因為用戶隱私數據全部在中心伺服器上,所以運營商可以利用這些數據實現價值變現;2、運營方的安全技術水平制約,頻繁出現且無法杜絕的黑客入侵事件就是證明。我認為它們沒有很好地認識到通訊的本質。

衡量一個通訊技術或協議的最關鍵指標是:安全、高效和易擴展。但就高效這一條,目前可以看到的區塊鏈技術是難以解決的。所以我認為DIMP是一個全新的、非常值得關注的技術方向,目前我已經把核心代碼在GitHub上開源了,包括Java、Objective-C和Python版,有興趣可以看一下。

相關焦點

  • Web端即時通訊實踐乾貨:如何讓WebSocket斷網重連更快速?
    1、引言在一個完善的即時通訊IM應用中,WebSocket是極其關鍵的一環,它為基於Web的即時通訊應用提供了一種全雙工的通信機制。但為了提升IM等實際應用場景下的消息即時性和可靠性,我們需要克服WebSocket及其底層依賴的TCP連接對於複雜網絡情況下的不穩定性,即時通訊的開發者們通常都需要為其設計一套完整的連接保活、驗活以及斷片網重連方案。
  • Klaytn的去中心化自動流動性協議:KLAYswap
    今天,我們公布了KLAYswap的正式發布時間表、Klaytn網絡的AMM協議以及KLAYswap的功能和治理通證KSP(KLAYswap協議)。我們正在啟動的AMM(自動做市商)協議是具有決定性的DEX協議,現已將去中心化金融(DeFi)市場推向了公眾。
  • PotatoCoin"POC"——去中心化的匿名社交娛樂鏈
    摘要:PotatoCoin(POC)將打造一個即時通訊+智能合約發幣+自治理社區的生態閉環,PotatoChain的目標不僅僅是成為一個去中心化的即時通訊軟體,而且還將建立起一個去中心化,可通過社區自治運營的生態平臺,成為即時通訊領域的以太坊。
  • PotatoCoin(POC)——去中心化的匿名社交娛樂鏈
    摘要:PotatoCoin(POC)將打造一個即時通訊+智能合約發幣+自治理社區的生態閉環,PotatoChain的目標不僅僅是成為一個去中心化的即時通訊軟體,而且還將建立起一個去中心化,可通過社區自治運營的生態平臺,成為即時通訊領域的以太坊。
  • 企業即時通訊是什麼?五大企業級即時通訊功能分析
    企業即時通訊:簡稱EIM,是適用於企業使用的員工溝通和聊天內容管理的服務,公司員工可以通過企業即時通訊軟體,進行日常工作的實時溝通、待辦、語音、文件互傳等。相對於個人即時通訊來說(像QQ),企業即時通訊更加強調安全、實用、穩定以及擴展性,並且可以根據企業在實際使用中的需求,做定製化開發。
  • 日本即時通訊巨頭LINE與韓國ICON合作組建區塊鏈企業Unchain
    金色財經 區塊鏈5月17日訊 估值16億美元的韓國最大跨鏈區塊鏈項目ICON宣布與日本即時通訊應用LINE成立一家名為「UnChain」的新公司,雙方將在去中心化應用領域裡展開合作。事實上,早在今年一月,即時通訊應用巨頭LINE就宣布要進軍全球加密貨幣市場,他們計劃推出一個加密貨幣交易平臺,並加速區塊鏈技術的研發力度。
  • 安全即時通訊首選「信源豆豆」
    企業涉及工作秘密的核心機密部門或政府事業單位在工作中產生的文檔、數據等保密內容需要選擇一款安全即時通訊平臺就尤為重要。信源豆豆:三個方面為企業支招!安全保障對企事業單位而言,一個好的即時通訊平臺其安全性是首要的,它與經濟利益緊密相關。信源豆豆即時通訊凸顯安全性:所有信息是服務端、通訊鏈路、客戶端三端加密、五維防護。
  • 八問WebSocket協議:為你快速解答WebSocket熱門疑問
    WebSocket是個不太乾淨協議。本文將從8個常見的疑問入手,為還不了解WebSocket協議的開發者快速普及相關知識,從而節省您學習WebSocket的時間。另外,如果您對Web端的即時通訊技術還完全不了解,那麼《新手入門貼:詳解Web端即時通訊技術的原理》、《Web端即時通訊技術盤點:短輪詢、Comet、Websocket、SSE》這兩篇文章請您務必抽時間讀一讀。
  • VoIP與即時通訊問題:Skype不支持IPv6
    VoIP與即時通訊問題:Skype不支持IPv6 微軟公司為了支持Skype可能要關閉對其他即時通訊軟體的支持,但是Skype自身有一個連通性問題,那就是不支持網際網路的下一代協議IPv6。
  • Skrumble Network(時光簿)|基於區塊鏈的去中心化通訊網絡
    U解評級Skrumble Network(時光簿)|基於區塊鏈的去中心化通訊網絡Skrumble Network 是由加拿大多倫多科技公司Skrumble打造,運用去中心化的區塊鏈技術,打造全球首個以通訊為中心的公鏈。
  • RNPC 12月03日全球首發打造去中心化數字貨幣即時支付平臺
    RNPC全稱Rousse New Pact Currency ,是以區塊鏈科技創新為突破的支付場景應用平臺,為去中心化的數字貨幣即時支付提供解決方案,RNPC布局數字資產支付市場,建立全球數字資產支付的生態體系,RNPC的支付生態系統應用是為了服務於未來的「小微支付數字經濟社會」。
  • 微信不能承受之痛:B端即時通訊產品設計
    定位在B端的即時通訊工具因為與業務場景息息相關,對準確性和即時性的要求也必然較高。因此,B端的通訊工具在象限中的位置如下圖所示:B端即時通訊工具的典型特徵基於上一節的結論,要求B端即時通訊工具既具有C端即時通訊工具的基礎能力,又具有支持業務場景的典型特徵。我們分別來看。
  • 即時通訊框架SocketIO的入門學習
    網絡七層:應用層表示層會話層傳輸層網絡層數據鏈路層物理層而socket位於應用層與傳輸層之間,簡寫SSL(Secure Sockets Layer 安全套接層),而其繼任者傳輸層安全(Transport Layer Security,TLS)是為網絡通信提供安全及數據完整性的一種安全協議。TLS與SSL在傳輸層對網絡連接進行加密。
  • 感受無伺服器即時通訊:BitTorrent發布Bleep程序
    感受無伺服器即時通訊:BitTorrent發布Bleep程序 稜鏡監控醜聞的曝光讓用戶對個人隱私的關注提升到前所未有的高度,今天BitTorrent公司發布了內部Alpha版本
  • iCoremail郵件系統雲計算免費提供即時通訊
    據調查顯示,目前企業即時通訊(IM)和企業郵箱已成為使用最為廣泛、最被企業認可、用戶數最為眾多、最為成熟的兩大信息化應用。其實,在個人應用領域,人們早已習慣即時通訊和郵箱的融合,用戶可以通過即時通訊軟體直接登錄到個人郵箱。
  • FinChat - 金融行業的合規即時通訊工具
    相比於諸如SaaS化的辦公協同,金融機構則需要一套私有化、合規、安全、穩定可靠的即時通訊產品,不僅僅的是因為當前嚴峻的疫情形勢,也是企業長遠發展的必然需要。對阿里騰訊這些巨頭而言,當前都在搶佔中小企業市場,而金融行業所需要的合規、安全、審計等能力過於「個性化」。金融業需要一個專屬、專業的在線協同通訊工具。
  • gim 1.0.0 版本發布,基於 getty 的即時通訊框架
    如果想做一個類似微信的即時通訊工具。亦或者物聯網等需要網絡通訊的項目。或者對網絡通訊感興趣,也許 gim 可以帶來一些幫助。gim一個簡單易用,穩定高效的及時通訊框架(java)簡介gim 是基於高性能網絡框架 getty 封裝的,能簡單上手,穩定高效的及時通訊框架。
  • 即時通訊工具的作用性質,決定對待的態度
    在生活休閒中我們對待即時通訊可以任意安裝和卸載,對待網絡的上的其他人我們可以任意嗯啊哦。因為那是私事,是我自己個人對生活的態度。沒有人會指責,也沒有會在乎,因為不認同你的方式,可以不理你,屏蔽你,甚至拉黑你。但當你在職場中所任職企業中在使用即時通訊成為工作幫手時,你還能隨意屏蔽,拉黑嗎?那你是真的不想幹了。
  • 「中心化」&「去中心化」
    本文筆者將帶領大家形象化地去理解「去中心化」的四種含義,「去中心化」理論——內容分發的平臺、基本邏輯及其原因分析,以及「去中心化」的應用——四組頭部產品案例的對比分析。
  • 手機即時通訊軟體發展迅猛
    作為通訊工具,如今微信和WhatsApp等即時通信應用已經取代了之前我需要用簡訊完成的大部分工作,甚至偶爾的小型會議以及組內通知等都會通過這類工具來完成。而簡訊,真的越來越少動用。簡訊:增長越來越緩慢  作為移動網際網路的一大組成部分,即時通訊軟體的確給簡訊造成了很大影響。