比特幣行情 比特幣行情
Ctrl+D 比特幣行情
ads
首頁 > 波場 > Info

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

Author:

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

根據IEEE此前的一項調查,

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

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

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

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

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

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

俄羅斯央行:加密貨幣挖礦將合法化,前提是只能在國外出售所挖產出:7月5日消息,俄羅斯中央銀行(CBR)表示,將同意加密貨幣挖礦的合法化,前提是在俄羅斯的礦工所挖產出只能在俄羅斯境外轉換為法定貨幣。關鍵是要避免為隨后在國內支付中使用加密貨幣創造激勵措施。

俄羅斯財政部金融政策司司長Ivan Chebeskov指出,一些位于俄羅斯聯邦的大型加密貨幣礦業公司在提取資金時也被迫需要應對外國限制。俄羅斯可能不得不建立自己的交易平臺基礎設施,為該行業提供流動性。[2022/7/5 1:51:21]

從哈希函數說起

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

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

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

西班牙修改稅收模型用于披露在國外持有的加密資產:2月13日消息,西班牙議會對用于申報海外加密貨幣和其他資產的稅收模型720提出了修正案,減輕了一些與之相關的處罰。該修正案迫使納稅人披露在國外持有的加密貨幣和其他類型的資產。修訂包括納稅人將只對過去四個納稅期的債務負責。提議的另一個重大變化是將適用于納稅人的罰款的變化。從上述罰款來看,新的制裁符合現行一般稅法的規定。(News Bitcoin)[2022/2/13 9:49:06]

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

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

來看一個例子:

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

美國外國資產控制辦公室正尋求區塊鏈分析工具:金色財經報道,公共記錄顯示,隸屬于美國財政部的美國外國資產控制辦公室(OFAC)正在尋求區塊鏈分析工具。OFAC需要一個或多個商業在線區塊鏈跟蹤工具。這些工具將用于為OFAC全球目標辦公室小組的調查人員分析和跟蹤虛擬貨幣交易(例如比特幣)做準備。承包商提交能力聲明的截止日期為2021年5月25日美國東部時間下午2:00。[2021/5/7 21:31:24]

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

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

b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

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

北京鏈安:“OKEx暫停提幣”可能引發國內向國外交易所大規模提幣的猜測并不成立:據北京鏈安分析,火幣和幣安面對OKEx暫停提幣,用戶在提幣上的表現并未有非常大的差異,特別伴隨近一周比特幣行情的到來,兩家交易所的整體趨勢呈現趨同的態勢,可見此前對事件可能引發國內交易所向國外交易所大規模提幣的猜測并不成立。綜合來看,OKEx暫停提幣事件發生的背景是DeFi退潮和主流幣上漲帶來的比特幣等主流幣向交易所回流的大趨勢。在這個時候,OKEx這樣的大所發生“黑天鵝事件”,對火幣、幣安在用戶充幣和提幣上確實產生了一定的短期影響,特別提幣在事發當日表現明顯。但是從數據走向可以看到,這種影響是短期的,一時的黑天鵝事件對市場可能產生沖擊,但是最終還是大趨勢決定市場方向,兩大交易所在接下來一周雙雙出現了鏈上交易額的提升。[2020/10/27]

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

國外媒體:下一代家將成為數字貨幣最大的支持者:國外有媒體發文認為,下一代家將成為數字貨幣最大的支持者。并列舉了支持數字貨幣的年輕家,如美國36歲的共和黨參議院候選人Austin Petersen、曾競選美國新罕布什爾州州長的32歲的Andrew Hemingway 、29歲正在競選國會議員的民主黨人Patrick Nelson,28歲的意大利的Gian Luca Comandini。文章稱親數字貨幣的年輕家正在出現,但形成氣候還需要4到6年,但全世界的議會早晚會充斥著支持比特幣的家。[2018/3/4]

之所以這樣,是因為字符是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區塊鏈證據保全怎么操作流程ZYTH COINShuey Rhon RhonDibs Share

波場
區塊鏈:一文讀懂區塊鏈的共識機制

前言:本文簡單明了地闡述了達成共識的兩個主要流程:區塊的提議和區塊的共識達成。區塊的提議主要涉及到PoW和PoS機制,也就是工作量證明和權益證明的機制,用以抵抗女巫攻擊,安全地選出可靠的區塊提議.

1900/1/1 0:00:00
TOKEN:CEO公開信 | imToken 很純粹, 連彩蛋抽獎都要玩得純粹

注:關于比特派莽撞冠以imToken各種假名,請見imToken官方聲明。本文是我個人想跟比特派創始人及他的團隊,各媒體們、朋友們,以及imToken的伙伴們,聊聊我們做過的事情和想要做的事情.

1900/1/1 0:00:00
APP:內容為王:區塊鏈行業該如何破局

導讀:整個區塊鏈的圈子里面,不乏投資者,投機者,開發者,項目方,最稀缺的是C端的“消費者”,因為沒有應用和內容真正解決了消費者的需求.

1900/1/1 0:00:00
XRP:反瑞波拋售情緒愈演愈烈,投資者想分叉并接管XRP

瑞波公司拋售大量XRP所產生的負面市場影響引發了投資者的不滿,一些代幣持有者開始尋找反擊方法。@CryptoBitlord在推特上有超過10萬的粉絲,其在本周一表示:“我在考慮分叉XRP,這樣我.

1900/1/1 0:00:00
區塊鏈:12個決策模型告訴你,到底需不需要區塊鏈

區塊鏈自2017年大火至今,已經2年了。眾所周知,現在很多項目都在蹭“區塊鏈”的熱點,如何判斷是否需要用到區塊鏈技術?國外學霸總結了12個思維模型,幫助你理清思緒.

1900/1/1 0:00:00
區塊鏈:全球10大銀行中3家都是其客戶,“已落地”區塊鏈項目Baton獲得1200萬美元A輪融資

總部位于美國加州弗里蒙特、成立已三年的BatonSystems是一家以區塊鏈技術為模型的銀行對銀行支付基礎設施提供商.

1900/1/1 0:00:00
ads