___|  _ \   |  |    |   |_ _|\ \     / ____|
 |     |   |  |  |    |   |  |  \ \   /  __|
 |   | |   | ___ __|  ___ |  |   \ \ /   |
\____|\___/     _|   _|  _|___|   \_/   _____| 

 --- A GOPHER-LIKE INTERFACE FOR HIVE BLOCKCHAIN ---

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

BY: @antonsteemit | CREATED: July 23, 2018, 5:31 p.m. | VOTES: 20 | PAYOUT: $5.43 | [ VOTE ]

Dapp 中的資料傳輸

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

[IMAGE: https://cdn.steemitimages.com/DQmY9CsHGUQJ1WNLgzVKsZfgTuibPmZGjsUzgWh3LccqQgL/image.png]

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

[IMAGE: https://cdn.steemitimages.com/DQmP7rcCCZbaTAAZAVitdSCYv6UrekZerN36XFyjFSjQeZJ/image.png]
Image Sources: Slides online document

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

Proxy Reencryption

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

[IMAGE: https://cdn.steemitimages.com/DQmf3Lf8GHWu6t7qqmo4t9ruhgZNresqzsbXKC5io85sj7S/image.png]

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

Decentralization

Threshold split-key Re-encryption

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

[IMAGE: https://cdn.steemitimages.com/DQmTy999Wv7DPQ1UtkLKgN1NeJHYtngZPPc6CtCsbxtawdj/image.png]

Access Control

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

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

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

https://www.youtube.com/watch?v=1RuP2HZ6zRc&t=2119s

TAGS: [ #nucypher ] [ #cn ] [ #cn-cryptocurrency ] [ #cryptography ] [ #blockchain ]

Replies

@cn-naughty.boy | July 23, 2018, 5:36 p.m. | Votes: 0 | [ VOTE ]

@antonsteemit, 我很欣赏你!

@booster | July 23, 2018, 5:50 p.m. | Votes: 1 | [ VOTE ]

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

@cnbuddy | July 23, 2018, 5:57 p.m. | Votes: 0 | [ VOTE ]

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

@steemhq | July 24, 2018, 4:27 p.m. | Votes: 0 | [ VOTE ]

[IMAGE: https://www.steemhq.com/CommunityBotUpvote.png]

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.
[IMAGE: https://steemitimages.com/0x0/https://www.steemhq.com/steemhq_voting.gif]

This service was brought to you by SteemHQ.com

[ BACK TO TRENDING ] [ BACK TO MENU ]
CMD>