4月16日,「鏈客Talk」有幸邀請到優盾首席架構師Alex Yang,和大家分享其獨家的優盾錢包開發經驗,學習其從業多年的錢包開發核心技能。
主講嘉賓Alex Yang
以下是問答內容:
主持人:什麼是區塊鏈錢包?
AlexYang :區塊鏈錢包是指由區塊鏈技術開發的虛擬數字貨幣產品的管理工具,具備貨幣可進行交易的特性——收款和付款。收款即可生成符合該鏈規則的有效地址,其他地址可向該地址進行轉帳;付款即可將地址中的資金轉到其他地址,這就必須要求有付款地址的私鑰,有地址的私鑰就可完全操控該地址的資金。
主持人:區塊鏈錢包的發展狀況怎麼樣?
AlexYang :區塊鏈錢包的發展大致分為幾個階段:
萌芽階段:在當時比特幣作為區塊鏈技術開發的第一款產品,僅作為一種新型技術被進行研究和學習,流通也僅限於技術人員通過命令性執行指令來進行;
初期階段:為了降低使用門檻,比特幣錢包誕生。安裝軟體後只需要同步數據,即可通過圖形化操作界面進行生成地址和發送交易;
發展階段:初期階段,雖然比特幣錢包解決了使用門檻問題,但受限於數據同步,而同步數據往往會面臨磁碟空間太大以及網絡連接異常的壓力,因此依然難以被廣泛使用。此時有團隊開始研究並開發出了輕錢包,這不僅解決了數據同步問題、支持創建多個比特幣錢包,每個錢包還支持生成多個地址進行使用;
百花齊放階段:在輕錢包問世後,比特幣進入了大眾視野。由於比特幣錢包的開源,基於區塊鏈技術開發的公鏈也越來越多,如以太坊、柚子、波場、瑞波等。為增強各自的流通性,每種公鏈都有其對應的錢包,但對使用者來說必須安裝和管理各種各樣的錢包,反而造成了不少的困擾。在這種情形下支持多鏈的錢包也就誕生了,這個階段稱之為百花齊放階段;
應用階段:在各公鏈被廣泛認可後,大家就關心如何應用、體現它的價值。目前公鏈的價值在於數字貨幣,而數字貨幣最大應用場景就是交易所了,交易所運營中最重要的就是數字貨幣資產,如何保障它的正常運轉成為了運營首先要解決的問題,在產品和技術們不斷琢磨下針對交易所的區塊鏈錢包逐漸形成了標準和規範。
主持人:如何去開發區塊鏈錢包?
AlexYang :目前個人錢包技術已趨於成熟,在網上也都能找到很多開原始碼,此處就不多說,我們來著重講下交易所錢包的開發。
交易所錢包要解決的就是交易所用戶充提幣問題。對於運營一個交易所來說,核心是安全問題,一是交易安全;二是錢包安全。如果交易出現差錯,技術人員還可以通過例如數據回滾、髒數據處理等方法處理;由於區塊鏈技術的去中心化的特性,錢包資產一旦出現問題,資產將不可找回。
第一代交易所錢包,我們是直接通過rpc調用方式來進行處理錢包的充提,首先需要準備伺服器部署btc、eth等節點,等同步完成就通過調用rpc接口來生成地址提供給交易所用戶;接著開發一個服務用來處理交易所地址的充值數據,再通知給交易所;用戶提幣的話,通過調用開發的程序,在伺服器上獲取地址的私鑰,進行構建籤名然後廣播交易,這就是熱錢包概念。
這種熱錢包的實現方式,需要我們將私鑰信息存放到伺服器上,或者經過網絡的傳輸才能實現。事實證明,這種方式無法逃脫黑客的攻擊或內鬼暗箱操作。
基於之前的實現方式和存在的問題,我們開始了第二代交易所錢包的研究和開發。在這個版本中我們著重將考慮資金安全和用戶操作體驗,再經過多個版本迭代後逐漸形成了我們現在的優盾企業錢包。
主持人:在開發優盾錢包中遇到了哪些困難?
AlexYang :
人才問題
在確認產品定位和技術選型後,隨之而來實現階段,我們遇到了最大困難——缺少專業人才。當時,想找到合適的人員真是太難了,最後我們只能買教材、上網查資料,自己進行研究。
技術問題
一是區塊鏈底層實現。為保證安全,所有涉及私鑰的地方都必須在客戶端本地完成,不能觸網。因此在各種鏈的底層研究、融合以及跨平臺支持這塊耗時很久。
二是數據處理這塊,我們知道區塊鏈上的數據是龐大的,而且還需要支持各種主流公鏈。在如何處理數據的完整性和及時性方面也困擾了我們很長一段時間。
財力問題
在解決技術上的問題後,又不得不面臨一個非常現實問題——資金問題。在支撐開發和運行這樣一整套系統上,我們需要用到各方面的技術人員和大量的伺服器。這對我們當時毫無收益來源的研究團隊來說是一個非常大的壓力,我們是恨不得一個人當兩個用。
維護問題
在我們0.1版本上線初期,就已經有不少客戶在進行試用了。當時由於在很多方面處理的不太成熟,導致問題不斷,我們運維和核心開發人員晚上都支持到好晚才敢睡。
主持人:優盾錢包實現原理是什麼?
AlexYang :從結果來看,我們支持在客戶端創建錢包並支持多幣種,同時每個幣種都可以有多個地址,支持客戶端生成地址或通過調用API進行生成。而我們只需要保管好助記詞即可,通過助記詞導入錢包後就能使用錢包進行發送交易。
要實現這些:
首先:我們要在線上不同地區伺服器上部署多套各種公鏈的全節點,防止出現伺服器異常、網絡異常、節點升級等突發狀況;
其次:通過我們開發的UBDA系統,用來對各鏈的區塊數據、交易數據進行搜集並且存儲;
同時我們開發一套UKMA系統用來存儲通過我們錢包生成的地址;
然後通過我們的BBCS系統,對區塊鏈上的數據進行分析並轉換,通過UKMA系統進行過濾出我們需要數據;
在得到我們需要的數據後,我們在將對應數據發往對應的網關伺服器(BGS系統),各網關伺服器對數據進行保存後再將消息推送到客戶端,同時將消息通知到交易所。
對於發送交易,我們是在客戶端進行操作,在客戶端完成交易的構建和籤名,將籤名後的交易串發送到對應網關伺服器,再通過網關發送到BBCS系統,最後在BBCS系統將交易廣播到對應公鏈節點上,由此完成整個充提幣的交易流程。
主持人:優盾錢包為什麼能保證用戶的資金安全?
AlexYang :主要體現在以下幾個方面
底層技術實現
錢包助記詞用戶自持、保證私鑰永不觸網、通過授權碼進行授權使用、交易離線籤名然後在線進行廣播交易等技術手段保證私鑰的安全。
管理
在管理上我們實現多維度進行管理,包含多錢包、多員工、多資產、多權限等。
多錢包:我們支持創建多個錢包,每個錢包可以管理不同資產,這樣可以對資產進行分散管理,同時也便於帳單查詢和對帳;
多員工:我們支持創建多個員工帳號,同時配合多權限,安排指定人員做對應的事,同時支持審核、覆核、多籤等流程。
風控
(1)新設備需手機驗證碼進行登錄;
(2)可限制固定電腦使用;
(3)可限制固定IP使用;
(4)非授權錢包無法導入使用;
接口
(1)採用https安全協議;
(2)請求接口白名單安全限制;
(3)支持多通道調用,一個線路出問題,可立即進行切換其他線路,保證系統正常運行;
(4)數據保存完整性,保證經過錢包的交易數據能夠追源朔根。
主持人:優盾錢包如何支持新鏈?
AlexYang :理論上說只要符合接入安全標準的鏈我們都支持進行接入,主要體現在以下幾點:
(1)代碼全部或部分開源,要能支持地址及公私鑰對生成、支持離線籤名;
(2)提供安全的廣播交易接口;
(3)提供查詢區塊及交易信息查詢接口。
主持人:優盾錢包受眾群體有哪些?
AlexYang :
1)已運營團隊:對當前使用的錢包管理方案不放心的運營團隊;
2)即將運營團隊:需要接入使用或管理數字資產的運營團隊;
3)開發者:對區塊鏈應用感興趣,但礙於底層技術和研究成本的限制;
4)開發團隊:用於解決項目技術上或資產安全管理上的難題。
主持人:使用優盾錢包能給企業帶來什麼好處?
AlexYang:目前我們優盾錢包的客戶註冊量已超過400+,正常運營客戶達到100+,上鏈交易日均有幾百萬USDT量。我們幫助企業節約運營成本,不需要準備多臺伺服器進行部署節點、不需要大量技術人員和運維人員;同時大大縮短上線周期,從接入到上線使用短則1天,多則一周。錢包安全和便捷的操作真正解決管理者的後顧之憂,不再擔憂資金安全問題,專注於市場和運營。
主持人:來發展方向是什麼?
AlexYang:
(1)用戶體驗:在保證安全使用前提下增強產品的用戶體驗;
(2)安全:在當前基礎上增加硬體支持,這塊我們已經開始研究,相信很快就能面世;
(3)風控:我們會針對一些異常交易或者大額交易進行監控、提醒及確認等操作,保證交易安全;
(4)應用:擴展更加豐富的區塊鏈應用。
最終我們目標是要做一個全球性的虛擬數字貨幣「銀行管家」。
本文來源: 金色財經 / 作者:鏈客Talk