寫在前面:丟失錢包密碼或私鑰是加密貨幣用戶經常會遇到的問題,那能否有方法可在最小化信任的同時,恢復丟失的密鑰呢?這正是以太坊聯合創始人vitalik等人正在探索的一個方向,而他們已編寫了一個新的
EIP,并將其命名為秘密多重簽名恢復方案。
昨日,知名黃金愛好者兼加密貨幣懷疑者PeterSchiff在Twitter上聲稱自己的錢包丟失了密碼,因此無法訪問自己的比特幣。
Schiff接著補充說:
“所以現在我的比特幣在本質上毫無價值,它也沒有市場價值。我知道擁有比特幣是個壞主意,但我從來沒有意識到它是如此糟糕!”
Schiff在推特上公布自己的損失后,加密貨幣社區很快展開了討論,例如MorganCreekDigital聯合創始人兼合伙人AnthonyPompliano就提問他是否自己忘記了密碼,而希夫對此的回答卻是:“是我的錢包忘記了密碼。”
看不下去的Pompliano只好耐心解釋道:
“軟件只是執行人類發出的命令,它不能‘忘記’任何事情,給我發郵件吧,我會盡力幫你找回丟失的比特幣。”
不過根據Schiff的回答,他的比特幣基本已無望找回了,他提到說:
“是EricVoorhees幫我準備的錢包,即便是他也覺得我無能為力。如果你有任何想法,歡迎嘗試。”
看到這里,讀者可能覺得這是一個非常悲傷的故事,一位加密貨幣懷疑者好不容易嘗試了比特幣,結果卻因為自己忘記了密碼而丟失了它們。而倘若他在多處備份好私鑰,那么即使他忘記了錢包密碼,也可以通過私鑰訪問自己的錢包。
當然,也有人會認為這是一個深刻的教訓,它提醒我們要開發相關的技術,為類似的人群提供安全保障。
比如以太坊聯合創始人vitalik就評論稱:
Edge錢包披露一安全漏洞,約2000個私鑰存在風險:金色財經報道,Edge錢包表示在其應用中發現了一個安全漏洞,此漏洞通過將私鑰發送到Edge基礎設施而泄露了大約2000個私鑰,這相當于在Edge平臺上創建的大約總密鑰的0.01%。Edge正在繼續調查,包括深度設備取證,以確定惡意軟件是否可以訪問磁盤上未加密的私鑰。
Edge表示,一旦用戶執行以下兩個操作就會泄露私鑰,在底部導航欄的“買入”或“賣出”選項卡中輸入以下可用選項之一:Bity、Wyre、Bitrefill、Ionia、Xanpool、LibertyX、Bitaccess、Bits of Gold、Banxa;使用Edge中的“上傳日志”功能,將日志發送到Edge服務器。如果上傳是在進入其中一個買/賣選項之后完成的,日志將包含私鑰。[2023/2/24 12:26:35]
“對于人們用‘加密貨幣就是加密貨幣,你的工作就是要非常小心地在三個地方寫下備份種子’來回答這個問題,我感到失望。我們可以,也應該創造更好的錢包技術,使得安全變得更容易實現。
例如,這里有一個社交恢復提案:https://t.co/tuSbHhXKgd?amp=1”
那V神所說的社交恢復提案具體是指什么呢?
下面我們就來簡單了解一下吧。
EIP2429:秘密多重簽名恢復
作者:RicardoGuilhermeSchmidt、MiguelMota、VitalikButerin、naxe
狀態:草案
類別:ERC
創建日期:2019-12-07
要求:EIP
摘要
一般來說,加密貨幣的一個糟糕體驗是私鑰丟失或暴露,這可能導致不可逆轉的情況。
社交恢復被視為賬戶合約去中心化恢復的一種選擇,然而社交恢復的使用,帶來了人的因素,而人的因素通常是安全系統脆弱性的主要原因。
安全團隊:NeorderDao項目的N3DR代幣合約的owner地址疑似私鑰泄露:5月11日消息,據成都鏈安“鏈必應-區塊鏈安全態勢感知平臺”安全輿情監控數據顯示,NeorderDao項目的N3DR代幣合約的owner地址疑似私鑰泄露,累計被盜金額930個BNB。經成都鏈安技術團隊分析,本次攻擊原因是攻擊者利用被盜的owner地址,給惡意地址添加Operator權限,再通過添加Operator權限的地址調用N3DR代幣合約中的emergencilyTransfer函數,把0x1bBbbB0d79932047Fd29CdBB401B29b13306E090地址中的N3DR代幣轉移到攻擊者地址,最后攻擊者把獲取到的N3DR代幣通過pair交易兌換出930個BNB。
攻擊交易:0xf039a71f2325560723a5bb956b3950de7bbc1646fb9cfb162983d21a89994113
攻擊者地址:0xcd5bae758f0e576c49a1dd34f263090f76e763df
攻擊者合約:0xa5be5a1570172e8b48783ad4e0bb2669491f35ce[2022/5/11 3:06:37]
社交恢復的主要風險是:
合謀:如果一些用戶知道他們是某個恢復的一部分,他們可能會對恢復攻擊的執行感興趣;
目標攻擊:外部代理可能了解恢復的所有者,并瞄準執行恢復攻擊所需最薄弱的點;
一般暴露:攻擊者如果設法感染大型用戶基礎環境依賴項,并獲得對多個身份的訪問權限,也可能通過恢復對未受影響的用戶產生副作用;
模擬攻擊:針對性攻擊可以了解用戶的情況,并將該用戶模擬到其社交對等方以執行恢復攻擊。這變得更加令人關注,因為AI研究能夠“深度偽造”其他人的聲音和面部動作。
盡管還沒有完美的解決方案來解決所有這些問題,但我們的目標是實現“信任最小化”控制者合約,并為用戶可能使用的不同錢包啟用互操作性。
據悉,該標準提出了一種定義存儲在Melkle樹中的地址列表方法,這些地址連同它們的權重和用戶的個人秘密,將組成一個秘密集,而該秘密集可以在不直接危及用戶的情況下公開,因為它仍然需要對地址列表中的總閾值進行人工驗證。
安全公司:EOS用戶參與DMD挖礦被盜10萬美元,或因私鑰失竊所致:針對Diamond.finance用戶被盜10萬USDT的事件,PeckShield安全人員跟進分析認為,該用戶被盜原因和eosio.code權限無關,疑似私鑰被盜。EOS公鏈上存在大量用戶敏感權限被操控的情況,安全意識較為薄弱的用戶在參與合約交互時,向一些合約平臺開放了權限,使得平臺可在用戶不知情的情況轉移用戶資產。截至目前,EOS公鏈上賬戶權限受控制的賬戶高達3,269個,涉及資產18,600個EOS。PeckShield在此預警,用戶參與流動性挖礦應避免使用曾經開放過Owner/Active授權的賬戶,避免資產遭受不必要的損失。[2020/9/7]
該秘密集可以保存,例如存儲在web2云存儲當中,而不會嚴重影響安全性,這對于一些不信任自己,但也不希望信任某些特定實體的用戶而言是非常有用的。
用戶秘密永遠不會在鏈中顯示,顯示的只是一個nonce哈希,每次恢復時它都會增加。恢復設置獲取此哈希秘密nonce的哈希值的哈希值,這種雙哈希方法被用于數學證明請求恢復的人知道該秘密,而不會泄露它。
根據提案,用戶可通過提供秘密以及加權地址列表來配置恢復。
user_secret_data可以是用戶可猜測的半私有信息。而user_secret_type是可選的隨機大整數,并將其與address_list一起導出為private_hash。
地址列表的總權重必須大于閾值,而閾值是一個常數:THRESHOLD=100*10^18。
而標準定義了生成可預測用戶秘密的幾種方法。
當生物識別技術可用時,應該使用它們,這是最簡單的方法。
動態 | MyDashWallet在線錢包現已關閉網站,惡意腳本中收集私鑰信息的服務器也悄然關閉:7月10日,繼降維安全實驗室曝光MyDashWallet用戶資產被竊事件后,該在線錢包迫于各方輿論壓力現已關閉網站,巧合的是,惡意腳本中用于收集私鑰信息的服務器也已悄然關閉。據悉,受害者之前在DASH幣官方電報群反饋相關問題后,不僅未得到正面回應,反而被管理員踢出群組,同時官方電報群也被設為無法加入的私密群。降維安全實驗室再次提醒使用過該錢包的用戶請及時將資產轉移到新賬戶,以避免損失。[2019/7/12]
而當沒有生物識別技術時,一組通常只有用戶知道的諸多問題的標準表單,可被用于生成用戶的秘密數據。所有可選的默認字段有:FullName、BirthDate、MotherName、MotherBirthdate、Nationality、FirstLove'sName、FirstPet'sName、ChildhoodNickname。
而密碼派生方法,則類似于詳細表單方法,但它只要求用戶輸入一些內容:FullName和Password。
地址列表
用戶將定義監護人賬戶列表,該列表通過用戶的聯系人列表進行填充。導入選項和輸入一個地址應該是很方便的,如圖所示:
選擇好監護人后,系統將提示用戶定義每個監護人的權重:
這些地址存儲在一個標準的merkle樹當中,但是每個子葉必須與hash_to_peer進行哈希運算。
merkle_root被哈希為一個標準merkle樹,它由keccak256(bytes32(hash_to_peer),uint256(weight),boolean(is_ens),bytes32(ethereum_address))格式的address_list子葉組成。
聲音 | Kraken首席執行官:加密貨幣私鑰云存儲雖然方便 但不足以經受專業人士的破解:Kraken首席執行官Jesse Powell針對“Coinbase 錢包用戶現在可以將加密貨幣私鑰進行云存儲”這一消息表示:“我不喜歡對用戶進行安全性差的培訓。云存儲雖然方便,但經常受到損害,尤其是在所有SIM端口。99%的人在無意中使用了這個密碼,但他們的密碼不足以經受專業人士的破解。[2019/2/13]
方案支持了ENS域名,當監護人擁有一個ENS域名時,應該使用ENS域名。根據EIP-137,如果使用了ENS域名,則is_ens必須為“true”。
列表中的地址可以是賬戶合約,如果是賬戶合約,則可以直接調用審批功能,也可以提供EIP-1271簽名。而如果是外部擁有帳戶,則應用ecrecover邏輯,但它們也可以直接調用approve函數。
weight設置此地址值相對于THRESHOLD常量的批準程度。
用戶秘密數據哈希
對于多個用戶而言,recovery_contract可能是相同的,這是用戶正在使用的共享秘密多重簽名合約地址;
user_secret_data是用戶數據的純格式字節數據,它從不暴露,也不會被保存。當private_hash是未知時,應向用戶進行請求;
private_hash是keccak256(user_secret_data),它從不暴露,可以用秘密集導出。這可以在所有恢復中重復使用;
merkle_root是通過對普通merkle樹進行哈希運算得到的,它在執行時會被揭露;
weight_multipler定義要達到THRESHOLD需要乘以多少個單獨權重;
hash_to_execute是keccak256(private_hash,address(recovery_contract),recovery_contract.nonce(user_address)),它僅在執行時公開,每次恢復都是唯一的,也被稱為“顯示哈希”。Nonce和恢復合約地址被用于允許重用private_hash;
hash_to_peer是keccak256,它在恢復授權請求時會公開,其被用于通過揭露public_hash種子來證明用戶知道hash_to_execute和merkle_root,這也被稱為“部分泄漏哈希”;
public_hash是keccak256,它自配置后就是公開的,只能使用一次,這也用于防止執行的重放。執行成功后,必須使用setup(bytes32,uint256)進行重配置;
恢復秘密集URL
恢復所需的所有信息都將存儲在url類型標準中:
recovery=erc831_partaccount_contract"/"recovery_contract"/"private_hash|secret_type"/"address_list/weight_multiplererc831_part="ethereum:recovery-"account_contract=ADDRESSchain_id=1*DIGITrecovery_contract=ADDRESSprivate_hash="0x"64*HEXDIGsecret_type=UINTaddress_list=ethereum_address*(";"ethereum_address)weight_multipler=UINTethereum_address=ADDRESS/ENS_NAME"*"weightweight=UINTADDRESS="0x"40*HEXDIGparameters=parameter*("&"parameter)parameter=key"="valuekey=STRINGvalue=STRINGnotes=STRING
account_contract是指要進行恢復的賬戶合約,可以使用任何賬戶合約,因為恢復合約可以執行到任何接口或地址;
chain_id為所有地址定義了以太坊鏈,如果不存在,則預設為1;
recovery_contract執行恢復合約的邏輯,必須支持此文檔中指定的ABI;
secret_type選擇生成user_secret_data時使用的標準,在未給定private_hash時是必需的;
private_hash是user_secret_data的哈希,如果不存在,恢復將要求使用secret_type所選的標準來獲取user_secret_data;
weight_multipler是每個weight將乘以的值,以達到THRESHOLD常數;
address_list是具有個人權重的地址列表,最好是另一個帳戶合約,表明它們可用于恢復請求,但任何地址都可以幫助恢復。可以使用ENS域名,并在恢復過程中進行解析。總權重應高于THRESHOLD常數;
weight默認為Math.ceil(THRESHOLD/address_list.length),由用戶設置自定義;
parameters可能需要特定的secret_type;
如果需要的話,notes可用于密碼提示;
恢復程序
當需要恢復時,用戶需要將其
RecoverySecretSetURL加載到支持此標準的電子錢包中。根據配置的不同,當
private_hash不可用時,必須從對用戶構成挑戰的
user_secret_data處生成。
加載有效的密鑰集時,它將提示哪些用戶請求幫助。一些錢包或許能自動發送請求,而另一些錢包則允許用戶共享這個HelpRecoverRequestURL。
該EIP鼓勵盡可能使用預簽名的消息EIP-191,這一點很重要,因為gas成本是一個常見的障礙。如果監護人選擇的地址是帳戶合約,則必須是EIP-1271才能使用預簽名信息。建議的正常順序如下:
在特殊情況下,如果賬戶合約無法簽署信息,或者用戶的錢包無法按照這個EIP上指定的格式簽署信息,則也可以通過使用msg.sender的方法執行常規操作。
在這種情況下,監護人將不得不支付一小部分gas費用。
理論基礎
user_secret_data從不公開,在用keccak256算法進行哈希運算一次后,它就成為從不公開的private_hash。理論上,應該使用生物特征技術,因為用戶不太可能丟失他們的生物特征。而生物特征通常是不安全的,因為它們并不是真正的秘密,任何高分辨率相機實際上都可以讀取大多數生物特征,而且這些信息通常也為政府所知。
當生物特征不可用時,用戶數據表單仍然提供相當好的安全性,因為合約中存儲的哈希是離源數據非常遠的加鹽哈希,即使只有名字被用作user_secret_data,也是很難發現的。這些數據越不可預測,就越能抵御目標攻擊,而目標攻擊仍需要發現用戶列表并接收足夠的授權。
在成功執行之后,需要重新配置以實現安全性保障。在經歷一次恢復后,恢復合約必須禁用自身,并等待新的配置。
可能存在的攻擊
需要注意的是,支持此EIP的錢包,應考慮用戶可能被請求幫助恢復其他賬戶,而請求可能來自任何知道secret_set的人,包括合法擁有者或以某種方式獲取secret_set的攻擊者。
因此:
錢包必須詢問用戶請求的合法性,詢問請求是否是通過個人驗證后進行的;
用戶必須知道,他們對自己的鏈上操作負有責任,并且必須驗證恢復請求的合法性;
視頻通話可能是通過AI偽造的,但攻擊者需要圖像和語音樣本,例如互聯網上的公共演講內容;
為名人進行恢復的用戶,永遠不要信任視頻通話,應該去嘗試直接聯系周圍的人,以檢查請求的合法性;
簡評:這種方案正是針對PeterSchiff這樣容易忘記錢包密碼或私鑰的群體而設計的,但其也存在著安全隱患,但對于加密貨幣的社會可擴展性而言是非常重要的,因為多數人會是和PeterSchiff類似的。
Tags:RESASHCRESECSalad VenturesATMCASH價格United Credit ChainH2O Securities
編者注:原標題為《被低估的以太坊:價值投資者的寶藏》 全文要點: 在區塊鏈行業內,馬太效應依然適用,智能合約平臺由于功能性和應用領域的同質化,將會進一步促進「強者恒強」的競爭趨勢.
1900/1/1 0:00:00來源|bitcoinmagazine 翻譯|火火醬 出品|區塊鏈大本營 當前,各大加密貨幣交易所不斷加強自身安全以抵御網絡攻擊,而黑客們也在以同樣的方式改進其技術——根據數據顯示.
1900/1/1 0:00:00來源:中外管理雜志,原題《“Hi,您有一張區塊鏈電子發票,請查收!”》 作者:朱冬 坐標,深圳南山科技園。 互聯網企業員工鄭超,每月可從公司財務處領取500元交通補貼.
1900/1/1 0:00:00加文·安德森是最早的比特幣開發者之一,也是與比特幣的發明者中本聰通過電子郵件通信的極少數人之一,現在似乎主要關注以太坊的生態系統。Gavin曾是中本聰消失前指定的比特幣協議維護接班人.
1900/1/1 0:00:00新華社記者吳雨 來源:新華網 貿易金融是橫跨多個主體、多個環節的復雜場景,涉及行業面廣、交易鏈條長,需要彼此之間互信共享.
1900/1/1 0:00:001月18日,CFTC公布了最新一期的CME比特幣期貨周報,統計區間內比特幣出現了一波快速回調,不過并沒有破壞前段時間的震蕩上漲勢頭,這一階段中市場基本保持在年初的多頭主導狀況之中.
1900/1/1 0:00:00