比特幣行情 比特幣行情
Ctrl+D 比特幣行情
ads

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

Author:

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

作者|arjunaskykok

整理|Aholiab

出品|區塊鏈大本營

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

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

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

幣安正組建團隊研究區塊鏈和加密貨幣如何對Twitter有所幫助:10月28日消息,幣安正在組建一個團隊致力于研究區塊鏈和加密貨幣如何對 Twitter 有所幫助,該團隊將探索如何構建鏈上解決方案來解決 Twitter 的機器人賬戶等問題。此前在馬斯克與 Twitter 的訴訟中公布的短信也顯示,馬斯克討論了將 Twitter 置于區塊鏈上的可能性,但后來又認為該舉措無法實現。

此前,特斯拉CEO埃隆·馬斯克已正式完成以每股54.2美元(約合440億美元)的價格收購推特公司的交易,馬斯克還罷免了首席執行官Parag Agrawal和首席財務官Ned Segal。(路透社)[2022/10/29 11:54:05]

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

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

美聯儲威廉姆斯:加息的時機和速度將取決于通貨膨脹和經濟如何發展:美聯儲威廉姆斯:加息的時機和速度將取決于通貨膨脹和經濟如何發展。美聯儲在看到勞動力市場大幅改善和高通脹后,采取加息和取消寬松政策是有道理的。 (金十)[2022/1/15 8:50:19]

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

從哈希函數說起

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

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

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

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

大咖零距離 | 如何通過消息面獲取市場暴利:2月19日16:00,金色盤面邀請數字貨幣正規軍TLAB Terry做客金色財經《大咖零距離》直播間,將分享《如何通過消息面獲取市場暴利》,敬請關注,欲進群觀看直播掃描海報二維碼報名即可![2020/2/19]

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

來看一個例子:

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

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

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

b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

動態 | V神闡述如何進行ETH委托挖礦:V神回復網友提問“1.可以通過合約合租一個validator(平民化參與,共享投票身份)嗎?2.一個客戶端可以跑多個valifator (共享機器)嗎?”表示,“你開一個validator,需要設置兩個公鑰:簽名的公鑰和取款的公鑰。Phase 2后,不一定需要設置取款公鑰,也可以設置取款合約。簽名的私鑰能withdraw,withdraw完成后validator里面的資金都給取款合約的地址。所以你開新的validator到時候,可以先發比如1以太幣,設置取款合約,這個合約的規則是,誰deposit多少誰按照比例withdraw多少。一段時間后,你發withdraw的交易。現在因為獎勵這個validator的balance是33.6以太幣(加 5%),33.6以太幣給合約,合約的規則分配1.05給你,8.4, 10.5和13.65 給其他的參與者。簽名的私鑰是你的,誰能withdraw多少的規則是合約定的。別人能看一個還未activated的validator的withdraw合約的規則,如果他們覺得是合理的,則他們能發他們的幣給這個validator,這個是委托的方法。”[2019/10/22]

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

聲音 | BB:監管者不知道如何利用區塊鏈應對非傳統領域價值儲存的需求:Blcok.one的CEO BB發推文表示,監管者雖然知道區塊鏈,但他們不知道如何利用區塊鏈技術來應對主流市場對在非傳統領域價值儲存的快速增長需求,而這些非傳統領域更符合個人的信仰體系。[2019/4/21]

在上面例子中,「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億比特幣能提現嗎比特幣最新價格行情走勢

歐易okex官網
比特幣:比特幣ATM機現身北京,一筆交易最高達萬元,有加盟商從中抽成

線下購買比特幣 近日,一張投資人站在機器前排隊購買比特幣的照片在幣圈人士中流傳甚廣,小犀財經獲悉,該照片最初為科銀資本內部人士劉亞林發布在朋友圈中.

1900/1/1 0:00:00
香蕉幣:和平精英香蕉幣怎么兌換 和平精英香蕉幣怎么得

香蕉幣現在只能通過充值點券來獲得,10點點券就等于1個香蕉幣。玩家點擊抽獎界面右下角的香蕉,就有機會獲得隨機數量的服飾或者香蕉幣.

1900/1/1 0:00:00
RISE:公告精選:博邁科簽訂42億元合同;恒生電子上半年凈利預增逾1倍

博敏電子三漲停:生產經營活動正常生產、銷售等未出現大幅波動連續三日漲停的博敏電子(603936)7月25日晚間公告,公司目前生產經營活動一切正常,市場環境、行業政策未發生重大調整.

1900/1/1 0:00:00
公信寶:公信寶被曝遭查封24小時暴跌33% 幣圈首富李笑來系股東

來源:中新經緯 中新經緯客戶端9月12日電據媒體報道,9月11日,知名區塊鏈機構公信寶被杭州市局西湖分局古蕩派出所貼上封條,未透露被查原因.

1900/1/1 0:00:00
金項鏈:女子每天佩戴1米多長金項鏈,價值11萬,一出門就被人打暈搶了!

女子為顯擺,每天佩戴1米多長金項鏈,價值11萬,結果被人打暈搶了。四川阿壩州,女子小楊結婚時,娘家給她的嫁妝里,陪嫁了一條非常大的金項鏈.

1900/1/1 0:00:00
比特幣:“四合一”藥物降低心血管疾病風險

英國和伊朗科學家一項聯合研究發現,將阿司匹林、他汀和兩種降血壓藥物融為一體形成的一種“四合一”廉價藥物可有效降低心血管疾病風險.

1900/1/1 0:00:00
ads