以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads
首頁 > ETH > Info

如何用 Python 快速開發一個區塊鏈數據結構?_區塊鏈

Author:

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

作者|arjunaskykok

整理|Aholiab

出品|區塊鏈大本營

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

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

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

外媒:香港金融監管機構本周討論了如何解決加密公司開設銀行賬戶面臨的挑戰:6月16日消息,據彭博社援引知情人士報道,香港金融監管機構已于本周一召集銀行、加密平臺和其他行業參與者在一起,主要討論如何解決加密公司在開設銀行賬戶方面面臨的持續挑戰。這是香港監管機構自 4 月下旬以來第二次推動銀行更多參與加密領域的會議。[2023/6/16 21:41:23]

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

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

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

從哈希函數說起

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

美眾議員:將繼續就如何將數字資產納入監管框架與金融服務委員會進行對話:金色財經報道,美國眾議員Don Beyer(非委員會成員)發表了一份聲明,贊賞了金融服務委員會今天舉行的聽證會,并提到了他關于加密貨幣監管的法案。他說:“我的全面數字資產立法是針對這些努力的絕佳起點。我期待與主席Maxine Waters和委員會其他成員繼續就國會如何將數字資產納入監管框架進行對話,這是行業和監管機構一直以來越來越強調的需求。[2021/12/9 13:00:06]

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

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

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

現場 | 火幣集團COO朱嘉偉:區塊鏈是解決三個和尚如何打水的問題:金色財經現場報道,百度智能云Techday11月21日在北京舉行。火幣集團COO朱嘉偉在會上表示,區塊鏈技術和其他多數技術很不一樣,多數技術是解決一個和尚如何打水的問題區塊鏈是解決三個和尚如何打水的問題,因此區塊鏈適用于多方協同的場景,可以促進數據共享、優化業務流程、降低運營成本、提升協同效率以及建設可信體系。[2019/11/21]

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

來看一個例子:

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

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

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

金色相對論 | 陳鈺璋:STO核心問題是如何與先行者爭奪優秀項目:本期金色相對論中,高鏈資本創始合伙人陳鈺璋就“STO來襲將如何影響市場”的問題發表看法,陳鈺璋表示,STO給一些小國一個不錯的窗口,不過問題是這些國家需要流量。沒有流量的合法合規也沒有太大用處。

如果區塊鏈是創新,我們就要用創業的思維去理解它、改善它。看待STO的最核心問題是:如何與納斯達克、紅杉、軟銀這些交易所和巨額基金爭奪真正的好項目?這是一個先有雞還是先有蛋的問題:需要有足夠的流動性,才能夠吸引真正的好項目。但是誰來提供從零到一的流動性呢?我能看到的是超級財團,例如軟銀、黑石、GIC這些基金聯合小國家的政府立法,成立國際上第一個不缺錢的穩定STO體系,吸引到最優質的頂級企業入駐,打造成功案例,然后把其他B輪、C輪的S級別企業吸引過去,才能建立良性循環。而新加坡政府如果能夠把GIC和Temasek的流動性注入到STO里,在新加坡成立STO交易所,會改變歷史。[2018/10/12]

b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

韓國政府召開緊急會議 討論如何遏制加密貨幣投機:首爾12月13日電 韓國政府周三召集了相關部委的緊急會議,討論如何在當地投資者日益擔憂財務損失的情況下遏制加密貨幣投機。會議匯集了司法部,財政部,科學部和ICT部,金融服務委員會,韓國通信委員會,公平貿易委員會和國家稅務局的高級官員。比特幣和以太坊等加密貨幣近年來迅速普及。韓國是世界上最大的比特幣交易所之一,約有100萬人擁有最知名的數字貨幣。[2017/12/13]

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

在上面例子中,「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是一門強大的語言,區塊鏈是一個強大的信用工具,這兩者結合,勢必能創造出新的可能性。

Tags:區塊鏈SHA比特幣區塊鏈工程專業學什么區塊鏈存證怎么弄區塊鏈技術發展現狀和趨勢SHA價格SHA幣比特幣中國官網聯系方式40億比特幣能提現嗎比特幣最新價格行情走勢

ETH
起底“公信寶”龐氏騙局!公司遭查封的真實原因可能是這些_公信寶

9月11日,在所有加密貨幣市值中排行第74位的“GXC”虛擬貨幣發行方杭州存信數據科技有限公司因涉嫌犯罪被杭州市局西湖區分局古蕩派出所查封。有媒體猜測是因為“買賣數據”而被查封的.

1900/1/1 0:00:00
萊特幣,全線礦機逼近關機價……比特幣機皇S9也“很難”_萊特幣

怎么說好呢,萊特幣算力或許將迎來一波暴擊。目前,挖礦還屬于豐水期,電費以0.35元一度計算,幣印礦池可自動計算出萊特幣礦機的凈利潤,情況相當恐怖,主流的L3系列礦機已經觸達關機價,剩下的所有礦機.

1900/1/1 0:00:00
“區塊鏈100分”第十六期——《數字貨幣的前世今生》_數字貨幣

每天,我們將邀請一位專家給大家進行分享,并做好持續不間斷的傳播。我們希望借此平臺匯聚更多的頂尖專家及人才;我們希望依此活動找到更多志同道合的伙伴;我們更希望傾聽不同界的最強音,借彼此微薄之力,服.

1900/1/1 0:00:00
理想汽車延期交付一個月,將免費升級為2020款車型_ONE

編者按:本文來自36氪「未來汽車日報」,作者:張一。 作者|張一 編輯|吳巖 10月15日,理想汽車宣布將推遲首款量產車型理想ONE的交付開啟時間,從今年11月調整為12月,并直接向首批用戶交付.

1900/1/1 0:00:00
售價2.69萬,鈴木臺灣亮相新仿賽,馬力達19匹,取代原鋼炮GPR150_GSX

小排量入門級仿賽摩托車,一直以來都是國內比較熱門的車型。不過國內制造的仿賽車型性能表現都比較一般,操控性也是表現比較常規.

1900/1/1 0:00:00
伊利股權激勵計劃或被誤讀,它其實是長期競爭策略的一部分_CEO

近日,國內乳業巨頭伊利發布了一份股權激勵計劃草案。草案顯示,伊利擬向共474名激勵對象授予1.83億股限制性股票,授予價格為15.46元/股,該價格大約為此前其收購均價31.67元的一半.

1900/1/1 0:00:00
ads