以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads

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

Author:

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

根據IEEE此前的一項調查,

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

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

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

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

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

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

韓國擬在實施虛擬資產第二階段立法前征集行業意見并參考國外法律:5月25日消息,韓國金融服務委員會金融創新部門負責人表示,在實施監管虛擬資產發行、分配和披露的第二階段立法之前,希望通過征集行業意見并參考國外法律(包括歐盟和美國的立法),以自我監管形式準備監管體系。

據悉,韓國對加密行業的第一立法階段為《虛擬資產投資者保護法》,已于5月11日通過,第二階段立法將推進虛擬資產發行和披露等市場秩序的補充規定。[2023/5/25 10:39:27]

從哈希函數說起

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

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

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

德國外長:歐盟將對俄羅斯提出第8輪制裁方案:9月1日消息,自俄烏沖突發生以來,歐盟已經對俄羅斯實施了7輪制裁措施。當地時間8月31日,德國聯邦外交部長貝爾伯克表示,歐盟正在就第8輪制裁方案進行磋商,俄羅斯石油出口可能成為制裁的重點。貝爾伯克當天在布拉格舉行的歐盟外長會議上透露稱,德國政府正努力推動對俄羅斯實施第8輪制裁措施,并已就此向歐盟提出了建議。雖然貝爾伯克沒有透露具體制裁的內容,但她強調,能夠長期維持對俄羅斯的制裁非常重要。(央視新聞)[2022/9/1 13:00:54]

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

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

來看一個例子:

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

百度區塊鏈總經理:中國區塊鏈應用領域比國外范圍廣:在2020年中國國際服務貿易交易會上,百度區塊鏈總經理肖偉指出,不同于互聯網的發展,中國介入區塊鏈技術的時間不比國外晚,而國外區塊鏈技術主要在金融領域展開,他們的行業寬度沒有中國強。中國區塊鏈應用不僅在金融領域取得了成就,在政務治理、版權保護、農業溯源、醫保核實等方面也都成熟落地。(中國新聞網)[2020/9/9]

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

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

b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

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

聲音 | 接近監管人士:不管公司主體設在國內還是國外,只要涉及提供非法交易通道的行為均要被嚴懲:12月18日,一則關于“深圳加快虛擬代幣交易整頓,8家涉嫌發幣企業被約談”的消息,北京商報表示,從多方確認該消息屬實,其中,有企業回應已注銷國內公司主體并轉戰海外,還有企業則稱并未涉及發幣業務,僅提供服務。對此情況,一接近監管人士表示,當前,虛擬代幣整頓仍然保持高壓態勢。不管公司主體設在國內還是國外,只要涉及到為國內消費者提供非法交易通道,就要被嚴懲。此外,不僅針對發幣企業主體,且為注冊在境外的虛擬代幣交易平臺提供引流、服務以及資金通道的企業均要打擊。

前述人士透露,“當前,監管針對在境外架設服務器,但對境內居民提供虛擬代幣交易的行為仍在進一步加強整治,主要通過支付結算方面發現問題、切斷端口、從嚴打擊。在全國范圍主要由央行牽頭,地方具體清理整頓則由金融局開展,聯合、稅務等手段進行排查。整體原則是,任何虛擬代幣交易行為均不允許;配合支持虛擬代幣交易的任何附屬行為也均屬違法,不管怎么變形,均要被嚴打。(北京商報)[2019/12/20]

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

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

之所以這樣,是因為字符是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:區塊鏈YTHHONSHA工業區塊鏈Mythic FinanceShon Tokensharpay

pepe最新價格
海通證券姜超:加密貨幣,面向未來的支付創新?_比特幣:LIBRAF幣

重要提示:《證券期貨投資者適當性管理辦法》于2017年7月1日起正式實施,通過本號發布的觀點和信息僅供海通證券的專業投資者參考,完整的投資觀點應以海通證券研究所發布的完整報告為準.

1900/1/1 0:00:00
人民日報:區塊鏈電子發票的上線,不亞于一場稅收征管角度的改革_區塊鏈:區塊鏈的未來發展前景與應用

2019年8月,距全國首張區塊鏈電子發票開出已滿一周年。一年以來,“區塊鏈”這一永久改變互聯網面貌的技術手段,與“電子發票”共生互融,拓展了深圳市稅務局“智稅”科技的全新應用場景,讓深圳在稅收征.

1900/1/1 0:00:00
比特幣礦業深度調查:中國礦機商占主導,上半年挖礦堪稱暴利_比特幣:Gemini

本文是《比特幣礦業深度調查:人類是在浪費能源,還是在創造能源?》的姊妹篇。兩篇文章均出自Coinshares機構對比特幣挖礦行業的深度調查報告.

1900/1/1 0:00:00
四川礦場被淹,警惕“水貨礦機”流入市場_人工智能:閃電比特幣還在嗎

今年的豐水期礦工們可謂是喜憂參半,喜的是二級市場的行情回暖正好趕上四川的豐水期,不管是哪個型號的礦機只要能開機就有利可圖.

1900/1/1 0:00:00
ConsenSys最新報告:2019 穩定幣現狀_穩定幣:rcoin幣在哪可以買

這是一份來自著名的以太坊孵化機構?ConsenSys剛剛于8月中旬更新并發布的「2019穩定幣發展現狀」報告.

1900/1/1 0:00:00
Cocos-BCX首發上線幣安首日“波動劇烈”?原因可能在這里_BCX:比特無限幣bcx今日價格行情最新

8月21日,下一代游戲數字經濟平臺Cocos-BCX首發上線幣安,然而上線之后出現了“較大波動”.

1900/1/1 0:00:00
ads