編者按:本文來自CSDN,作者:PatrickWoodhead,譯者:Shawn,星球日報經授權轉載。區塊鏈的發展史,實質上是開發者與哈希函數之間長達十年的情史。事實上,如果你理解哈希函數,那么理解區塊鏈的挖礦模式和不可篡改性便是一件輕而易舉的事情!哈希函數的應用很廣泛,比如每當你在網站上輸入密碼時,都會用到哈希函數。雖然哈希函數的用途雖然非常簡單,但是它的性能卻非常強大,在所有與版本控制、安全性和真實性有關的軟件中無處不在。但要明白什么是哈希函數并不容易,雖然解釋的資料很多,但要么過于專業晦澀難懂,要么枯燥無味。因此,在這篇文章中,營長會用一種大白話的方式讓你理解哈希函數的本質,并且通過emoji表情,形象的讓你秒懂哈希函數背后的內含。哈希函數是什么?哈希函數在近年來的技術進步中發揮著非常重要的作用。哈希函數是什么?它的工作原理是什么?我認為我們都應該至少有個基本的了解。網上有很多關于哈希函數的解釋,這些解釋要么晦澀難懂,要么枯燥無味。其實,我們可以把哈希函數想象成一個emoji工廠,工廠接收一行一行的emoji,但它接受的emoji只有獼猴桃、菠蘿、茄子、辣椒、胡蘿卜和玉米。emoji工廠接受和輸出的6種emoji輸入的emoji被工廠處理后,輸出的也只是一行行上述emoji。這個emoji工廠之所以特別,有以下幾個原因。1.工廠返回的emoji要比它接收的emoji少每次,工廠都會從以上6個emoji選項中選出8個emoji。然后,處理這些emoji并返回一行emoji,這些emoji也是從上面的6種emoji中選出來的。重點是,它輸出的emoji比接收的emoji少。Emoji哈希工廠2.對于相同的輸入,工廠總是返回相同的輸出如果你把8個emoji以相同的排列順序送入工廠兩次,那么工廠兩次都將以相同的順序返回3個emoji。也就是說,這個工廠具有確定性。這一點,從上面的動圖中也可以看出,對于相同的輸入,工廠每次都會返回相同的輸出。3.emoji工廠是一條單向通道如果你輸入一行8個emoji,工廠就會立即返回一個輸出。但是,如果我將工廠輸出的3個emoji告訴你,但是不告訴你對應的輸入是什么,你是無法通過分析工廠和輸出來推導出輸入的。實際上,要想找出輸入,最快的方法是試錯。換句話說,要想找出某個輸出對應的輸入,最快的方式就是隨機輸入不同的emoji組,直到找到正確的那組。而且,你甚至可以在工廠里走一走,觀察它的實際運作方式,但你仍然不能根據輸出求解或逆向推導出輸入。這是一個嚴謹的單向工廠。也許你還是有點云里霧里,那么我們不妨以做蛋糕為例,如果我給你制作蛋糕所需的配料和一個詳細的配方,你只要依照配方使用這些配料,馬上就能做出一個蛋糕。假如我讓你用同樣的配料和配方再做一次,你很快就會做出一個相同的蛋糕。蛋糕的烘焙同理。但是,如果我給你的是蛋糕和配方,而配方不包含配料用量,只包含烘培步驟,你就很難計算出這個蛋糕的確切配料用量。這種情況下,用不同的蛋糕配料用量進行試錯或許是最好的方法。這樣,我們再來看一下emoji的屬性。4.只改變輸入中的一個emoji,也會得到完全不同的輸出在做蛋糕這個類比中,通過一次又一次的試錯,你可能會越來越接近正確的配料用量。但是對于emoji表情工廠來說,哪怕只對輸入作出細微的改變,就會得到完全不同的輸出。以上面的動圖為例,如果將輸入中第一個茄子換成胡蘿卜,那么得到的輸出就會是完全不同的3個emoji。這就意味著在給定輸出的情況下,無法通過不斷試錯「逐步逼近」正確的輸入。只能隨機嘗試不同的emoji組合,直到碰巧發現正確的輸入為止。區塊鏈挖礦本質上就是通過計算機不斷地進行試錯來找到輸入,這個輸入經過emoji工廠的處理能夠返回帶有某個特性的輸出,例如,以兩個茄子開頭的輸出。5.要找到某個輸出所對應的兩個輸入,最快的方法就是試錯看到這,你一定會問:等等,如果輸出比輸入短,那么每個輸出肯定會對應多個輸入吧?說的很對。如果你將8個emoji放入工廠,只得到3個emoji,那么一個輸出必定對應多個輸入。但是,emoji工廠的設計太妙了,即使你知道某個輸出對應的輸入之一,找出其余輸入的最快方法仍然是試錯法。換句話說,要找到一個輸出對應的兩個輸入,最快的方法就是試錯,直到發生「碰撞」為止。哈希函數的應用在說哈希函數的實際應用之前,我們先簡單對上面提到的五個哈希函數的屬性做個總結。工廠接收8個emoji并且返回3個emoji;相同的輸入總是返回相同的輸出;輕微改變輸入會導致輸出完全不同;給定一個輸出,試錯是計算對應輸入的最快方法;試錯是找到同一個輸出對應的兩個不同輸入的最快方法。在哈希函數中,這些特性之所以很重,我們不妨通過實際的應用來看看。假設你的密碼由8個emoji組成。每當你在網站輸入密碼時,網站存儲的不是你的密碼,而是你密碼的“哈希值”。這樣一來,如果出現數據泄露或者有人竊取到該網站存儲的個人數據,那么竊取者得到的只是一堆哈希值,而非實際的密碼!由于工廠是單向的,如果竊取者想根據哈希值逆向計算出實際的密碼,唯一的方法就是試錯。由于你的密碼由8個emoji組成,竊取者可能不用花很長時間就可破解你的密碼。但在實際生活中,可選作密碼的字符串集合要大得多,這就意味著可能的輸入也要多得多。而且,實際生活中哈希工廠/函數的輸出的長度也遠遠長于3個字符。因此在現實中,竊取者要花費很多很多年的時間才能根據哈希值算出對應的密碼!雖然這依然存在數據泄露的風險,但并不影響你重新登錄網站,你知道自己的密碼,直接輸入就好。這時,你輸入的密碼會立即由哈希工廠轉化成一個哈希值。網站可以立刻檢查這個哈希值是否與你的賬戶名所對應的哈希值匹配,因為哈希工廠總是返回相同的輸出,然后網站就會允許你登陸。但是密碼長度不一定都是8個emoji那么長,如果我想對一行更長的emoji表情進行哈希計算呢?沒有問題!通過這項由RalphMerkle和IvanDamg?rd兩位密碼學專家提出的簡單技術,任意長度的emoji組合經過「哈希計算」都可以被轉化成僅由3個emoji表情組成的哈希值。Merkle-Damg?rd架構具體怎么實現呢?如果給定一個長度更長的emoji組合,我們可以創建一組工廠來處理它。具體步驟如下:先對這行emoji進行分段,前8個emoji作為第一段,之后每5個emoji為一段來進行分段;將第一段emoji輸入第一個工廠;得到一個由3個emoji組成的輸出,將這個輸出與第二段emoji放在一行一起輸入第二個工廠;不斷重復這個過程,直到這行emoji表情組全部經過工廠處理。將最后一個工廠的輸出返回。這樣我們就把更長的emoji組轉化成3個emoji了!那么,既然現在輸入的長度問題解決了,那么找到輸出相同的兩行輸入會容易得多嗎?你可能直覺上會這么認為。但是,實際上并非如此。就像在一家工廠中找到「一次碰撞」一樣困難。原因在于,假設除了試錯之外,還有某種方法可以找到輸出相同的兩行較長的emoji組合輸入。那么,在某個實行Merkle-Damg?rd架構的工廠中,你輸入兩行不同的emoji組合,這個工廠將返回相同的輸出。但是,這意味著你使用試錯法之外的方法找到了一次碰撞,這就與上文中的假設相矛盾了,因為我們假設每個工廠都具有抗碰撞性!所以,通過增設工廠和數學推理,我們創造了一種方法,可以將任意長度的emoji組合處理成3個emoji。更重要的是,即使某人知道一個由3個emoji組成的輸出,也沒有比試錯法更快的方法可以用來計算出任意長度的對應輸入。鑒于現實世界的哈希計算存在太多組合,試錯可能會花費許多年!有了這個簡單的原理,你就可以將自己的emoji密碼設置成任意長度,其安全性不會受影響。哈希函數與區塊鏈那么哈希函數是怎樣應用在區塊鏈上的呢?想象一下,你有一個文檔,里面描述的可能是關于一筆金融交易。你要向人們證明這個文檔在某個確切的時刻處于某個確切的狀態。你可以將整個文檔放入使用Merkle-Damg?rd架構的哈希工廠中,將輸出結果通過電子郵件發送給100個人。由于這個工廠是單向的,所以郵件接收者無法讀出文檔的原始內容。如果未來有人聲稱你的文檔是假的,或者你篡改了文檔,你就可以證明在你把這個文檔發送給去中心化的社區時,這個文檔處于某個確切的狀態。因為哈希工廠是抗碰撞的,人們自然會相信你不是騙子!了解真正的哈希函數哈希函數的「單向性」和「抗碰撞性」是非常強大的,這兩個特性正在隨著區塊鏈的發展改變整個技術世界。但是emoji工廠/哈希函數內部到底是如何運作呢?這就要牽扯到很多技術細節了。實際上,如果你確信上述特性成立,那么工廠的內部運作就無關緊要了。哈希函數的特性比它們的內部運作更有趣。真正的哈希函數接受的是十六進制字符串。十六進制字符串僅由“0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f”十六個字符組成。哈希函數接受任意長度的輸入,并且返回64個十六進制字符。有時,為了增強安全性,會返回128個十六進制字符。SHA-256是一種普遍使用的哈希函數。
比特幣閃電網絡節點數達13085個:據1ML數據,當前比特幣閃電網絡節點數達13085個,過去30天內增加3.96%;通道數量為36149個,過去30天內持平;網絡容量達到939.34個BTC,過去30天內持平。[2020/6/7]
動態 | 以太坊雷電網絡僅有35個公開通道 Layer2冷啟動或面對困難:近日,在以太坊社區中有人提出知名Layer2項目雷電網絡用戶寥寥的問題。雷電網絡的瀏覽器顯示,目前其公開通道僅有35個。針對此問題的社區討論,以太坊創始人Vitalik認為一切需要規模效應的應用的普及都會遇上這種困難,以太坊基金會已經在和眾多Layer2項目溝通,以促進一種通用性Layer2標準的誕生。(區塊律動BlockBeats)[2019/12/30]
動態 | Bittrex今日再下線5個幣種:Bittrex宣布今日將從BTC交易對中下線5個幣種,它們分別是AUR、BYC、CRB、OMNI、SPR。[2018/10/19]
《5家項目方炮轟火幣》事件中 5個項目方有三個發布公告稱未參與此事:今日,針對自媒體發布的文章《幣圈大地震!5大項目方炮轟火幣砸盤黑幕,0成本操縱幣價!》,火幣李林發朋友圈:“5個項目方居然有兩個不知情,然后‘區塊鏈自媒體’居然就敢直接寫大字報。。。”,并附其中兩大項目方MATRIX和GVE的微信公告截圖:
MATRIX——關于近期“5個項目方”質疑火幣交易數據真實性的報道,MATRIX在此特向大家聲明:MATRIX從未與任何項目聯合參與此活動。網傳MATRIX在五個項目方之列為不實傳言,望大家知悉。
GVE——對于近期網絡上出現的《5家項目方炮轟火幣》等內容,GVE基金會對此毫不知情,也并未曾參與其中的任何行動。Hadax是一個社區化運營交易平臺,GVE基金會與之保持著良好的合作關系。對于冒用GVE項目團隊名義對交易平臺進行惡意誹謗等行為,GVE基金會表示強烈譴責,并保留追究法律責任的權力。
同時,金色財經收到消息,原鏈官方也發布公告稱:原鏈對于社區傳言的《五家》詆毀火幣HADAX一事完全不知情,原鏈不會參與聯合誹謗這樣的行動,希望市場和社區不要被流言所迷惑。
此外,金色財經發現,該文章標題提到的“五家”項目,而文章內容中只提到了4家項目,目前文章中所提的項目已有3家項目對此事發表聲明稱未參與此次行動。關于該事件的詳細進展,請關注金色財經的后續報道。[2018/6/10]
加拿大商人欲將以35個比特幣出售兩居室:來自加拿大多倫多市的商人Derryn Shrosbree之前是華爾街的衍生品交易員,他相信數字貨幣就是未來,且不懼波動。近日,Shrosbree將他的一個擁有兩間臥室的公寓以35個比特幣的標價進行出售,如果成交,這將成為加拿大第一個用數字貨幣進行交易的公寓。他說,人們如果想要一次性在市場上賣掉30-40個比特幣不太容易,但通過房地產來做這件事情很好。[2018/2/27]
譯者|秦曉峰編輯|盧曉明據CNBC2月14日報道,美國銀行巨頭摩根大通在美國銀行業率先推出了自己的加密貨幣——JPMCoin,用于支持客戶的即時支付業務.
1900/1/1 0:00:002019年是51%攻擊之年。這個問題曾經只出現在價值微不足道的加密貨幣身上,而現在,名聲大、市值高的加密貨幣現在也發現自己成為了雙花攻擊的受害者,而交易所首當其沖.
1900/1/1 0:00:00作者Fabric.FengChiefAnalystE-Mail:Fabric.feng@bncapital.one報告概要本文從“稱提”的視角,結合貨幣基礎理論.
1900/1/1 0:00:00編者按:本文來自鏈聞ChainNews,作者:DavidNage,風險投資家,ApeironVentures董事總經理,編譯:詹涓,星球日報經授權發布.
1900/1/1 0:00:00文|遂心出品|Odaily星球日報午后的陽光透過落地窗直射進來,螞蟻金服BaaS平臺技術總監李書博等人站在講臺上等待提問,臺下,近200位準備參賽的區塊鏈從業者躍躍欲試.
1900/1/1 0:00:00譯者|Moni編輯|盧曉明“難度炸彈”是嵌入在以太坊協議中的一段代碼,長久以來一直影響區塊挖掘激勵.
1900/1/1 0:00:00