• 沒有找到結果。

加密貨幣交易平台之私鑰管理 - 政大學術集成

N/A
N/A
Protected

Academic year: 2021

Share "加密貨幣交易平台之私鑰管理 - 政大學術集成"

Copied!
66
0
0

加載中.... (立即查看全文)

全文

(1)國立政治大學資訊科學系 Department of Computer Science National Chengchi University. 碩士論文 Master’s 治Thesis. 立. 政. 大. ‧ 國. 學. 加密貨幣交易帄台之私鑰管理. ‧. Key Management for Cryptocurrency Exchange Platform. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 指導教授:左瑞麟 博士 研 究 生:李依珊 撰. 中華民國一百零八年六月 June, 2019. DOI:10.6814/NCCU201900275.

(2) 加密貨幣交易帄台之私鑰管理 Key Management for Cryptocurrency Exchange Platform 指導教授:左瑞麟. Advisor:Raylin Tso. 研 究 生:李依珊. Student:Yi-Shan Lee. 資訊科學系 碩士論文. 學 ‧. ‧ 國. 立. 治 國立政治大學 政 大. y. Nat. A Thesis. er. io. sit. Submitted to Department of Computer Science National Chengchi University. al. n. v i n Ch in partial fulfillment of the Requirements engchi U for the degree of Master in Computer Science. 中華民國一百零八年六月 June, 2019. DOI:10.6814/NCCU201900275.

(3) 加密貨幣交易帄台之私鑰管理. 摘要 近幾年加密貨幣與區塊鏈的話題倍受矚目,國內外加密貨幣交易帄台亦紛紛設立, 但其安全性問題也逐漸浮上檯面,由於現行有許多加密貨幣交易帄台是中心化運作, 除了扮演了資金託管的角色,甚至也保管了用戶錢包金鑰,因此而造成國內外多貣. 政 治 大. 駭客攻擊盜取金鑰之案件,導致用戶的加密貨幣遭移轉而損失慘重。另一方面,因. 立. 私鑰遺失造成損失的消息也是不時出現在新聞媒體中,故金鑰保管在此領域中是相. ‧ 國. 學. 當重要的議題。. 本研究將先針對加密貨幣、交易所及交易帄台之資訊進行蒐集,並針對金鑰保. ‧. 管之流程進行改良,使用秘密分享(Secret Sharing)方法,設計結合 FIDO 標準之身分 辨識機制,讓用戶能夠使用密碼或 FIDO 之辨識機制登入或轉帳,避免因密碼遺失. y. Nat. sit. 而造成損失。此外,本研究透過密碼延伸 PBKDF2 方法,將用戶密碼複雜化後再用. al. n. 的隱私性與安全性。. er. io. 於金鑰加密,可確保交易帄台管理者無法取得或使用用戶之金鑰,以強化金鑰保管. Ch. engchi. i n U. v. 研究實作主要開發註冊、登入與密碼變更等功能,實際驗證將金鑰進行秘密分 享、加密與還原等流程,皆能如設計運作完成。. 關鍵詞:加密貨幣交易帄台、金鑰管理、秘密分享、FIDO. i. DOI:10.6814/NCCU201900275.

(4) Key Management for Cryptocurrency Exchange Platform. Abstract In recent years, the topic of cryptocurrency and blockchain has attracted much attention. Domestic and foreign cryptocurrency exchange platforms have been set up, but their security issues have gradually surfaced. There are many cryptocurrency exchange platforms that are centralized, in addition to providing cryptocurrency hosting services,. 政 治 大 steal keys. The user's cryptocurrency 立 was transferred and suffered heavy losses. On the and also keeping the user's wallet private key, thus causing many hackers to attack and. other hand, the message of loss due to the loss of the private key is also frequently found. ‧ 國. 學. in the news media, so key management is a very important issue.. This research will first collect information on cryptocurrencies, exchanges and. ‧. platforms, then improve the key management process, and use the Secret Sharing method. y. Nat. to design an identity identification mechanism that combines the FIDO standard to enable. sit. users to use a password or FIDO identification mechanism to login or transfer to avoid. er. io. loss due to lost password. In addition, this research uses "PBKDF2" method to protect the. al. n. v i n administrator cannot obtain andC use private key to enhance the privacy and h the e nuser's gchi U. user's password and then use it for key encryption to ensure that the exchange platform. security of private key management.. We successfully completed the secret sharing, encryption and recovery process of the key according to the design, and implemented functions such as registration, login and password change of the system in this research.. Keywords: Cryptocurrency Exchange Platform, Key Management, Secret Sharing, FIDO. ii. DOI:10.6814/NCCU201900275.

(5) 致謝 轉眼間研究所的生涯就將告一段落,此時刻的心情充滿著無限感恩。. 本論文能夠順利完成,我衷心感謝指導教授左瑞麟老師。在研究所的日子裡, 有老師的悉心指導使我對區塊鏈與密碼學有了初淺認識,讓我受益匪淺。在此謹向 我的指導教授致上我最崇高的敬意與誠摯感激。. 政 治 大 使本論文更臻完美,在此致上深的謝意。 立. 論文審查與口詴期間,承蒙教授們的剴切指正,並提供諸多精闢見解與建議,. ‧ 國. 學. 感謝我的長官李相臣副總指引方向,鼓勵我在出社會多年後再次回到學校進修 提升自己;感謝我的同事也是學姐黃雅玲,在我遇到問題和挫折時給予幫助及支持,. ‧. 使我的研究能夠順利完成。另外也感謝在碩士班一貣同甘共苦的夥伴家宏、阿飛、. io. sit. y. Nat. 政宏,因為有你們讓我在研究所生中添了許多歡樂與回憶。. n. al. er. 此外,更要感謝我親愛的家人,因為有你們一路支持與鼓勵,讓無後顧之憂, 能一直朝目標挑戰,持續努力向前邁進。. Ch. engchi. i n U. v. iii. DOI:10.6814/NCCU201900275.

(6) 目錄 第 1 章 前言 ........................................................................................................ 1 1.1. 研究動機 ............................................................................................................. 1. 1.2. 研究方法及目標 ................................................................................................. 2. 1.3. 論文架構 ............................................................................................................. 3. 第 2 章 技術背景 ................................................................................................. 4 2.1. 區塊鏈(BLOCKCHAIN) .................................................................................... 4. 2.2. 以太坊(ETHEREUM) ....................................................................................... 7. 立. 政 治 大. 智能合約(Smart Contract) ......................................................................... 8. 2.2.2. 智能合約(Smart Contract)的運作 ............................................................. 9. ‧ 國. 學. 2.2.1. DAPP(DECENTRALIZED APPLICATION) .......................................................... 10. 2.4. 加密貨幣與交易帄台 ....................................................................................... 12. ‧. 2.3. 2.4.1 加密貨幣簡介與現況 ....................................................................................... 12. y. Nat. n. al. er. LOCALETHEREUM 介紹...................................................................................... 19. io. 2.5. sit. 2.4.2 加密貨幣交易帄台 ........................................................................................... 14. i n U. v. 2.5.1. 用戶密碼管理 ............................................................................................... 20. 2.5.2. 點對點安全通訊 ........................................................................................... 20. 2.5.3. 託管交易 ....................................................................................................... 21. 2.6. Ch. engchi. FIDO 標準 ......................................................................................................... 22. 2.6.1. FIDO 1.0 ........................................................................................................ 22. 2.6.2. FIDO 運作 ..................................................................................................... 23. 2.6.3. FIDO2 ............................................................................................................ 26. 2.7. 秘密分享(SECRET SHARING)........................................................................ 26. 2.8. PBKDF2 ............................................................................................................ 27. 2.9. TRUFFLE ............................................................................................................. 29. 第 3 章 相關研究 ............................................................................................... 31 iv. DOI:10.6814/NCCU201900275.

(7) 3.1. 私鑰保護機制 ................................................................................................... 31. 3.2. FIDO 標準之原理與延伸 ................................................................................. 34. 第 4 章 研究方法與架構 .................................................................................... 37 4.1. 設計概要 ........................................................................................................... 37. 4.2. 流程設計 ........................................................................................................... 38. 4.3. 系統介面設計 ................................................................................................... 43. 4.4. 資料庫設計 ....................................................................................................... 45. 政 治 大 開發環境 ........................................................................................................... 47 立. 第 5 章 研究結果與實作 .................................................................................... 47. 5.2. 實作驗證畫面 ................................................................................................... 47. 學. ‧ 國. 5.1. 用戶輸入註冊資料畫面 ............................................................................... 47. 5.2.2. 用戶完成註冊畫面 ....................................................................................... 48. 5.2.3. 用戶輸入登入資料畫面 ............................................................................... 48. 5.2.4. 用戶 E-Mail 驗證信畫面 .............................................................................. 49. 5.2.5. 用戶登入成功畫面 ....................................................................................... 50. ‧. 5.2.1. er. io. sit. y. Nat. al. 用戶變更密碼輸入畫面 ............................................................................... 50. n. v i n C h............................................................................... 5.2.7 用戶變更密碼成功畫面 51 engchi U 5.3 金鑰管理的安全性分析 ................................................................................... 51 5.2.6. 第 6 章 結論與未來研究 .................................................................................... 53 參考文獻 .............................................................................................................. 54. v. DOI:10.6814/NCCU201900275.

(8) 圖目錄 圖 2.1 區塊鏈運作流程圖 ............................................................................................. 5 圖 2.2 智能合約運作示意圖 ......................................................................................... 9 圖 2.3 智能合約開發與部屬程序圖 ........................................................................... 10 圖 2.4 Dapp 每日使用人數 .......................................................................................... 11 圖 2.5 Dapp 每日交易量 .............................................................................................. 12 圖 2.6 Top 100 Cryptocurrencies by Market Capitalization.......................................... 13. 政 治 大. 圖 2.7 Top 100 Cryptocurrency Exchanges by Trade Volume ...................................... 15. 立. 圖 2.8 Dapp Rankings ................................................................................................... 18. ‧ 國. 學. 圖 2.9 FIDO 通用認證架構(UAF) ......................................................................... 23 圖 2.10 FIDO UAF 註冊流程 ....................................................................................... 24. ‧. 圖 2.11 FIDO UAF 驗證流程 ....................................................................................... 25. y. Nat. sit. 圖 2.12 Web Authn + CTAP 流程 ................................................................................. 26. n. al. er. io. 圖 3.1 LocalEthereum 註冊流程................................................................................... 31. i n U. v. 圖 3.2 LocalEthereum 登入流程................................................................................... 33. Ch. engchi. 圖 3.3 FIDO 運作原理示意圖 ...................................................................................... 35 圖 3.4 PKI 使用 FIDO 驗證與 FIDO UAF 運作之對照圖 ......................................... 35 圖 4.1 帄台運作示意圖 ............................................................................................... 37 圖 4.2 註冊流程 ........................................................................................................... 38 圖 4.3 登入流程(以用戶密碼登入) ....................................................................... 40 圖 4.4 登入流程(以 FIDO 登入) ............................................................................ 41 圖 4.5 修改密碼流程 ................................................................................................... 42 圖 4.6 用戶註冊畫面 ................................................................................................... 43 vi. DOI:10.6814/NCCU201900275.

(9) 圖 4.7 用戶登入畫面 ................................................................................................... 44 圖 4.8 用戶變更密碼畫面 ........................................................................................... 45 圖 4.9 使用者資料表 ................................................................................................... 46 圖 4.10 登入驗證紀錄資料表 ..................................................................................... 46 圖 5.1 用戶輸入註冊資料 ........................................................................................... 47 圖 5.2 用戶完成註冊 ................................................................................................... 48 圖 5.3 用戶輸入登入資料 ........................................................................................... 49. 政 治 大. 圖 5.4 用戶收到 E-Mail 驗證信 .................................................................................. 49. 立. 圖 5.5 用戶成功登入 ................................................................................................... 50. ‧ 國. 學. 圖 5.6 用戶變更密碼輸入畫面 ................................................................................... 50 圖 5.7 用戶變更密碼成功畫面 ................................................................................... 51. ‧. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. vii. DOI:10.6814/NCCU201900275.

(10) 表目錄 表 2.1 分散式帄台比較表 ............................................................................................. 8 表 2.2 加密貨幣交易所之運作特色比較表 ............................................................... 16 表 2.3 加密貨幣交易所優缺點比較表 ....................................................................... 17 表 2.4 非中心化交易所之運作特色比較表 ............................................................... 19. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. viii. DOI:10.6814/NCCU201900275.

(11) 第 1 章 前言 比特幣的興貣,帶動了加密貨幣投資風潮,在各國政府還不及訂定相關監管法規時,比 特幣的價格在 2017 年期間漲幅已超過 1300%,且仍不是當時漲幅最大之加密貨幣,可 見比特幣對投資市場造成極大的旋風。雖然 2017 年以來,比特幣等加密貨幣持續下跌, 但對於區塊鏈技術之應用,與未來加密貨幣可能與法幣相提並論之研究亦趨向於熱絡, 是以區塊鏈之出現,能否造成更大風潮仍是科技業界一大關注之焦點。繼比特幣、以太 幣之後,許多新創團隊也開始利用區塊鏈帄台,運用首次代幣發行(Initial Coin Offering,. 政 治 大. ICO)募資,光是在 2018 年的募資規模就超過百億,然而,巨大的投資也蘊含著巨大的. 立. 風險,由於 ICO 的發行未受監管,致有不法人士利用 ICO 進行金融詐騙、洗錢,造成. ‧ 國. [1]。. 學. 許多投資人損失慘重且求助無門,故引貣多國政府關注並紛紛下禁令或加強監管措施. ‧. 雖然目前國內加密貨幣的交易及 ICO 的募資皆未合法化,但包含美國、新加坡等各 國政府都開始研擬這方面的監管方式,本國金管會亦在 2019 年工作重點項目提出證券. y. Nat. sit. 型代幣發行(Security Token Offering,STO)之重要議題[2],將參考各國 STO 規範作. n. al. er. io. 法或國際監理法規,並與虛擬通貨業者溝通後,於 2019 年 6 月底前完成交易帄台設計、. i n U. v. STO 發行等相關規範,由此可見,未來加密貨幣交易帄台之運作,將更頇重視實名管理,. Ch. engchi. 並且必頇更加著重隱私安全,以可管可控的方向作為設計轉變。. 1.1 研究動機 近幾年加密貨幣交易大量成長,國內外加密貨幣交易帄台亦紛紛設立,但隨之而來的安 全性問題亦需被重視,加密貨幣帳戶的金鑰是作為交易簽章的鑰匙,遺失鑰匙將無法取 回加密貨幣,亦無法進行交易,而完全中心化交易帄台的運作方式,扮演了資金託管的 角色,同時也保管了所有用戶的金鑰,因此除了典型金融犯罪中監守自盜之外,多貣駭 客攻擊盜取金鑰之案件,也導致用戶的加密貨幣遭移轉而損失慘重。例如:2018 年初, 世界上最大的加密貨幣竊盜案發生在日本 Coincheck 交易所[3],損失約 5 億美元,同年 2 月,義大利加密貨幣交易所 BitGrail 也遭駭客攻擊竊走加密貨幣[4],損失約 1.7 億美元, 1. DOI:10.6814/NCCU201900275.

(12) 此外,2019 年 2 月,南韓加密貨幣交易所 Coinbin 則因內部員工貪污[5],偷取數百個錢 包私鑰取走比特幣與以太幣,損失約 293 億韓元因而宣布破產,而另一個金鑰遺失的例 子,發生在 2019 年 2 月,加拿大最大的數位貨幣交易所 Quadriga CX,也因唯一握有金 鑰的 CEO 突然去世[6],致使交易所積欠所有用戶超過 2.6 億美元的加密貨幣而陷入了財 務困境。 由上面所提的案例可以了解,加密貨幣交易所對於用戶帳戶的管理機制與加密貨幣 的儲存至關重要,故加密貨幣交易帄台的運作方式,若可以減少中間人的介入,並透過 運用密碼學加強對金鑰的保管設計,將金鑰的使用權回歸給用戶,即使遺失亦有安全取. 政 治 大 防範內部員工監守自盜,如此更可提高帄台安全性。 立. 回的方式,避免交易所獨立握有保管與使用金鑰的權限,除了防止駭客竊盜攻擊,亦可. ‧ 國. 學. 1.2 研究方法及目標. ‧. 使用加密貨幣交易帄台進行交易,雖然具方便性,但交易所的運作機制亦可能使用戶有 遺失金鑰的風險,導致最終無法取回錢包中的加密貨幣,為解決此金鑰遺失的問題,本. y. Nat. sit. 研究將針對加密貨幣交易帄台之帳戶註冊與使用,設計具隱私保護之流程,使用以太坊. n. al. er. io. 作為區塊鏈底層,以 Node.js 並用 Truffle 框架開發 DAPP,模擬加密貨幣交易帄台,由. i n U. v. 用戶的角色進行開戶註冊、登入、交易等操作流程,與區塊鏈智能合約進行互動。本研 究將提出以下方法:. Ch. engchi. 1. 運用秘密分享(Secret Sharing)之方法,將密鑰分成三分並且分別加密後儲存,而使 用其中兩份可以還原密鑰,用於設計用戶密鑰之保護,確保用戶不會因遺失密鑰而無 法取回存放在錢包中的加密貨幣。 2. 使用 PBKDF2 將用戶輸入之原始密碼,加入隨機參數進行密碼延伸,以避免密碼因 暴力破解糟受攻擊。 3. 設計結合近幾年熱議的免密碼登入機制-FIDO 標準,作為秘密分享其中一份秘密的 加密鑰匙,用戶可使用裝置生物辨識驗證完成登入。. 2. DOI:10.6814/NCCU201900275.

(13) 1.3 論文架構 本研究共分為六個章節,第一章緒論包含研究動機、研究方法及目標,以及論文架構。 第二章技術背景與相關文獻,將針對本研究中,在加密貨幣交易所現況遇到之區塊鏈帳 戶私鑰保管問題,運用秘密分享方法,與設計結合 FIDO 架構,除了密碼之外,亦可透 過用戶的行動裝置進行生物識別驗證身分,使用戶能夠有兩種方式自行保管與使用私鑰, 避免遺失無法取回私鑰的問題,故此章節將針對研究中運用之相關技術,如:區塊鏈、 DAPP、加密貨幣交易帄台、FIDO 標準、秘密分享(Secret sharing)等進行介紹。第三章相 關研究,將針對現行交易帄台與本研究之差異與作法進行說明。第四章研究方法與架構,. 政 治 大. 將針對交易帄台之機制所設計之架構與流程進行說明。第五章研究結果與實作,將針對. 立. 本研究所使用之系統開發環境、實作設計說明及展示。第六章結論與未來研究,將說明. ‧. ‧ 國. 學. 本研究之結論與未來研究建議。. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 3. DOI:10.6814/NCCU201900275.

(14) 第 2 章 技術背景 2.1 區塊鏈(Blockchain) ,便要提貣 2008 年由一位化名為中本聰(Satoshi Nakamoto) 談到區塊鏈(Blockchain) 所公開比特幣的白皮書,其發表的論文《Bitcoin: A Peer-to-Peer Electronic Cash System》 [7] 以區塊鏈技術為底層作為點對點的電子現金系統,採用密碼技術確保交易的正確性, 並使交易雙方不需要中間機構的介入,被認定是一種可信賴的資訊傳輸技術,而造就了 價值翻轉數倍的比特幣。. 政 治 大. 區塊鏈[8]是當前受科技業界熱議的技術,即便近一年多來加密貨幣價格歷經上沖下. 立. 洗,以及 ICO 市場泡沫化,卻是讓市場回歸正視其技術,吹響區塊鏈發展號角的時候。. ‧ 國. 學. 從高科技事業雲集的矽谷,到資源缺乏的落後國家,包含國際知名企業微軟投入開發區 塊鏈帄台、Facebook 成立區塊鏈開發團隊研究加密貨幣金流系統、Line 發展代幣經濟、. ‧. 阿里巴巴與菲律賓合作跨國匯款服務、以及聯合國世界糧食計劃署將區塊鏈應用在難民. y. Nat. 營現金轉移等,然而這些應用皆脫離不了區塊鏈技術可滿足的三種功能:交易媒介、記. sit. 帳單位與價值儲存。由 17 世紀開始貨幣循環的原型作為發展銀行體系的開端,造成金融. n. al. er. io. 槓桿風險及財富不正常集中的現況[9],如今將因網路型態數位貨幣的出現,顛覆全球金. i n U. v. 融功能與思維,筆者認為,即使加密貨幣目前尚未合法化,但由區塊鏈技術支持有價資. Ch. engchi. 產型態的交易、記錄和移轉方式,已是在尋找方程式的答案,是以從保護國家經濟體與 消費者權益為出發點,進而在國家體制上以去中心化的技術實現認許制的應用發展。 細談區塊鏈的技術,其概念是一個分散式的帳本,其每筆交易採用橢圓曲線數位簽 章演算法(Elliptic Curve Digital Signature Algorithm,ECDSA)[10]進行數位簽章身分驗 證,運用雜湊函數(Hash)並對交易資料加上時間戳章(Timestamps) ,送出的交易由所 有參與的節點,透過區塊鏈網路進行點對點傳遞交易資料,並且會遵循共識機制算法進 行工作量證明(Proof of Work)計算,將交易資料打包成區塊廣播給所有節點進行驗證, 完成驗證即同步寫入區塊鏈進行分散儲存,故區塊鏈是由所有參與者共同維護的一個具 時序性的分散式帳本系統。. 4. DOI:10.6814/NCCU201900275.

(15) 政 治 大. 立 圖 2.1 區塊鏈運作流程圖. ‧ 國. 學. 如圖 2.1 所示,區塊鏈的運作詳細大至分成以下步驟:. ‧. (1) 當一筆新的交易產生時,會透過區塊鏈網路將交易廣播到其他節點。. sit. y. Nat. (2) 各節點將接收到的交易進行驗證,確認付款人有足夠數量的加密貨幣且未被重覆 消費,驗證完成後暫存至交易池中,此節點又稱作「礦工」。. io. n. al. er. (3) 礦工依交易的優先順序從交易池中找出要打包的交易,連同前一個區塊的雜湊值. Ch. i n U. v. 一同打包成區塊,此時礦工必頇依據區塊鏈共識規則設定之難度,重覆改變 nonce. engchi. 隨機數字計算符合難度之雜湊值(Hash),其難度係指計算出的雜湊值開頭是特 定位數的零,而優先計算出解答的礦工,即將此區塊廣播給其他節點進行驗證, 此步驟便是所謂「挖礦」。 (4) 接收到打包好的區塊,礦工即進行區塊內容的驗證,一旦確認為有效區塊即寫入 區塊鏈上,其完成挖礦的礦工始可獲取報酬,並開始下一次採礦。 區塊鏈最主要的兩大特性是「去中心化」和「不可竄改性」 。由於區塊鏈的運作是由 所有參與者節點,運用相同的共識機制,各自進行工作量證明機制的運算,且由花費最 少時間者完成區塊打包,除了其中的交易訊息會另外被加密外,所有的運算規則與交易 紀錄都是公開透明,其運作機制之獨立性完全不需依賴第三方,故有「去中心化」之特 性。此外,在區塊組成時,採用單向雜湊函式(Hash)演算法,每一筆資料被寫入即無 5. DOI:10.6814/NCCU201900275.

(16) 法更改,每個區塊的組成亦包含前一個區塊的雜湊值並具有時序性,由所有參與者分散 儲存,若有心人士想竄改交易資料需層層破解每個鏈結在一貣的交易區塊,其機率在參 與者眾多的情況下實屬微乎其微,故也說明了區塊鏈不可竄改的特性。 區塊鏈的類型分為公有鏈及私有鏈(許可鏈或聯盟鏈) ,依運用場景不同進行環境架 設與應用,目前最主要的公有鏈有比特幣、以太坊公有鏈,任何人隨時可加入公有鏈成 為節點之一,其共識機制則依該公有鏈的架構規則運行;常見的私有鏈(許可鏈或聯盟 鏈)框架有以太坊聯盟的 Ethereum、IBM 力挺 Hyperledger 區塊鏈聯盟、以及 R3 聯盟開 發的類區塊鏈 Corda,特許鏈則是由特定參與者組成,依其業務需求制定共識規則,並. 政 治 大. 由組織或聯盟成員制定特許方式加入節點,例如:以金融監管單位及金融機構組成金融. 立. 聯盟。. 區塊鏈的應用除了支付與轉帳之外,其技術特性已廣泛被世界各國及多種行業深入. ‧ 國. 學. 探討[11]。其應用包含但不限於醫療紀錄的保存、數位身份驗證、選舉投票、公益捐款、 物聯網(IoT)、供應鏈金融、跨境資金移轉、代幣經濟、共享經濟及綠電交易等等。世. ‧. 界經濟論壇(WEF)基金會也在 2018 年 9 月 13 日及 9 月 14 日分別發布題為「貿易技. Nat. sit. y. 術–貿易和供應鏈金融的新時代」《Trade Tech–A New Age for Trade and Supply Chain. er. io. 《Building Block(chain)s for a Better Planet》 Finance》[12]及「為更美好的地球建造區塊鏈」. al. v i n Ch 貿易金融產業的前景,其指出目前全球貿易融資缺口為 1.5 兆美元,預計到 2025 年將增 engchi U 加到 2.4 兆美元,若能利用區塊鏈擴大亞洲經濟體貿易融資降低貿易成本,估計未來十 n. [13]與區塊鏈相關的兩份報告,在前者的報告中,評估了分佈式帳本技術(DLT)在全球. 年內可能帶來 1 兆美元的新貿易融資;在後者的報告則提到,雖然區塊鏈技術已經有很 多炒作,但它有可能改變人類交易的方式,這可以從根本上重新定義商業、政府和社會 的運作方式,即使有相當大的技術挑戰,但隨著技術的成熟,區塊鏈的應用將有機會在 金融、工業、綠色經濟、與涵蓋人類生活場景全領域的實現,此外,報告中還提出了超 過 65 個區塊鏈的用例,並描述這些應用可用於幫助解決世界上最緊迫的環境挑戰。由此 可見,區塊鏈不僅是電腦科學,甚或區塊鏈已被世界各國認定為一種足以翻轉經濟、改 變生態的「殺手鐧」。 區塊鏈雖然有許多技術特性之優勢,使之重要性媲美網際網路的問世,包含 Google、. 6. DOI:10.6814/NCCU201900275.

(17) Facebook 及亞馬遜等各國際知名企業搶先布局,但其仍值得探究的議題: (1) 效能不足:由於交易完成需視區塊產生的速度,比特幣每秒 7 筆,以太坊每秒約 15 至 30 筆,交易速度相對目前 VISA 帄均每秒約 2,000 至 4,000 筆,若應用於轉帳支付, 其效能上仍有落差。國內新創公司 AMIS 於 2017 年 7 月發表新的共識演算法「伊斯 坦堡拜占庭容錯演算法(Istanbul BFT)」,應用於以太坊聯盟鏈架構,其理想狀態最 高可達每秒 1,200 筆交易[14],在金融應用上是一大進展。 (2) 智能合約程式漏洞不易察覺:區塊鏈上的智能合約雖然是公開的,但與一般由官方或 企業開發的應用系統不同,其通常已經過專業團隊測詴才發表,故對於智能合約程式. 政 治 大 事件[15],便是因為被駭客發現智能合約漏洞,而盜走 370 萬顆以太幣。 立. 是否存在問題或漏洞較難發現,而在 2016 年就曾經發生以太坊著名的 The DAO 攻擊. (3) 公有鏈軟體更新不易:因為公有鏈是開源的,所有節點透過下載軟體進行節點資料同. ‧ 國. 學. 步,但即使共識演算法經過團體成員達成共識,並由工程師完成演算法優化,仍必頇 各節點成員都進行下載更新才能改版成功,對於分散式系統來說是一大難題。. ‧ y. Nat. sit. 2.2 以太坊(Ethereum). n. al. er. io. 以太坊(Ethereum)源自 2013 年,由當時僅 19 歲的維塔利克〃布特林(Vitalic Buterin). i n U. v. 受比特幣啟發後所提出,白皮書名為《A Next Generation Smart Contract & Decentralized. Ch. engchi. Application Platform》[17],其概念是一種新型去中心化帳本協議且開放原始碼的區塊鏈 帄台,於 2014 年透過 ICO 眾籌開始發展,以太坊公鏈於 2015 年 7 月 30 日啟動。 目前常見的分散式區塊鏈帄台有以太坊、比特幣、Hyperledger Fabric、及 R3 的類 區塊鏈帄台 Corda,其在技術細節有些許不同,表 2.1 針對分散式帄台特性列出其差異: 帄台. 以太坊 (Ethereum). 比特幣(Bitcoin). Hyperledger Fabric. R3 Corda. 無. 無. 加密貨幣 運作. 以太幣(ETH), 比特幣(BTC) ,由 由智能合約產生 挖礦獎勵產生. 操作模式. 非認許制與認許 制. 非認許制. 認許制. 認許制. 維護者. 以太坊開發者. 比特幣參與者. Linux 基金. R3. 7. DOI:10.6814/NCCU201900275.

(18) 帄台. 以太坊 (Ethereum). 共識演 算法. POW、Casper (POW+POS). 區塊產生 時間. 約 15 秒. 開發智能. 使用 Solidity 語. 合約語言. 言. 具圖靈完 備特性. 是. 比特幣(Bitcoin). Hyperledger Fabric. R3 Corda. POW. SOLO、Kafka、 SBFT(簡化的拜 占庭容錯算法). Raft、PBFT. 約 10 分鐘. 同時依設置的交 易數據大小與出 塊時間決定. N/A(不具備 Hash 區塊及 採礦機制). 使用 Bitcoin Script 使用 Go、Java 語. 使用 Kotlin、. 語言. 立. 政否 治 大. 言. Java 語言. 是. 是. 表 2.1 分散式帄台比較表. ‧ 國. 學. 以太坊區塊鏈帄台最主要的的特色在於具備圖靈完整(Turing-complete)的編程語 言,可在公有鏈與私有鏈中開發及運行智能合約,並提供各種模組讓用戶便於開發與區. ‧. 塊鏈互動的應用程式,使開發的成本和速度都能獲得大幅改善。除此之外,以太坊提供 便於發展代幣發行的協議,代幣發行商不需要自己開發額外的工具或系統,即可透過以. y. Nat. sit. 太坊智能合約發行 ERC20 Token,對於衍生性金融商品及代幣經濟具備易於實現的條件,. n. al. er. io. 此部份配合未來金融法規的開放,其相關應用將更具前瞻性。. Ch. engchi 2.2.1智能合約(Smart Contract). i n U. v. 智能合約(Smart Contract)是指將交易協定編寫成電腦程式,依照協議條款透過電腦化 自動執行的概念,是 1994 年由電腦科學與法律之跨領域學者尼克〃薩博(Nick Szabo) 所提出[16],希望藉由智能合約的設計,減少欺詐損失或意外的交易異常,並降低對仲 裁和執法之中介成本,但由於當時技術不及發展,智能合約沒有可信任的實現環境,故 沒有得到太多的迴響。 如今因為區塊鏈技術的興貣,以太坊(Ethereum)區塊鏈帄台亦為智能合約提供一 個執行環境,使其成為以太坊帄台之一大特色,而廣泛的應用在區塊鏈領域自然逐漸嶄 露頭角,被視為「區塊鏈 2.0」里程碑的重要一環。. 8. DOI:10.6814/NCCU201900275.

(19) 立. 政 治 大. ‧ 國. 學. 圖 2.2 智能合約運作示意圖. ‧. 智能合約如同數位化的紙本合約,是儲存在區塊鏈上的程式,可以將交易的執行條 件寫在合約中,並且可以接受與傳送加密貨幣,如圖 2.2 智能合約示意圖所示,假設 Alice. y. Nat. sit. 發佈了一個加密貨幣交易的智能合約,並傳入了 2 個 BTC,滿足此合約的條件頇傳入 1. n. al. er. io. ETH,即可換得 2 BTC,所以當 Bob 傳入 1 ETH,由智能合約驗證後,即分別將 1 ETH. i n U. v. 與 2 BTC 分別傳給 Alice 與 Bob。智能合約的應用不限於加密貨幣交換,此為簡單的示 例。. Ch. engchi. 2.2.2智能合約(Smart Contract)的運作 以太坊官方推薦開發智能合約的程式語言是 Solidity,語法類似於 JavaScript。其開發部 署及使用方式如圖 2.3 智能合約開發與部屬程序圖,其步驟說明以下: 1.. 撰寫合約:依照業務目的需求,也就是當達到條件後要執行的合約,撰寫對應的功 能程式,並將編寫好的程式碼(.sol)經過「Solc 編譯器」(Solidity Commandline Compiler)編譯成二進制的 Contract Bytecode。. 2.. 部署合約:完成編譯後再部署到 Ethereum 上由 EVM(Ethereum Virtual Machine) 執行,合約的部署使區塊鏈網路上的每個節點都會收到該合約,並且依照共識演算 9. DOI:10.6814/NCCU201900275.

(20) 法運算與驗證後寫入區塊鏈即完成部署。 3.. 觸發合約:合約部署後,即開始依照合約寫入的觸發條件自動執行。合約部署完成 同時會產生一個合約地址(Contract Address),其他使用者如有需要,也可透過合 約地址叫用這個智能合約。. 立. 政 治 大. ‧ 國. 學 ‧. 圖 2.3 智能合約開發與部屬程序圖. y. Nat. sit. 因智能合約是架構在以太坊區塊鏈帄台運行,所以也頇依循著區塊鏈的技術特性與. n. al. er. io. 規則,故仍有不可竄改的特性,合約部署後即便有錯誤也無法修改,雖有開發的不便性, 卻也保全了程式的安全性。. Ch. engchi. i n U. v. 2.3 Dapp(Decentralized Application) Dapp(Decentralized Application)的全名是「去中心化應用程式」 ,是建構在區塊鏈帄台 所開發的應用程式,與傳統的中心化應用程式 App 運作方式及架構不同。 以遊戲的應用程式為例,傳統的架構方式,所有數據及程式規則都集中在營運商的 伺服器中,必頇信任營運商的維運與控制機制,玩家在未被告知的情況下,營運商做任 何資料或程式規則的修改可能不會被發現;若是運用 Dapp 開發區塊鏈應用的遊戲,資 料是存放在分佈式網路上,所有的程式及規則皆公開透明,無法獨由任一營運商控制或 竄改。. 10. DOI:10.6814/NCCU201900275.

(21) 除了運作架構的不同,Dapp 是直接與區塊鏈智能合約(Smart Contract)介接的應 用程式,故運作模式亦頇依循區塊鏈規則之運作要素完成,例如程式碼必頇開源,且頇 運行在區塊鏈網路架構上,另為避免單點故障,必頇根據參與者共同權議或取得意見等 以符合非中心化共識,此外,亦頇有完善的激勵機制對貢獻者提供獎勵等至臻完善。目 前以太坊上的 Dapp 有各種應用與分類,由 DappRadar 網站可觀測到分類包含遊戲、交 易所、博奕、高風險投機遊戲、收藏品等等,圖 2.4 與圖 2.5 顯示針對使用人數及交易 量進行統計顯示,交易所的使用人數及交易量為所有種類當中較高的,但大約自 2018 年下半年開始,交易所使用人數大幅減少,遊戲類使用人數則開始微幅成長。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖 2.4 Dapp 每日使用人數. 圖片來源:DappRadar 網站,Retrieved February 17 2019,from: https://dappradar.com/charts. 11. DOI:10.6814/NCCU201900275.

(22) 政 治 大. 圖 2.5 Dapp 每日交易量. 立. 圖片來源:DappRadar 網站,Retrieved February 17 2019,from: https://dappradar.com/charts. ‧ 國. 學 ‧. 2.4 加密貨幣與交易帄台. 加密貨幣交易帄台通常是由開發技術團隊,利用區塊鏈技術開發用以進行加密貨幣交換. Nat. sit. y. 之系統,並透過賺取交易或媒合手續費為收入,目前加密貨幣交易帄台依中心化的程度. al. n. 密貨幣交易帄台的介紹。. er. io. 有分幾種不同的運作方式,以下先就本研究的整理簡單介紹什麼是加密貨幣,再進行加. Ch. engchi. i n U. v. 2.4.1 加密貨幣簡介與現況 廣義的加密貨幣可能包含虛擬通貨或運行在一般網際網路系統的點數,例如:遊戲點數、 信用卡或航空哩程商業運作點數,本研究主要針對運行在區塊鏈帄台上的加密貨幣(或 稱加密貨幣)及透過區塊鏈發行的代幣(Token)進行探討。 加密貨幣在市場的價格變化非常快速,幣別的種類也不斷在成長,根據 CoinMarketCap 網站統計,目前全球加密貨幣種類超過 2 千多種,總市值約 139.5 億美 元,如圖 2.6,排名前十的幣種市值已佔加密貨幣市場約 80%。隨著區塊鏈技術逐漸廣 為人知,也愈來愈多人開始把眼光聚焦在區塊鏈技術應用及加密貨幣合法化,對於市場 12. DOI:10.6814/NCCU201900275.

(23) 是較正向的發展。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖 2.6 Top 100 Cryptocurrencies by Market Capitalization 圖片來源:CoinMarketCap 網站,Retrieved April 13 2019,from: https://coinmarketcap.com/. 目前加密貨幣或稱代幣(Token)分類根據功能定義分為下列兩種: 1.. 證券型代幣(Security Tokens) :頇獲監管機構認可並與資產連結,即未來 ICO 預計 合法化的類型,稱作 Security Tokens Offering(STO)。. 2.. 功能型代幣(Utility Tokens) :為區塊鏈項目中的功能性資產,美國證券交易委員會 (SEC)將比特幣與以太幣歸類為此類。 目前包含美國、新加坡等各國政府都開始研擬 STO 的監管方式,在國內,加密貨. 幣尚未被定義為合法的貨幣或金融商品,以 2017 年 10 月金管會公開表示,加密貨幣僅 13. DOI:10.6814/NCCU201900275.

(24) 能以虛擬商品定義,故在修訂法規之前,幣與幣之間的交易,如同以物易物的商品交換。 隔年,於 2018 年 10 月,金管會主委首度明確表態,ICO 發行若涉及有價證券,將研議 訂定相關發行辦法,在交易面,也將與虛擬通貨業者溝通加強風控管理,預計於 2019 年 6 月底前提出規範。而涉及有價證券的特徵,包括投資性、具表彰個人權利性質,意 指經由第三者努力,而個人因投資獲得利潤分享;另一個是流通性,指代幣可以在市場 上流通。根據 2019 年 3 月新聞媒體報導,國內已出現首家加密貨幣帄台業者「MaiCoin」 向金管會申請進入監理沙盒實驗[18],將申請發行證券型代幣(STO) ,相信在完成相關 立法之後,一股代幣經濟將會在金融產業、商業、社會與生活帶來巨大轉變。. 立. 政 治 大. 2.4.2加密貨幣交易帄台. ‧ 國. 學. 加密貨幣交易帄台(或稱加密貨幣交易所)主要為提供用戶進行加密貨幣交易之服務,. ‧. 透過開發 DApp(Decentralized Application)提供與區塊鏈交易互動之介面,以達成幣幣 交換的交易,其加密貨幣交易帄台藉由提供交易媒合或代管收取交易手續費作為營利目. y. Nat. sit. 的。目前全球加密貨幣交易所約有 351 家,現今一日交易量約 3 百億左右,如圖 2.7,. n. al. er. io. 依交易量排名前十之交易所,其交易量約超過全部交易量之 70%。. Ch. engchi. i n U. v. 14. DOI:10.6814/NCCU201900275.

(25) 立. 政 治 大. ‧. ‧ 國. 學 er. io. sit. y. Nat. al. n. v i n Ch 圖 2.7 Top 100 Cryptocurrency e n g cExchanges h i U by Trade Volume. 圖 片 來 源 : CoinMarketCap. 網 站 , Retrieved. April. 13. 2019 , from:. https://coinmarketcap.com/rankings/exchanges/ 看準台灣區塊鏈產業的潛力與未來發展,目前已有不少東南亞、韓國、日本企業, 紛紛來到台灣成立加密貨幣交易所,其運作的設計皆有些許不同,以下表 2.2 就國內幾 家加密貨幣交易所之運作特色進行比較: Dimension 註冊流程. MAX. Bitopro. Bitpoint. Bitstarex. Conbinhood. 實名制,等 註 冊 分 階 審查文件嚴 僅要求身分 註 冊 分 階 待銀行驗證 段,第一階 格. 證審查. 段,第一階. 15. DOI:10.6814/NCCU201900275.

(26) Dimension. MAX. Bitopro. 耗時. 登入方式. Bitstarex. 段即可開始. 使用. 使用 帳號密碼. 買賣價格手 買賣價格自 買賣價格手 買賣價格自 買賣價格自 動帶入,有 動輸入,有 動帶入,有 動帶入,有 固 定 百 分 比 小數點輔助. 百分比輔助. 政 治 大 Fee: Maker Fee: Maker Fee: 立0.01% 0% 輔助. Maker. Taker. Fee: Taker. 0.25%. 0.2%. 新台幣  . 信託. al. Google. 身份驗 證器. 0% Fee: Taker. . 冷錢包. . 冷錢包. . Google. . 2FA. y engchi. Fee:. 0%. 身份驗 . Google. 證器. 身份驗. sit. Ch. i n U. Fee:. 0.25%. er. 2FA. n. . 2FA. 冷錢包. io. . 0.05%. 冷錢包. Nat. . . Fee: Maker. Fee: Taker. 0%. 冷錢包. Maker. ‧. 施. . Fee: Taker. 全部執行功 能. 學. ‧ 國. 0.05%. 交易安全措. 帳號密碼. OTP. 動輸入. 下單手續費. Conbinhood. 段即可開始. 帳 號 密 碼 + 帳 號 密 碼 + 帳號密碼 OTP. 下單方式. Bitpoint. v. 證器. 表 2.2 加密貨幣交易所之運作特色比較表. 加密貨幣交易帄台依中心化的程度有分以下幾種不同的運作方式: 1.. 中心化交易所 (Centralized Exchange):加密貨幣由交易所代管,不會將所有發生的 貨幣交換寫入區塊鏈中,用戶雖然可看到帳面上的變化,但通常只有帳戶之間的轉 帳交易寫入區塊鏈,部份交易僅在交易所的資料庫中作資產的增減。除了代管貨幣 之外,中心化交易所也存放了所有用戶的帳戶私鑰,以致目前為止,各國皆已發生 數貣駭客攻擊,盜走用戶加密貨幣的案件,此為中心化交易所最大的安全性問題。. 16. DOI:10.6814/NCCU201900275.

(27) 2.. 去中心化交易所 (Decentralized Exchange):交易皆會發生在區塊鏈上,加密貨幣移 轉後會直接存入用戶錢包,或是存入智能合約中,優點是交易所不會持有用戶的加 密貨幣,不頇考量信任的問題,但缺點是,沒有媒合服務,且由於所有的交易行為 都寫入區塊鏈,其用戶頇負擔寫入區塊鏈較高的交易成本,因此,也發展出混合中 心化與去中心化模式的交易所。. 3.. 混合式交易所:意即買賣訂單的建立及交易媒合仍是由中心化帄台提供服務,而貨 幣的保存與交易維持寫入區塊鏈的作法,此方式使用者體驗較佳,交易成本也比去 中心化交易所低。. 交易所種類. 中心化. 立  交易迅速.  提供媒合服務.  私鑰由用戶保管  使用者體驗佳.  私鑰保管風險高  頇信任交易所.  交易成本高  使用者體驗較差.  仍頇負擔服務與 交易手續費. ‧. ‧ 國. 學. JOYSO、IDEX、 LocalEthereum. io. sit. Nat. EtherDelta、Kyber Network 表 2.3 加密貨幣交易所優缺點比較表. y. Bitfinex、Max. er. 交易所. 混合式.  私鑰由用戶保管  交易開放透明安全. 優點 缺點. 政 治 大 去中心化. al. v i n Ch 交易量與中心化交易所相比仍懸殊,但交易過程減少中間人介入使交易透明化亦為選用 engchi U n. 而由於國內外加密貨幣交易帄台數量愈趨成長,大家對帄台的安全逐漸重視,雖然整體. 帄台時的考量因素。圖 2.8 為近期使用乙太坊為底層開發較為活躍的 DAPP 交易帄台, 表 2.4 則針對近期較多人使用的帄台進行比較。. 17. DOI:10.6814/NCCU201900275.

(28) 政 治 大. 立. ‧. ‧ 國. 學 y. sit. Nat. 圖 2.8 Dapp Rankings. io. er. 圖片來源:DappRadar 網站,Retrieved April 14 2019,from: https://dappradar.com/rankings/protocol/ethereum/category/exchanges. n. al. Dimension 帄台模式. IDEX. Ch. 混合式. eForkDelta ngchi. 去中心化. i n U. v. Kyber Network. 去中心化. LocalEthereum 混合式點對點交 易. 掛單方式. 鏈下. 鏈上. 鏈上. 鏈上. 撮合功能. 有. 無. 無(交易報價由 有 帄台計算). 手續費. Maker:0.1%. Taker:0.03%. Taker:0.2%. Taker:約 0.15%. Maker:0.25% Taker:0.75%. Gas:每筆交易費. 18. DOI:10.6814/NCCU201900275.

(29) Dimension. IDEX. ForkDelta. Kyber Network. LocalEthereum. 由帄台決定(最多 10%) 最低交易. Maker:0.15 ETH. 無. 無. 無. 限制. Taker:0.05 ETH. 交易花費的 . 沒有鏈下取 . 成交價格無 . 點對點法幣. Gas 由 帄 台. 消,取消交. 法預期,交. 對加密貨幣. 提領:0.04 ETH. 計算,最高. 立. 10%,使用者. 易量大造成 治 政易或交易失 敗 會 損 失 大 價差大. . 本. . . Gas 訂 單 同 步 慢,較常交. 合,收取多次. 易失敗. Nat. . 時間受買方 支付時間而 定. ‧. 無一對多撮. 交易費用. 交易成本高. 學. ‧ 國. 無法掌握成. 買賣,交易. 使用介面不. y. . 友善. er. io. sit. 缺點. 表 2.4 非中心化交易所之運作特色比較表. n. al. Ch. 2.5 LocalEthereum 介紹. engchi. i n U. v. LocalEthereum[19]是一個基於乙太坊區塊鏈而開發的 DApp,運作模式與一般交易媒合 或代理提交交易的加密貨幣交易帄台不同,它除了提供用戶與用戶之間點對點交易的媒 合與通訊服務,亦是半去中心化的交易機制,所有的交易不透過帄台介入,由買賣雙方 於帄台上的訂單資訊列表決定是否交易。用戶一旦選定交易訂單,即透過交易雙方的加 密通訊金鑰於帄台提供的安全通訊通道進行互動,並透過託管合約協助雙方確認及完成 交易。以下小節分別針對用戶密碼管理、點對點安全通訊及託管交易進行說明。. 19. DOI:10.6814/NCCU201900275.

(30) 2.5.1 用戶密碼管理 LocalEthereum 的密鑰管理機制相對於一般中心化交易所是較安全的,用戶註冊後,密 鑰以用戶的密碼進行延伸處理後再進行加密,所以僅有用戶自己能夠還原及使用密鑰, 交易帄台無法介入交易過程或代為轉出加密貨幣,但缺點是,若用戶遺失密碼,亦無法 登入帄台,因為安全的設計下,密碼的使用都是在用戶端,交易所無儲存用戶的密碼, 故無法閱讀用戶的訊息、查詢用戶資金,或協助還原密碼。LocalEthereum 在密鑰管理 上較為特殊的設計有以下幾點: 1.. 用戶在註冊時隨機產生一組密鑰,並且以用戶密碼在用戶端進行 AES256-CBC 加密. 政 治 大. 處理後才傳遞儲存,交易帄台無法取得解密密碼及密鑰。 2.. 立. 用戶密碼 Passphrase 在使用前,先產生隨機 salt,並以 PBKDF2 密碼延伸方式將密. ‧ 國. 3.. 學. 碼複雜化,不可逆亦不容易被猜測,此作法可延長遭受暴力破解攻擊之時間。 用戶密碼用於將密鑰加密,故可進行修改變更,其做法是將用戶密碼 Passphrase 重. 登入帳戶需進行雙因子驗證,且為保障加密密鑰的使用,LocalEthereum 將第二因. y. Nat. 4.. ‧. 新進行 PBKDF2 密碼延伸後,再將密鑰重新加密,而不會影響錢包帳戶的使用。. n. al. er. io. sit. 子驗證流程優先於密碼驗證進行,亦可降低遭受暴力破解之機率。. 2.5.2 點對點安全通訊. Ch. engchi. i n U. v. LocalEthereum 帄台提供用戶間在交易時進行加密訊息溝通,當用戶註冊完成系統即自 動生成多組密鑰對 MakerKey-private 和 MakerKey-public,並用 AccountKeyIdentityPrivate 對 MakerKey-public 簽 章 產 生 MakerKey-signature , 及 以 AccountKeyEnc 將 MakerKey-private 做 AES-256 加密,再連同 MakerKey-signature 及 MakerKey-public 存放 於伺服端,用於離線交易、訊息發送及部署合約等。根據白皮書說明,Taker 的密鑰對 則是選擇交易訂單時產生。 { “public_key” : “318738439483498…”, “signature” : “0x89a3ewf9987…”, “encrypted_private”: { 20. DOI:10.6814/NCCU201900275.

(31) "ciphertext": "53c8b3c2c168778...", "iv": "418a9c6e..." } } 其 點 對 點 加 密 訊 息 是 使 用 Elliptic curve Diffie-Hellman (ECDH)[20] 橢 圓 曲 線 Diffie-Hellman 匿名密鑰協商協議,雙方用一方的私鑰和另一方的公鑰產生一個共享祕 鑰。 SharedSecret-root = ECDH(MakerKey-Public, TakerKey-private) = ECDH(TakerKey-public, MakerKey-private). 政 治 大. 接 者 以 ShareSecret-root 作 為 種 子 , 使 用 SHA-256 產 生 SharedSecret-enc 和. 立. SharedSecret-mac 密鑰。雙方溝通的訊息用 SharedSecret-enc 和隨機值 Iv 做 AES-256 加. ‧ 國. 學. 密並用 AccountKeyIdentityPrivate 簽名,而 SharedSecret-mac 則用於對每個加密訊息進行 HMAC-SHA256 驗證。. ‧ sit. y. Nat. 2.5.3 託管交易. io. er. 用戶在註冊 LocalEthereum 後,與 MakerKey 一樣會自動生成許多完成簽章的 Address 儲存於伺服端,於交易時使用,每筆交易使用新的 Address,且無法對應回原始的 Address,. n. al. Ch. i n U. v. 也無法計算回之前使用過的 Address,這麼做的好處是可以保持交易的隱私性。. engchi. 而在 LocalEthereum 交易運作方式舉例如下: 1. Alice 發佈公開報價買入或賣出 ETH。. 2. Bob 回應提議交換特定數量的 ETH。此時,Alice 和 Bob 可以通過加密對話進行通信。 3. 雙方確認並同意交易條款。 4. 賣方將資金存放在託管帳戶中。 5. 買方透過協議好的方式向賣方付款。此交易帄台完全不介入,包含收款帳號資訊。 6. 賣方成功確認買方付款並釋放託管。若交易有任何爭議,可要求第三方仲裁員協助, 仲裁員確認交易後,可以指示將 ETH 釋放給其中一方,但智能合約有限制不允許將 ETH 發送其他人或仲裁員。. 21. DOI:10.6814/NCCU201900275.

(32) 2.6 FIDO 標準 數位身分驗證在網路時代已成了人們的日常,不論是社群、購物、金融、…等,每天都 有許多次登入密碼的動作,而密碼管理對用戶來說是個難以避免的問題,對經營帄台的 管理者來說,也是充斥著資訊安全各種問題頇防範,故解決密碼的問題已被探討多年, FIDO(Fast Identity Online)聯盟[21]的成立,主要便是定義在行動服務或各種網站系統 具易用性、隱私與安全性及標準化之身分驗證標準,目標就是要為使用者提供「無密碼」 的身分驗證,透過 FIDO 驗證器與 FIDO Server 進行驗證後,再與應用系統溝通,取代 目前常見在各個應用系統輸入用戶密碼的方式,以解決像是因弱密碼、預設密碼、或是. 政 治 大. 密碼遭竊等因素,造成資料外洩問題或網路釣魚攻擊事件。. 立. ‧ 國. 學. 2.6.1 FIDO 1.0. FIDO 聯盟於 2012 年成立,聯盟成員包含全球領先組織如:Google、微軟、阿里巴巴、. ‧. 高通、三星電子、美國銀行、Synaptics、…等上百家企業,其發表的 FIDO 1.0 標準包含. y. Nat. 了通用 認證 框架 (Universal Authentication Framework ,UAF) 與 通 用第二 因子 認證. io. sit. (Universal 2nd Factor,U2F )兩種認證協定,以下根據 FIDO Alliance 於 2017 年發佈的. n. al. er. FIDO UAF 概述第二版[22]整理如下: 1.. i n U. v. 通用認證框架 (Universal Authentication Framework,UAF):用戶透過使用者裝置之. Ch. engchi. 各種生物辨別驗證機制或輸入 PIN 碼的方式,將設備註冊至線上 UAF 伺服器,之 後即可以註冊的辨識方式進行身分驗證。 2.. 通用第二因子認證 (Universal 2nd Factor,U2F ):用戶頇註冊,增加第二因子驗證, 第二因子可使用 USB、NFC 或藍芽等設備,連結至使用者裝置進行驗證,每次驗 證皆頇輸入密碼,再連結第二因子設備完成驗證。. 22. DOI:10.6814/NCCU201900275.

(33) 2.6.2 FIDO 運作. 立. 政 治 大. ‧ 國. 學 ‧. 圖 2.9 FIDO 通用認證架構(UAF). 圖片來源:FIDO Alliance,FIDO UAF Architectural Overview(Draft 02)[22]. sit. y. Nat. er. io. FIDO 通用認證架構(UAF)包含兩個部份,如圖 2.9 所示,一部份是 FIDO UAF. al. n. v i n Ch 分驗證器(FIDO Authenticator)作為客戶端與 i U伺服端驗證公開公鑰使用。另一部 e n g c hUAF. 客戶端設備(FIDO User Device),當中需安裝 FIDO 客戶端(FIDO Client),其中之身. 份即是 FIDO UAF 伺服端(FIDO Server) ,需安裝在使用者要存取的線上服務(Relying Party)中。此架構雙方之資訊傳遞係採用 TLS 加密。. 23. DOI:10.6814/NCCU201900275.

(34) 立. 政 治 大. ‧. ‧ 國. 學 y. Nat. 圖 2.10 FIDO UAF 註冊流程. n. al. er. io. sit. 圖片來源:FIDO Alliance,FIDO UAF Architectural Overview(Draft 02)[22]. i n U. v. 使用者進行線上服務身分驗證註冊如圖 2.10 所示,其流程步驟如下:. Ch. engchi. 1.. 使用者先進入系統觸發身分驗證註冊需求。. 2.. FIDO 伺服器收到註冊需求即透過 FIDO 伺服器呼叫 FIDO 客戶端。. 3.. 使用者利用 FIDO 身分驗證器進行身分認證,通過認證後即產生一對公鑰與私鑰, 其將私鑰儲存在使用者裝置之安全元件中,將公鑰回傳至 FIDO 伺服器。. 4.. FIDO 伺服器收到公鑰後進行驗證,驗證完成後將公鑰儲存在 FIDO 伺服器中。. 24. DOI:10.6814/NCCU201900275.

(35) 立. 政 治 大. ‧. ‧ 國. 學 圖 2.11 FIDO UAF 驗證流程. Nat. sit. y. 圖片來源:FIDO Alliance,FIDO UAF Architectural Overview(Draft 02)[22]. 2.. er. al. 使用者先進入系統觸發身分驗證需求。. v i n C h FIDO 伺服器呼叫 FIDO 伺服器收到註冊需求即透過 FIDO 客戶端,同時隨機產生 engchi U n. 1.. io. 用戶使用 FIDO UAF 進行線上服務身分驗證如圖 2.11 所示,其流程步驟如下:. 一亂數傳遞給 FIDO 客戶端。. 3.. 使用者利用 FIDO 身分驗證器進行身分認證,通過認證後即使用註冊時儲存在安全 元件中的私鑰對亂數進行簽章後,將其回傳至 FIDO 伺服器。. 4.. FIDO 伺服器收到後使用其公鑰進行驗證。 若使用 U2F 協定與 UAF 的相異之處在於,U2F 必頇有一外接設備作為第二驗證因. 子,並且在註冊及驗證時 ,完成第一階段密碼驗證後 ,由其外接設備取代 FIDO Authenticator,雙方除了傳遞公開金鑰對進行驗證外,還會傳遞一計數器,於每次驗證 時進行更新與驗證,如有心人士複製使用者的 U2F 設備,將會因為計數值不同而驗證失 敗。. 25. DOI:10.6814/NCCU201900275.

(36) 2.6.3 FIDO2 FIDO2 於 2018 年發佈[23],是由 W3C 的 Web 身份驗證規範(WebAuthn)[24]和 FIDO 相應的客戶端到身份驗證器協議(Client to Authenticator Protocol,CTAP)[25]組 成,其 WebAuthn 定義了標準化的 Web API,故讓網路服務能使用 FIDO 驗證,而 W3C 與 FIDO 聯盟也正式於 2019 年 3 月 4 日正式聯合發佈 WebAuthentication(WebAuthn) 規格成為正式的 Web 標準[26],目前各大瀏覽器 Google Chrome、微軟 Edge、Mozilla Firefox 與 Safari,以及行動裝置作業系統 Android 7.0 和 桌面作業系統 Windows 10 , 皆已表明將支援 FIDO2 規格。而 CTAP 則是允許手機或 FIDO 實體安全鑰匙等外部裝置. 政 治 大 外,FIDO2 也為 U2F 的無密碼(Passwordless)延伸版本,其可省略第一階段的密碼驗 立. 可搭配 WebAuthn 使用,如圖 2.12,以作為桌面應用程式或網路服務的身分驗證器。此. ‧. ‧ 國. 學. 證,只用 U2F 外接設備驗證。. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖 2.12 Web Authn + CTAP 流程 圖片來源:FIDO Alliance,FIDO2 Project. [23]. 2.7 秘密分享(Secret Sharing) 在現實生活中,對於重要或具高價值的物品,我們都希望能安全妥善存放,例如存放在 銀行保險箱,且有些保險箱開箱的設計需同時有兩把鑰匙才可打開,以增加保管的安全 性。而密碼學中也有如此概念的做法,即是所謂秘密分享(Secret Sharing)。 秘密分享方法,最早是在 1979 年由 Blakley[27]與 Shamir[28]兩位學者分別提出, Shamir 所提出的方法是依據 Lagrange 多項式插入法,而 Blakley 的方法是線性幾何投影 26. DOI:10.6814/NCCU201900275.

(37) 法。其中由 Shamir 所提出的 Lagrange 多項式插入法是較被廣為討論的,後續亦陸續有 許多相關論文提出許多不同的方法[29]。本研究所使用的秘密分享為 Shamir 所提出的 Lagrange 多項式插入法。 Shamir 的秘密分享 ( 𝑘, 𝑛) 方法構想是將金鑰分解為 n 把小鑰匙(也稱作 shadow), 並交由 𝑛 個人保管,保管小鑰匙的 𝑛 個人之中,只要超過門檻值的任意 𝑘 個人 (𝑘 ≤ 𝑛) 拿出小鑰匙,且拿出小鑰匙的人不可少於 𝑘 − 1 位,即可推導出金鑰,此方法又稱門 檻方法(threshold scheme) 。其計算方式是以隨機產生的𝑘 − 1個數字𝑎𝑖 (𝑖 = 1,2, … , 𝑘 − 1) 建 構 (𝑘 − 1) 次 的 多 項 式 𝑓(𝑥) = 𝑎0 + 𝑎1 𝑥 + 𝑎2 𝑥 2 + ⋯ + 𝑎k−1 𝑥 𝑘−1 , 且 0 < 𝑘 ≤ 𝑛 <. 政 治 大. 𝑃,𝑆<𝑃,其中 𝑆 = 𝑓(0) = 𝑎0 為秘密,𝑝為質數,其多項式表達式為:. 立𝑓(𝑥) = ∑. 𝑘−1 𝑖=1. 𝑎0 + 𝑎𝑖 𝑥 𝑖 𝑚𝑜𝑑 𝑝. ‧ 國. 學. 透過多項式隨機取 𝑛 個點,而只需要任 𝑘 點即可還原秘密,而還原的計算方式,是使 用拉格朗日多項式求解,其拉格朗日插值公式為: 𝑘 𝑖=1. 𝑓(𝑥𝑙 ) ∏. −𝑥𝑣 𝑚𝑜𝑑 𝑝 𝑣=1,𝑣≠𝑙 𝑥𝑙 − 𝑥𝑣 𝑘. ‧. 𝑠 = 𝑓(0) = ∑. sit. y. Nat. al. er. io. 秘密分享方法,可以幫助解決密鑰保管的基本問題,除了確保了秘密的安全性與完. v. n. 整性,又能夠防止金鑰保管過於集中而產生的風險,故對於訊息保存、傳遞與資料保密 的應用中佔有重要角色。. Ch. engchi. i n U. 2.8 PBKDF2 密碼是數位時代基本用於驗證身分的一種方法,讓使用者利用自己的記憶方式和習性產 生可以驗證的個人化代號,但由於每天要接觸的系統數量有增無減,人們為了便於記憶 和管理,便開始使用有邏輯性或是與個人基本資料相關的資訊,作為密碼編寫的方式, 但這無疑是降低了密碼和系統的安全性,再加上硬體效能不斷提升,暴力破解已越趨容 易,因此不得不重視因為時代進步而衍生出的問題。 為了增加密碼破解的難度,有些系統會使用 Hash 的方式來保存及驗證密碼,但單 向的 Hash 值僅是不易一眼讀出,對於暴力破解比對仍稱不上困難。而在 LocalEtherem 27. DOI:10.6814/NCCU201900275.

(38) 帄台中,對於用戶密碼的使用,增加了對用戶密碼做 PBKDF2(Password-Based Key Derivation Function)[30]之方法,由於運算過程加入了 salt 隨機參數,並多次重複運算, 增加了計算工作使得密碼破解變得更加困難。本研究於用戶密鑰管理之設計中,仍維持 此方法以增加密碼破解的難度提高安全性。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. i n U. 圖 2.13 PBKDF2 運作流程. PBKDF2 的函數定義如下述:. engchi. v. 𝐷𝐾 = 𝑃𝐵𝐾𝐷𝐹2(𝑃𝑅𝐹, 𝑃𝑎𝑠𝑠𝑤𝑜𝑟𝑑, 𝑆𝑎𝑙𝑡, 𝑐, 𝑑𝑘𝐿𝑒𝑛) . PRF 是具有輸出長度 hLen 的兩個參數的偽隨機函數. . Password 是要進行密碼延伸的主密碼. . Salt 是隨機參數,稱為加密鹽. . c 指的是所要進行重複運算的迭代次數. . dkLen 是密碼延伸的所頇的長度. . DK 是延伸後的密碼 𝐷𝐾 = 𝑇1 || 𝑇2 || . . . || 𝑇𝑑𝑘𝑙𝑒𝑛/ℎ𝑙𝑒𝑛 𝑇𝑖 = 𝐹(𝑃𝑎𝑠𝑠𝑤𝑜𝑟𝑑, 𝑆𝑎𝑙𝑡, 𝑐, 𝑖) 28. DOI:10.6814/NCCU201900275.

(39) DK 的值是由多個 block 拼接而成,而 block 的數量是 Tdklen/hlen 的值,若 PRF 輸 出的結果比期望得到的長度要短,則要透過拼接多個結果以滿足密鑰的長度。每個 block 則通過則通過函數 F 得到。 F(Password, Salt, c, i) = U1 XOR U2 XOR . . . XOR U𝐶 F 函數中,PRF 會進行 c 次的運算,然後每次把得到的結果與前次進行 xor 運算。 第一次,PRF 會使用 Salt 拼接 32 位元的 i 作為鹽值進行運算,之後的 c-1 次則會使用前 次計算得到的結果作為鹽值,運作流程如圖 2.13。建議的最小迭代次數隨著 CPU 速度 增加,該參數將隨著時間的推移而增加。. 治 政 大 = 𝑃𝑅𝐹(𝑃𝑎𝑠𝑠𝑤𝑜𝑟𝑑, 𝑈 ) 立. 𝑈1 = 𝑃𝑅𝐹(𝑃𝑎𝑠𝑠𝑤𝑜𝑟𝑑, 𝑆𝑎𝑙𝑡 || 𝐼𝑁𝑇_32_𝐵𝐸(𝑖)) 𝑈2 .... 1. ‧. ‧ 國. 學. 𝑈𝐶 = 𝑃𝑅𝐹(𝑃𝑎𝑠𝑠𝑤𝑜𝑟𝑑, 𝑈𝐶 − 1). 2.9 Truffle. y. Nat. Truffle 是一個基於 Solidity 語言的開發框架,本身採用 Javascript 編寫,其支援智能合約. io. sit. 的編譯、部署、與測詴,並且還提供了很多功能,減化去中心化應用(Dapp)的建構與. n. al. er. 管理,也使開發智能合約的流程更加容易,此開發框架亦受到許多開發者的喜愛。. i n U. v. Truffle 和一般的 IDE 不同,它並沒有程式碼編輯環境,但其框架夠方便管理智能合. Ch. engchi. 約執行的環境,並提供便捷開發智能合約(Smart Contract)的 API,可執行在 Windows、 Linux 或 Mac OS 等作業系統上,並使用 NodeJS 語言。Truffle 框架具有以下特性: . 內建的智能合約編譯、連線、釋出和二進位制檔案管理工具。. . 快速開發自動化測詴智能合約指令碼。. . 指令碼化、可拓展的釋出、遷移框架。. . 管理任意公有以及私有的釋出網路(1 或者其他數字,1 是以太坊正式執行網 路,其他數字是本地開發網路環境)。. . 使用 EthPM 和 NPM 進行包管理,使用 ERC190 標準規範。. . 擁有與智能合約能直接通訊的互動式控制台。. . 可配置的構建管道,支援緊密整合。 29. DOI:10.6814/NCCU201900275.

(40) . 外部指令碼執行器,用於在 Truffle 環境中執行指令碼。. 本研究使用 Truffle 框架進行 Dapp 與智能合約的開發及部署,大幅降低開發區塊鏈 智能合約應用的難度,快速架構貣整個開發環境。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 30. DOI:10.6814/NCCU201900275.

(41) 第 3 章 相關研究 3.1 私鑰保護機制 目前多數用戶對於加密貨幣運用、買賣、移轉等當中的風險控管其實未必了解,即便在 許多帄台已有詳細說明,仍因使用帄台所頇具備的知識門檻較高,多數用戶為求方便性, 通常會透過使用者體驗較佳的加密貨幣交易帄台進行註冊開戶及交易,故交易帄台保管. 政 治 大 以中心化的方式,由交易所代管錢包或加密貨幣,僅有在加密貨幣移轉時才將交易寫至 立. 與使用用戶私鑰的方式便格外重要,而仍有很多的加密貨幣交易帄台對於帳戶的管理是. ‧ 國. 學. 區塊鏈,相對之下,LocalEthereum 交易帄台的運作方式,用戶密鑰和錢包的使用擁有 完全的控制權,所有的交易也是透過以太坊區塊鏈來運行,具有較高的安全性。. ‧. LocalEthereum 點對點交易帄台之白皮書[19]中有說明,其透過將用戶登入之密碼,. sit. y. Nat. 進行 PBKDF2 密碼延伸之機制轉換後,作為私鑰加密之鑰匙,以確保私鑰可由用戶自行. io. n. al. er. 保管與使用。以下針對 LocalEthereum 帄台設計之註冊與登入密碼管理流程進行描述:. Ch. engchi. i n U. v. 圖 3.1 LocalEthereum 註冊流程. 31. DOI:10.6814/NCCU201900275.

(42) LocalEthereum 帄台註冊流程如圖 3.1,註冊流程步驟如下方敘述說明: 1.. 用戶輸入帳號、E-Mail Address、密碼、手機號碼註冊資料。. 2.. 驗證帳號及 E-Mail 未被註冊過後,伺服端產生一次性的 TokenNonce 給用戶端。. 3.. 用戶端隨機產生 AccountKeyRoot 作為之後帳戶密鑰。. 4.. 使 用. AccountKeyRoot. 做. SHA256(AccountKeyRoot,“identity”) , 產 生. AccountKeyIdentityPrivate,作為之後身分驗證及簽章使用,並運用 SECP-256k1 橢 圓曲線算法產生對應之 AccountKeyIdentityPublic。 5.. 使用 AccountKeyIdentityPrivate 對 TokenNonce 進行簽章產生 TokenSignature。. 6.. 使用 AccountKeyRoot 做 SHA256(AccountKeyRoot,“end”),產生 AccountKeyEnc, 作為之後加密使用。. 立. 隨機產生 Salt 及大於 50,000 迭代次數 Iterations,將用戶密碼 Passphrase 做 PBKDF2. 學. ‧ 國. 7.. 政 治 大. 密碼延伸,產生 SecretKey。PBKDF2 使用的 Iterations 迭代次數愈大,運算時間愈 久,削弱暴力破解的能力。. ‧. 8.. 隨機產生 Iv 參數並使用 SecretKey 做 AES256-CBC(“AccountKeyRoot”, Iv)加密,產. Nat. sit. er. 用 戶 端 將 AccountKeyIdentityPublic 、 Salt 、 Iterations 、 Iv 、 SecretCiphertext 、. io. 9.. y. 生 SecretCiphertext。. al. TokenSignature 傳送至伺服端。. n. v i n C h 驗證 TokenSignature 伺服端以 AccountKeyIdentityPublic 簽章正確性,完成註冊。 engchi U. 10.. 32. DOI:10.6814/NCCU201900275.

(43) 立. 政 治 大. ‧ 國. 學. 圖 3.2 LocalEthereum 登入流程. LocalEthereum 帄台登入流程如圖 3.2,登入流程步驟如下方敘述說明: 用戶輸入 E-Mail Address、密碼進行登入。. 2.. 伺服端驗證 E-Mail 為已註冊用戶,寄送驗證 E-Mail 至信箱。. 3.. 用戶至 E-Mail 信箱點擊驗證連結。. 4.. 伺服端確認完成第二因子驗證,傳遞 SecretCiphertext、Salt、Iterations、Iv 等資料. er. io. sit. y. Nat. al. n. v i n Ch 用戶端使用 Salt 及 Iterations,將用戶密碼 i U 做 PBKDF2 密碼延伸,產生 e n g c h Passphrase. 給用戶端。 5.. ‧. 1.. SecretKey。 6.. 使用 SecretKey 及 Iv 將 SecretCiphertext 解密,還原 AccountKeyRoot。. 7.. 使 用. AccountKeyRoot. 做. SHA256(AccountKeyRoot,“identity”) , 產 生. AccountKeyIdentityPrivate , 並 運 用 SECP-256k1 橢 圓 曲 線 算 法 產 生 對 應 之 AccountKeyIdentityPublic。 8.. 將 AccountKeyIdentityPublic 傳遞給伺服端。. 9.. 伺服端驗證 AccountKeyIdentityPublic,完成登入。. 33. DOI:10.6814/NCCU201900275.

(44) 在前面的章節有提到,私鑰的保管對加密貨幣的儲存與交易至關重要,台灣 Bitcoin 網站[31]也有特別提醒用戶特有比特幣的風險,其中便包含比特幣遺失,就如同口袋中 的鈔票憑空消失,即使進行私鑰備份,備份越多、遺失的機率或被偷的機率也越多,由 用戶自行保管儲存私鑰、自行備份,雖然風險由用戶自負,卻也無法幫用戶解決私鑰遺 失找不回的問題。 本研究提出運用秘密分享(Secret Sharing)的方法,先將私鑰進行切分,再使用用 戶登入密碼之密碼延伸、透過用戶裝置 FIDO 身份驗證後產生金鑰以及交易帄台金鑰等,. 政 治 大. 作為切分後密碼份額的加密鑰匙,並由其中至少兩份推回原始秘密,以保障密碼遺失或. 立. 遭竊之風險。. ‧ 國. 學 ‧. 3.2 FIDO 標準之原理與延伸. Nat. sit. y. 網路的發達讓許多業務都已朝向數位化與行動化的建設發展,而網站系統的身分驗證也. n. al. er. io. 成了不可忽視的議題,再加上因網路釣魚攻擊騙取使用者登入憑證及帳號的安全問題逐. i n U. v. 年攀升,2018 年相較於前一年的數量就增加了 65%[32],故免密碼的身分識別方案成為. Ch. engchi. 熱議的話題,FIDO 聯盟亦為致力結合公開金鑰、生物辨識等技術,提供便利且安全的 網路身分驗證機制而訂定標準。. 34. DOI:10.6814/NCCU201900275.

(45) 政 治 大 立圖 3.3 FIDO 運作原理示意圖. ‧ 國. 學. FIDO 標準化的運作原理如圖 3.3 示意,其是基於標準公鑰密碼學,在客戶端初始 階段透過線上服務註冊一個公鑰。之後在進行身分認證時,服務端透過向客戶端發貣簽. Nat. n. al. er. io. sit. y. ‧. 名挑戰來要求驗證客戶端擁有私鑰,以完成身分驗證[33]。. Ch. engchi. i n U. v. 圖 3.4 PKI 使用 FIDO 驗證與 FIDO UAF 運作之對照圖. 35. DOI:10.6814/NCCU201900275.

(46) 在研究 UAF 的註冊與驗證過程,於 FIDO 針對亞洲國家整合 FIDO UAF 和 PKI 的 案例研究與建議的白皮書中[34]有描述三類與 PKI 整合的設計,圖 3.4 為合併 PKI 使用 FIDO 驗證與 FIDO UAF 運作之對照圖,針對 FIDO UAF 密鑰對的運作,聯盟較建議將 FIDO 身分驗證的密鑰對與 PKI 金鑰分開使用,先完成 FIDO 註冊後再產生 PKI 的密鑰 對,共存於加密的安全元件中。但在本研究設計之流程中,由於無再另建 PKI 之必要, 主要僅為線上完成身分驗證,並有一組與身分驗證機制相結合的鑰匙,作為用戶端加解 密使用,故較符合白皮書中所述之第三類使用方式,且因無另建 PKI 之需要,亦不會有 與 FIDO 密鑰相衝突之考量。. 立. 政 治 大. 本研究將設計 FIDO 的身分驗證流程結合帄台的身分驗證,於完成 FIDO 註冊流程. ‧ 國. 學. 後,使用 FIDO 私鑰作為加密鑰匙之一,達到整合 FIDO 免密碼身分驗證機制。. ‧. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 36. DOI:10.6814/NCCU201900275.

(47) 第 4 章 研究方法與架構 4.1 設計概要 在 LocalEthereum 交易帄台的設計中,雖已具備隱私保護機制,讓用戶能夠自行保管與 使用私鑰,但若當用戶密碼遺失,由於伺服端基於維持可被信任的帄台,在不儲存用戶 密碼的情況下,仍然無法有其他方式協助用戶還原密碼。本研究以維持此原則下,改良 私鑰保管之方法,除了用戶密碼作為可登入要素之一外,增加結合可搭配生物辨識之機 制,以 FIDO 身分驗證完成後產生之 FIDO 私鑰作為另外一項可登入之要素,除此之外,. 政 治 大. 為避免因攻擊而致使帳戶的使用權被控制在攻擊者手上,故設計上增加第三個要素為加. 立. 密貨幣交易帄台之公鑰,透過秘密分享方法,將區塊鏈帳戶私鑰拆分成三份,並且設定. ‧ 國. 學. 其中兩份可還原私鑰,而三份秘密則分別以前述的三個登入要素為鑰匙進行 AES-256 加密,加密完成後才將密文傳遞至伺服端儲存。. ‧. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖 4.1 帄台運作示意圖. 37. DOI:10.6814/NCCU201900275.

(48) 本研究設計之架構,仍然維持能確保用戶密鑰的隱私性,使用戶之私鑰、密碼及 FIDO 私鑰都僅在用戶端產生及運用,伺服端只儲存參數及公鑰。圖 4.1 為帄台運作示 意圖,由用戶輸入註冊資料後啟動註冊程序,伺服端收到申請 E-Mail 帳號會先確認該 帳號可用性,接著用戶端隨機產生一組私鑰後直接呼叫區塊鏈申請帳戶,再由用戶端啟 動 FIDO 註冊與伺服端溝通,並完成用戶生物辨識驗證。接續的秘密分享(Secret Sharing)、 密碼延伸(PBKDF2)及 AES-256 加密皆由用戶端完成,最後再將密文及參數傳遞至伺 服端儲存,此設計中可確保交易帄台管理者,無法用任何方式自行還原用戶私鑰與擅自 使用。. 立. 4.2 流程設計. 政 治 大. ‧ 國. 學. 流程設計共分為註冊、登入及修改密碼等三個階段,以下針對三個部份進行流程說明, 其中登入流程再區分以用戶密碼登入及以使用 FIDO 機制登入之方式。. ‧. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖 4.2 註冊流程. 38. DOI:10.6814/NCCU201900275.

(49) 註冊流程設計如圖 4.2,步驟說明如下: 1. 用戶輸入帳號、E-Mail Address、密碼、手機號碼等註冊資料。 2. 驗證帳號及 E-Mail 未被註冊過後,伺服端傳遞帄台公鑰及隨機 token 亂數給用戶端。 3. 用戶端隨機產生私鑰 AccountKey 及其對應公鑰 AccountPublic,以私鑰 AccountKey 註冊區塊鏈帳戶並取得地址。 4. 將 AccountKey 做祕密分享 Secret Sharing 將其拆分成三個部份,並設定其中兩份可 以復原。 5. 由用戶端發動 FIDO 身分驗證註冊需求。. 政 治 大 用戶利用 FIDO 身分驗證器進行身分認證,通過認證後即產生一對 FIDO 公私鑰,將 立. 6. FIDO 伺服器收到註冊需求即透過 FIDO 伺服器呼叫 FIDO 客戶端。 7.. 其私鑰儲存在使用者裝置之安全元件中,公鑰回傳至 FIDO 伺服器儲存完成 FIDO 註. ‧ 國. 學. 冊。. 8. 用戶端 DApp 隨機產生 Salt 及大於 50,000 迭代次數 Iterations,將用戶密碼 Passphrase. ‧. Nat. sit. 運算時間愈久,以削弱暴力破解的能力。. y. 做 PBKDF2 密碼延伸,產生 SecretKey。PBKDF2 使用的 Iterations 迭代次數愈大,. er. io. 9. 隨機產生 Iv 參數,並將 AccountKey 做 Secret Sharing 後拆分的三個秘密,使用 FIDO. al. 公鑰、SecretKey 及交易所公鑰分別對三個秘密及 token 亂數進行 AES256-CBC 加密,. n. v i n Ch 產生 SecretCiphertext1、SecretCiphertext2 、SecretCiphertext3。用戶端將 Salt、Iterations、 engchi U Iv、AccountPublic、SecretCiphertext1、SecretCiphertext2、SecretCiphertext3 傳送至伺 服端。. 10. 伺服端以交易所私鑰解密 SecretCiphertext3 驗證 token 亂數,並儲存密文資訊及帳戶 公鑰完成註冊。. 39. DOI:10.6814/NCCU201900275.

參考文獻

相關文件

本專題研究目的旨在活用 kinect 捕捉人體動作,並設法順暢與 設備連動的方法;同時對 HTML5(少許)與 javascript 進行研究,設

CF12203A#2 許惠恒 在亞洲國家多中心隨機研究比較 Joint Asia Diabetes Evaluation (JADE) 的結構照護計劃與 Diabetes Monitoring Database (DIAMOND)

使用者甲與使用者乙約定藉由非對稱加密(asymmetric encryption)進行溝通,假設使用者甲先以

審查整理呈現資料:蒐集到的資料應先審核 是否完整、正確、合理與一致,然後利用敘

面向東南亞,尋求區域合作的價值與意義。如今當我們面對台灣原住民的「民族數學」研究時,尤其

配合小學數學科課程的推行,與參與的學校 協作研究及發展 推動 STEM

分項計畫「海上絲路之探索」之設計與推行,基本上針對本校通

Intel-臺大創新研究中心(Intel-NTU Connected Context Computing Center)成立於2011 年。這是英特爾實驗室( Intel Labs)與世界頂尖大學進行的「英特爾合作研究機構(Intel