以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads
首頁 > 非小號 > Info

國外大牛教你如何用Python開發一個簡單的區塊鏈數據結構_區塊鏈

Author:

Time:1900/1/1 0:00:00

根據IEEE此前的一項調查,

Python已成為最受開發者歡迎的語言之一。由于其對于技術小白天然友好的特性,以及不斷更新的新功能。Python越來越受到國內外開發者的喜愛。越來越多被用于獨立、大型項目的開發開始使用Python。

20世紀90年代初荷蘭人GuidovanRossum為了打發圣誕節的無趣,決心開發一個新的腳本解釋程序,作為ABC語言的一種繼承。

之所以選中Python作為該編程語言的名字,是取自英國20世紀70年代首播的電視喜劇《蒙提.派森的飛行馬戲團》。

對于區塊鏈開發者來說,Python也是十分實用的語言之一。今天,我們就Python開發一個簡單的區塊鏈數據結構。

在這篇文章中,一方面我們會對區塊鏈數據結構的基本概念進行講解,例如哈希的工作原理,另一方面,也會以實際代碼來構建一個區塊鏈基本的數據結構,讓你對區塊鏈和Python的基礎有個基本的理解。

說不多說,下面就進入正題!

BMEX合約研究院:國外疫情愈發嚴重,牛市在短時間內不會結束:BMEX合約研究院研究員Kevin表示,當前全球新冠肺炎確診新增病例數量已連續8周上升,上周新增約526萬例,為疫情發生以來最高。而全球資產牛市的最大推動因素是因為貨幣的超發,而貨幣超發的原因又是因為疫情在全球的擴散。現如今全球疫情形勢依然非常嚴峻,為了刺激經濟保持復蘇狀態,繼續寬松的貨幣還是大趨勢,由此可以推斷具有抗通脹屬性的各類資產價格牛市很難在短時間結束。[2021/4/22 20:47:17]

從哈希函數說起

在區塊鏈中,數據結構是十分重要的基本組成部分,尤其是比特幣。雖然單一的數據結構無法構建成加密數字貨幣,但理解數據結構對于理解區塊鏈的基本原理是非常有益處的。

但在講數字結構之前,我們還是先從哈希講起,以比特幣的SHA-256哈希函數為例,講講如何利用Python去實現哈希的運算。

哈希函數,又稱散列算法,是一種從任何一種數據中創建小的數字“指紋”的方法。散列函數把消息或數據壓縮成摘要,使得數據量變小,將數據的格式固定下來。該函數將數據打亂混合,重新創建一個叫做散列值的指紋。散列值通常用一個短的隨機字母和數字組成的字符串來代表。

法國外貿銀行分析師:特斯拉很可能會為其他大公司樹立榜樣:法國外貿銀行研究分析師Nordine Naam表示,特斯拉很可能會為其他大公司樹立榜樣。特斯拉今日宣布投資了15億美元的比特幣,并預計將在不久后接受比特幣支付,這對數字資產來說是個好消息。它證實了重要經濟參與者對比特幣的興趣和信心日益增長。這與微策略 (MicroStrategy)、PayPal等公司接受加密貨幣以來觀察到的趨勢一致。因此,消息有助于市場的成熟,即使這仍然非常不穩定,今天加密貨幣的上漲很可能是投機資金利用新聞帶來的結果。但無論如何,特斯拉很可能會為其他大公司樹立榜樣,這可能會在未來使比特幣走強。(金十)[2021/2/8 19:15:25]

對于任意長度的消息,SHA256都會產生一個256bit長的哈希值,稱作消息摘要。

這個摘要相當于是個長度為32個字節的數組,通常用一個長度為64的十六進制字符串來表示。

來看一個例子:

這句話,經過哈希函數SHA256后得到的哈希值為:

金色相對論 | Layla Dong:和國外高校相比中國高校的區塊鏈教育起步相對晚一些主要還是行業人才的不足:在今日的金色相對論中,針對“國內外高校區塊鏈教育的異同有哪些?我們應該從中吸取哪些經驗完善區塊鏈人才培養”的問題,Blockshine博聚科技的創始人兼CEO Layla Dong表示,我覺得沒有參與過行業發展,不足以教好學生,這個部分還蠻有趣的,我們觀察有這樣幾個階段。第一階段屬于“了解”階段,基本的課程設立在商學院和計算機學院兩個學院。都是以初期的了解為主。第二階段是著重技術,很多課程圍繞開發。比如說加州大學伯克利分校在16年就推出了區塊鏈本科教育,目前為學生提供了兩門選課:區塊鏈基礎和區塊鏈開發者課程。第三階段是更加“發散”的技術,經濟,社會學,人類學的綜合學課程。和國外高校相比,中國高校的區塊鏈教育起步相對晚一些我覺得主要還是行業人才的不足,還有就是政策的引導。特別是我們的高校里的內容,基本是學生入學之前就設計好的。及時開展了課程,課程相對也已基礎知識為主。從教育模式和內容上看,國內外高校目前都傾向于成立實驗室+課程教育的模式,涉及范圍也較廣,包括區塊鏈技術知識,金融應用,物聯網,金融應用,密碼學等多個領域。[2019/9/12]

聲音 | 國家外匯管理局官員:應將Libra視作外幣 納入中國外匯管理體框架:據澎湃新聞消息,昨日在第三屆中國金融四十人伊春論壇上,國家外匯管理局總會計師孫天琦認為,應將Libra視作外幣,必須納入中國外匯管理整體框架,否則建議禁止使用Libra。另外,除國家另有規定極少數極少數情況外,中國境內必須以人民幣計價結算。包括數字環境下的境內交易的計價結算。絕不能出現在數字環境下境內交易的Libra化或者是美元化。[2019/8/11]

說回SHA-256,說白了,它就是一個哈希函數。那么我們如何用Python來實現呢?下面代碼展示了用Python實現「helloworld」的過程:

看到這里你可能會問,SHA-256中的「256」究竟是什么意思?哈希算法是一個將任意文本轉換為一個256位隨機二進制字符串的過程。在上面的例子中,「helloworld」是一個11位的字符,經過哈希運算以后,變成了這樣的一串字符:

b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

同樣,即使我的文本長度不是11位,生成的字符數也是一樣的。例如:

現場 | 福布斯中國CEO:區塊鏈技術的發展及應用,國外的成熟度遠高于國內:金色財經現場報道,在今日舉辦的2018全球媒體峰會上,福布斯中國CEO李思衛發表題為《媒體如何助力區塊鏈行業》的演講,他表示,區塊鏈是第五次改革,區塊鏈技術的發展及應用,國外的成熟度遠高于國內 。[2018/7/19]

在上面例子中,「Iamthebestpresident.Ever.」,哈希運算之后的字符串一樣為64位。就算輸入的文本是100位,哈希運算后的字符位數也是64位。

之所以這樣,是因為字符是16進制的,如果我們把這樣的字符串轉換為2進制,那么就會得到一個256位的2進制字符串。如下圖所示:

這就是SHA-256中,256這個數字的由來。

接下來我們就來看看哈希算法有哪些特征。哈希的特征之一就是「無沖突原則」。這個原則是指要得到一個256位的2進制字符串,顯然有不止一個輸入可以做到。

因為256位的輸出長度是固定的,但輸入的長度卻沒有限制,所以輸入的范圍要遠大于輸出,只要能夠窮盡輸入,就有可能得到2個一樣的256位的輸出。

話雖如此,不過要找到這樣兩個輸入的難度卻很大。即使是輸入上改動了一點,輸出的結果都會完全不同。如下圖所示:

所以,想要找到2中一樣的輸出的唯一方法,是窮盡所有的字幕、數字組合,這幾乎無法做到。幾率為2的256次方。

這是個多大的數字?展開來就是醬嬸兒的:

115792089237316195423570985008687907853269984665640564039457584007913129639936

幾乎相當于10的77次方。這是個什么概念?在460億光年的宇宙內,可見的原子數量也只有10的78次方。這個數字幾乎相當于宇宙內的原子數量!

要運算這個數字需要多長時間?以英偉達Geforce1080Ti顯卡,浮點運算11.3的算力來運算,每個哈希需要運算3000次,以每秒鐘3766666666個哈希的速度來運算,找到兩個相同的哈希運算結果,需要計算2的128次方個哈希。地球上所有的人一起計算,需要的時間如下:

這比地球存在的實時間都要長。

用Python創建第一個區塊

了解了什么是哈希,我們接著就來說說什么是區塊。實際上,區塊鏈就是一個互相連接的序列。我們接下來創建第一個區塊,也稱為「創世區塊」。代碼如下所示:

區塊鏈中會包含交易,交易很好理解,就是誰轉了多少錢給誰。我們把區塊進行序列,這樣它就可以進行哈希運算:

這樣,我們就得到了另一個區塊,我們姑且稱它為「區塊2」:

再對區塊2進行哈希運算:

得到了「區塊3」。

再對區塊3進行哈希運算,得到了「區塊4」。

這樣一來,想要確定區塊上的數據沒有被篡改,我只需要檢查最后一個區塊的哈希就行了。而不是從創世區塊開始檢查。這一原理也杜絕了區塊鏈上數據被攢該的可能。

通過以上代碼,可以得到下面結果:

這樣,用Python實現簡單的區塊鏈開發的演示就結束了。Python是一門強大的語言,區塊鏈是一個強大的信用工具,這兩者結合,勢必能創造出新的可能性。

怎么樣,今天的內容你都學會了嗎?還想看哪些技術教程,歡迎留言告訴營長!

參考鏈接:?

https://medium.com/coinmonks/building-a-simple-blockchain->

https://blog.csdn.net/u011583927/article/details/80905740

來源?

|Medium

作者|arjunaskykok

整理/?Aholiab

出品|?區塊鏈大本營

Tags:區塊鏈HONYTH比特幣區塊鏈幣在中國合法嗎HONK價格yth幣介紹比特幣最新行情走勢圖

非小號
穩定幣賽道還能擠下幾家巨頭?_穩定幣

加密貨幣世界中,最被小看的賽道,可能是穩定幣。直到去年,才有人終于發現了它的價值。而今年Libra白皮書的面世,讓這一賽道更受關注.

1900/1/1 0:00:00
觀點|區塊鏈游戲不是未來_區塊鏈

摘要:我們極力追逐的未來,不是區塊鏈游戲,而是區塊鏈技術特性成就的更好的游戲。鏈游行業應用繁榮的最好結局是,大眾都淡忘了區塊鏈游戲這一“特殊存在”,但游戲資產的價值觀念深入人心,并內化到每一款游.

1900/1/1 0:00:00
他為亞馬遜雨林捐出10萬美元的比特幣,卻被BitPay駁回了_BIT

備受爭議的加密貨幣支付處理器BitPay駁回了一筆向亞馬遜雨林慈善機構捐款10萬美元的資金。 BitPay深陷監管漩渦破產法院裁定Deltec需償還Alameda此前提供的近5300萬美元貸款:.

1900/1/1 0:00:00
ETC沖高回落,比特幣繼續堅挺,后市如何走?_ETC

今日,“末日戰車”ETC再度暴走,一句突破7美元的關口,但很快被市場的情緒影響出現回落,而上漲的原因主要是受硬分叉提前的影響.

1900/1/1 0:00:00
CSW被罰55萬個BTC,這重要嗎?_MAN

據報道,CSW在與已故商業伙伴DavidKleiman的兄弟IraKleiman的官司中敗訴。法官要求CSW向IraKleiman支付50%的比特幣以及一半的知識產權.

1900/1/1 0:00:00
Dfinity,今年夏天又過完了,可我還是沒有收到你們的短袖_DFI

當大家聊起Dfinity這個項目的時候,短袖這個梗鐵定是跑不開的。其實一件周邊T恤衫沒多少錢,主要是這個襯衫是當初通過擼空投才能獲得的,你還得先交運費.

1900/1/1 0:00:00
ads