去中心世界的加解密專家 NuCypher

in #nucypher6 years ago

Dapp 中的資料傳輸

最近為了寫一些Dapp真的是想破頭,總是不知道怎麼解決鏈上資料加解密的問題。剛好無意中發現了Ocean Protocal中提到他們使用的Data交換就是計畫透過NuCypher來進行加解密,不看還好,一看發現:「這根本是未來去中心化世界的重要一根支柱阿!」

在區塊鏈上,所有的東西都是可以被所有人看到的,所以所有敏感的內容一定要經過「加密」才可以放到鏈上。但是如果使用較傳統的加密方式,例如Public key - Private key非對稱式加密,同一筆資料要寄給不同人時,就需要利用不同人的公鑰來加密。儘管有像是IPFS這樣去中心化的儲存空間,同一筆「資料」也會因為要給不同人,而被複製很多次因而浪費這些空間。


Image Sources: Slides online document

改進的方法有很多,其一就是先用一個對稱式加密加密文件,接下來只要再「把這把鑰匙用不同人的公鑰加密」,並寄給其他人,大家就能夠透過自己私鑰解開,得到能夠打開雲端文件鎖的鑰匙,這麼一來檔案不用一再被複製。不過NuCypher想的更高更遠,甚至不想要信任任何一個中間傳遞這些訊息的節點,想要作到一個完完全全的去中心化。

Proxy Reencryption

NuCypher自己開發了一套稱為Re-encryption的加密方式,也就是說,在一個文件被利用鑰匙dek一次加密過後,發送者會使用自己的私鑰以及對方的公鑰產生一組Re-encryption Key。產生這組Re-encryption Key之後,便會傳給網路中的Proxy(代理者)

現在先想像在中心化的世界裡,這些Proxy會乖乖的在透過一個Reencrypt()的Function,利用剛剛的reencryption key來Reencrypt大家都看得到的「加密後文件密碼(e-dek)」。厲害的是,經過這個Function之後產生的「新e-dek」就可以由Bob直接用自己的私鑰解密,接著接收者就可以拿到解開檔案的最後一把鑰匙:dek

Decentralization

Threshold split-key Re-encryption

到這裡好像很多東西並不是太必要,但別忘了剛剛是所謂「中心化」的世界。NuCypher未來會做一個分散式的Server(就像是智能合約)負責所有Reencryption Key的發放,做這個去中心化就是為了避免被攻擊等等造成的危險,所以整個網路中,實際上會有很多的Node掌管re-encryption key的不同部份(Split-Key Reencryption)。這個加密系統的設計就是讓你在某些Node失效的情況下仍然可以重組出想要獲取某Data的鑰匙。(有點像Multisig的概念)

Access Control

同時這個設計之下,有另外一個很大的好處就是所有人Access權限的管理。在這樣由不同node掌管re-encryption key的世界裡,只要你刪除對某人的re-encryption key,就等於拿走他Access Data的權力。

還有,有了NuCypher Protocal後,可以透過一個智能合約可以撰寫一些:「付錢就給你資料」的簡單規則,雖然這不一定需要Re-encryption才做的到,但是他提昇了區塊鏈應用設計的方便性。總之,我是覺得我找到我在找的東西啦!雖然後面的密碼學複雜到我完全看不懂,但感覺未來日子還很長呀,有時間再慢慢讀,現在先把code clone下來玩玩看再說囉...

有興趣的朋友也可以自己去看看這部完整的YouTube,講到更多的細節以及關於發Token的計畫。其實我聽完也覺得這感覺真的是個很基礎端被需要的Protocal,考慮贊助一下這個友善的開發團隊吧 xD

Sort:  

This post has received a 1.66 % upvote from @booster thanks to: @antonsteemit.

你好吗?才子,才女,你参加月旦评了吗?有才的人都去参加了呢。假如我的留言打扰到你,请回复“取消”。

YOU JUST GOT UPVOTED

Congratulations,
you just received a 20.83% upvote from @steemhq - Community Bot!

Wanna join and receive free upvotes yourself?
Vote for steemhq.witness on Steemit or directly on SteemConnect and join the Community Witness.

This service was brought to you by SteemHQ.com

Coin Marketplace

STEEM 0.31
TRX 0.11
JST 0.034
BTC 64060.81
ETH 3129.62
USDT 1.00
SBD 4.17