比特幣價格 比特幣價格
Ctrl+D 比特幣價格
ads

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

Author:

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

根據IEEE此前的一項調查,

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

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

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

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

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

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

TACU亞交所獲泰國外匯牌照:10月27日,TACU亞交所官方對外發布消息稱,該交易所已獲得由泰國中央銀行頒發的外匯牌照。

目前,即將升級的TACU亞交所平臺正在籌備提供數字貨幣、黃金、外匯等交易,此次獲得外匯牌照是在泰國開通外匯業務的必要條件。[2020/10/27]

從哈希函數說起

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

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

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

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

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

共為2020 | 工信部相里朋:國內區塊鏈在關鍵技術上對國外開源項目依存度高達70%:金色財經現場報道,2020年6月21日,由金色財經主辦的共為2020·區塊鏈創新應用論壇在深圳拉開帷幕。本次會議由幣核科技冠名贊助、HBTC作為戰略合作企業。工業和信息化部電子第五研究所高級工程師相里朋現場進行《布局:區塊鏈技術與應用市場之路》主題演講指出,截止2020年6月,國內活躍企業1000余家,實際注冊聯盟94個,集中在北上深杭廣等地,區塊鏈硬件、平臺、應用、咨詢產業鏈條已初步形成。從區塊鏈企業的地域分布情況看,中國區塊鏈公司與項目融資主要集中在粵港澳地區、環渤海地區、長三角地區和陜湘渝地區。

目前看來,區塊鏈產業發展尚需培育,區塊鏈相關投顧、媒體、咨詢、技術服務等產業上下游盈利困難,最終會形成區塊鏈產業,還只是區塊鏈技術,尚需要時間證明。國內區塊鏈技術對國外開源項目的依存度高,據不完全統計,核心技術、關鍵技術上對外依存度高達70%。國內區塊鏈應用探索較多,類型遠比國外豐富,但因研發資金匱乏、人才能力錯位導致持續創新乏力。[2020/6/21]

來看一個例子:

聲音 | Messari首席執行官:美國的加密領域正在衰落 是時候移居國外了:Messari首席執行官Ryan Selkis剛剛發推文稱:“無論如何,美國的加密領域正在衰落。差不多是移居國外的時候了。我認為國稅局的騷擾會給很多官員帶來麻煩。”[2019/7/31]

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

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

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

b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

動態 | 德國外匯經紀商FXFlat宣布增加加密貨幣交易種類:據Finance Magnates消息,德國外匯經紀商富萊證券(FXFlat)宣布擴大其加密貨幣交易服務種類。受德國BaFin監管的加密貨幣差價合約列表現在額外包括了比特幣現金、達世幣、以太坊、瑞波幣和萊特幣。該公司表示,新加密資產的加入將使交易商能夠適當地實現其加密資產的多樣化。[2019/3/9]

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

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

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

“比特幣支付”、“區塊鏈服務”域名均以六位數的價格國外易主:據外媒報道,近日域名paybit.de和blockchainservice.com分別以28,152美元和20,250美元成交。域名paybit.de成交價約合人民幣18萬元,主體包含英文單詞“pay”,有“支付、付款”的含義,以及單詞“bit”(比特幣);后綴.de是德國國別域名,是世界上目前注冊量較大的國別后綴,有著不錯的市場基礎。整體而言,該域名勝在含義不俗,既是一枚支付類域名,可用于支付類終端;又可視作比特幣行業域名,搭建比特幣交易平臺價值不錯。除了“比特幣支付”域名外,“區塊鏈”相關域名blockchainservice.com則以20,250美元成交,約合人民幣13萬元。該域名由三個英文單詞組合而成,譯為“區塊鏈服務”,很適合搭建區塊鏈資訊服務平臺。[2018/1/22]

這就是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比特幣銀行區塊鏈幣有什么用HONORMYTHIC比特幣以太坊是什么意思

萊特幣最新價格
區塊鏈:拳王帕奎奧要發幣,重拳還是挖坑?_kucoin成都

9月1日消息,據《南華早報》報道稱,上周日,菲律賓著名拳王曼尼·帕奎奧在馬尼拉舉行的一場免費音樂會上宣布推出了自己的加密貨幣Pactoken,其在音樂會上為其2000多名粉絲唱了小夜曲.

1900/1/1 0:00:00
比特幣:18000美元時買入比特幣,這位女億萬富翁后悔投資并稱比特幣為欺詐_BTC

比特幣的受歡迎程度越來越高,圍繞比特幣交易和投資的疑慮也越來越大。比特幣的市場趨勢也引發了人們的懷疑。很明顯,比特幣的價格波動很大,可能會在人們最意想不到的時候上漲或下跌.

1900/1/1 0:00:00
區塊鏈:共識機制研究 | 見出知入,觀往知來,加密經濟回溯與展望_POS

見出知入,觀往知來,加密經濟回溯與展望——共識機制 表1共識體制分類 來源:袁勇,倪曉春,曾帥,王飛躍.

1900/1/1 0:00:00
留給EOS的時間不多了: BM多次暗示對比特幣搞大事,是真有底牌要出嗎?

最近,去年的熱度王EOS風波不斷,就在前幾天,EOS生態海外社區的一個知名DApp開發者突然發難表示:“EOS超級節點幾乎全被中國人控制了,他將放棄在EOS上開發的DApp”.

1900/1/1 0:00:00
比特幣:比特幣波動性太高了,可我依然繼續持有比特幣_COI

你身邊是否有朋友曾對你說比特幣毫無意義?也許你曾見證了比特幣價格呈指數增長,之后又驟跌。于是你拋棄了比特幣,認為你朋友的觀點是正確的,決定暫時不再關注比特幣并認為它最終將會消亡.

1900/1/1 0:00:00
比特幣:四川水災,價值百萬的比特幣礦機被水沖走_HASH

自8月18日20時起,四川全省經歷了一次強降雨過程。成都、雅安、阿壩等多地降暴雨到大暴雨,出現災情。8月20日,汶川縣遭強降雨襲擊,縣境內不同程度發生泥石流災害,山體滑坡等自然災害.

1900/1/1 0:00:00
ads