比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > MEXC > Info

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

Author:

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

根據IEEE此前的一項調查,

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

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

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

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

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

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

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

從哈希函數說起

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

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

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

中國外匯投資研究院院長:數字人民幣不能代替人民幣國際化:近期,中國央行在深圳市開展了數字人民幣紅包試點。有觀點認為,人民幣數字化后,可大大加快人民幣國際化的進程。中國外匯投資研究院院長、首席經濟學家譚雅玲接受采訪時表示,數字貨幣的推進可能對人民幣國際化是一種輔助,但是不能代替人民幣國際化,所以發展數字人民幣要保持一個節奏,保持一種理性,人民幣最終可自由兌換才是人民幣國際化的根本目標。(財聯社)[2020/10/17]

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

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

來看一個例子:

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

分析 | 國內交易所合約持倉量再創新高 國外交易所合約持倉量巍然不動:據合約帝App顯示,截至今日上午,期貨合約大額成交報告中,OKEx交易所BTC季度成交大額多單約54萬張、大額空單46萬張,共計成交約1億美金;火幣交易所BTC成交大額多單1.9萬張、大額空單5.1萬張,共計成交約700萬美金;BitMEX交易所永續合約成交多單657萬張,空單1144萬張,共計成交約1801萬美金。

合約帝入駐實盤交易員“留給女兒的比特幣”分析認為,BTC周一早盤跟隨黃金走勢開始拉升,但是幅度不高,沒有出現預料中的多頭奔騰的場景。目前火幣交易所季度持倉量再創新高達到383萬張,OKEx季度持倉量也高達645萬張,只有BitMEX交易所持倉量沒有太大變動,依舊維持在8.74億張附近(BitMEX100張=OKEx1張=火幣1張)。目前行情依舊不具備暴漲條件。[2019/9/2]

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

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

聲音 | 美國政府執法辯護律師:在美國外國法幣和數字貨幣交易需要納稅:美國政府執法辯護律師Jake Chervinsky在社交平臺上表示:“在美國,使用貨幣購買商品和服務(換句話說,用美元支付貨物)不是應納稅的事件。使用外幣和加密貨幣的交易是美國的應稅事件,因為美國國稅局將它們歸類為財產而非貨幣。”[2018/9/17]

b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

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

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

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

因錯過比特幣瘋漲 國外一網友講述弟弟因此自殺: “他曾稱自己擁有15000個比特幣,可能其中有夸張的成分,但在2012年他的確有約6000個比特幣。直到2013年他丟失了大部分比特幣,或者說在某個時間賣掉了它們”。看著2013年至今比特幣價格瘋漲100倍,“弟弟開始懊惱,跟他聯系變得困難,直到幾周前,父母發現他自殺,沒留下任何遺言”。[2017/12/7]

這就是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區塊鏈比特幣SBU HoneyZYTH區塊鏈dapp開發合法嗎比特幣一個多少人民幣2023年

MEXC
“接盤”游戲?BTC早期投資者或已高價出貨離場_BTC

根據加密數據和分析公司CoinMetrics最近發布的一份報告,大多數早期進入比特幣市場的投資者已經在高位出完貨了,可能已經帶著高額利潤離場.

1900/1/1 0:00:00
9月5日行情分析:消息面的黑天鵝在減少,為什么市場還是不為所動_BTC

昨日晚間,國常會要求引導利率下行,降準降息已經在路上,這也預示著全球兩大最主要的經濟體都出現貨幣寬松,再加上歐洲已經基本宣布要啟動QE,全球最主要的幾大經濟體集體放水,資產價格自然會水漲船高.

1900/1/1 0:00:00
閃電網絡真的是比特幣最好的擴容解決方案嗎?_BOB

閃電網絡自2016年被提出以來一直備受爭議,作為BTC的擴容解決方案,比特幣社區成千上萬的人表達了他們對閃電網絡不起作用的看法.

1900/1/1 0:00:00
別再用交易量衡量 DApp 了,了解一下用戶行為與投資者指標_DAP

在Web2.0的世界里,運營、產品經理和老板經常會盯著日活,月活,留存轉化等數據試圖不斷迭代產品.

1900/1/1 0:00:00
央行發布2018年報:4次提及數字貨幣,稱“已取得階段性進展”(PDF全文)_BDC

本文旨在傳遞更多市場信息,不構成任何投資建議。央行于8月6日發布2018年全年工作報告:《中國人民銀行年報2018》。報告包含137頁內容,其中4次提數字貨幣.

1900/1/1 0:00:00
巴比特專欄 | 區塊鏈項目融資還是不融資,這是一個問題_TOKE

一、區塊鏈,天使還是惡魔?目前社會上對區塊鏈的看法有兩種極端,第一種是認為區塊鏈是未來,是非常偉大的創新,是繼互聯網之后最偉大的科技革命;另外一種看法則認為區塊鏈沒有實際意義,無法落地.

1900/1/1 0:00:00
ads