區(qū)塊鏈相關(guān)基礎(chǔ)筆記2

一、區(qū)塊鏈結(jié)構(gòu)

1筷笨、基本結(jié)構(gòu):區(qū)塊頭(Block Head)+ 區(qū)塊體(Block Body)

(1)區(qū)塊頭(包括3組元數(shù)據(jù)):

? ? ? ?①用于連接前面的區(qū)塊、索引自父區(qū)塊哈希值的數(shù)據(jù)。

?????? ②挖礦難度揭措、Nonce(隨機(jī)數(shù)驯绎,用于工作量證明算法的計數(shù)器)蒂胞、時間戳。

?????? ③能夠總結(jié)并快速歸納校驗區(qū)塊中所有交易數(shù)據(jù)的Merkle樹根數(shù)據(jù)条篷。

數(shù)據(jù)項:

??????Version(4字節(jié))

??????Hashprevblock(32字節(jié))

??????Hashmerkleroot(32字節(jié))

??????Time(4字節(jié))

??????Bits(4字節(jié))

??????Nonce(4字節(jié))

(2)區(qū)塊體

交易數(shù)據(jù)(Tx)

Transactions包括一個input和多個output骗随。并且輸入和輸出相等:input

satoshi=output satoshi蛤织,input satoshi=output satoshi.已確認(rèn)的交易(或者說已經(jīng)花出去的錢)被稱為Transaction identifiers(TXIDs),未確認(rèn)的被稱為Unspent

Transaction Outputs(UTXOs)

數(shù)據(jù)項:

??????Magic no(4字節(jié)):總是0xD9B4BEF9

??????Blocksize(4字節(jié))

??????Blockheader(80字節(jié))

??????Transaction counter(1-9字節(jié)):正整數(shù)VI= Varlnt

??????Transactions(Transaction counter許多交易):非空

2鸿染、組成部分

(1)數(shù)據(jù)層:區(qū)塊數(shù)據(jù)指蚜、鏈?zhǔn)浇Y(jié)構(gòu)、數(shù)字簽名涨椒、哈希函數(shù)摊鸡、Merkle樹、非對稱加密蚕冬。

(2)網(wǎng)絡(luò)層:P2P網(wǎng)絡(luò)免猾、傳播機(jī)制、驗證機(jī)制囤热。

(3)共識層:共識算法猎提。

(4)激勵層:發(fā)行機(jī)制、分配機(jī)制旁蔼。

(5)合約層:合約算法锨苏。

(6)應(yīng)用層:實現(xiàn)轉(zhuǎn)賬記賬功能。

3棺聊、區(qū)塊:數(shù)據(jù)庫中需要存儲的數(shù)據(jù)伞租。

4、鏈:每個區(qū)塊通過特定的信息鏈接到上一區(qū)塊的后面限佩,前后按時間順序連接起來成為一套完整的數(shù)據(jù)葵诈。

5、哈希算法(Hash Function)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? MD5/SHA+uuid+數(shù)據(jù)校驗

(1)概念:將任意長度的二進(jìn)制值串映射為固定長度的二進(jìn)制值串祟同。

①在算法內(nèi)部驯击,不管輸入的數(shù)據(jù)是何種形式,都以單純的比特序列來處理耐亏。

②輸入就是一串由0和1組成的二進(jìn)制數(shù)徊都。

③哈希算法把數(shù)據(jù)打亂混合,壓縮成摘要广辰,使得數(shù)據(jù)量變小暇矫,重新創(chuàng)建一個叫做哈希值的指紋。

④輸入值與輸出值之間沒有規(guī)律择吊,所以不能通過輸出值算出輸入值李根。

(2)常用算法:MD5、SHA

性質(zhì):①不可逆:即知道x的hash值無法求出x几睛。

? ? ? ? ? ? ②小沖突:即存在一個y值房轿,與已知x值的hash值相同的概率非常小。

(3)MD5(MD5 Message-Digest Algorithm,MD5 消息摘要算法)

作用:①防篡改

比如發(fā)送一份電子文檔囱持,發(fā)送前夯接,我先得到MD5的輸出結(jié)果a。然后在對方收到電子文檔后纷妆,對方也得到一個MD5的輸出結(jié)果b盔几。如果a與b一樣就代表中途未被篡改。

? ? ? ? ? ? ②防止直接看到明文

現(xiàn)在很多網(wǎng)站在數(shù)據(jù)庫存儲用戶的密碼的時候都是存儲用戶密碼的MD5值掩幢。這樣就算不法分子得到數(shù)據(jù)庫的用戶密碼的MD5值逊拍,也無法知道用戶的密碼。(比如在UNIX系統(tǒng)中用戶的密碼就是以MD5(或其它類似的算法)經(jīng)加密后存儲在文件系統(tǒng)中际邻。當(dāng)用戶登錄的時候芯丧,系統(tǒng)把用戶輸入的密碼計算成MD5值,然后再去和保存在文件系統(tǒng)中的MD5值進(jìn)行比較世曾,進(jìn)而確定輸入的密碼是否正確缨恒。通過這樣的步驟,系統(tǒng)在并不知道用戶密碼的明碼的情況下就可以確定用戶登錄系統(tǒng)的合法性度硝。這不但可以避免用戶的密碼被具有系統(tǒng)管理員權(quán)限的用戶知道肿轨,而且還在一定程度上增加了密碼被破解的難度寿冕。)

? ? ? ? ? ? ?③防止抵賴(數(shù)字簽名)

這需要一個第三方認(rèn)證機(jī)構(gòu)蕊程。例如A寫了一個文件,認(rèn)證機(jī)構(gòu)對此文件用MD5算法產(chǎn)生摘要信息并做好記錄驼唱。若以后A說這文件不是他寫的藻茂,權(quán)威機(jī)構(gòu)只需對此文件重新產(chǎn)生摘要信息,然后跟記錄在冊的摘要信息進(jìn)行比對玫恳,相同的話辨赐,就證明是A寫的了。這就是所謂的“數(shù)字簽名”京办。

(4)uuid

我們可以給每一個圖片取一個唯一標(biāo)識掀序,或者說信息摘要。比如惭婿,我們可以從圖片的二進(jìn)制碼串開頭取 100 個字節(jié)不恭,從中間取 100 個字節(jié),從最后再取 100 個字節(jié)财饥,然后將這 300 個字節(jié)放到一塊换吧,通過哈希算法(比如 MD5),得到一個哈希字符串钥星,用它作為圖片的唯一標(biāo)識沾瓦。通過這個唯一標(biāo)識來判定圖片是否在圖庫中,這樣就可以減少很多工作量。如果還想繼續(xù)提高效率贯莺,我們可以把每個圖片的唯一標(biāo)識风喇,和相應(yīng)的圖片文件在圖庫中的路徑信息,都存儲在散列表中乖篷。當(dāng)要查看某個圖片是不是在圖庫中的時候响驴,我們先通過哈希算法對這個圖片取唯一標(biāo)識,然后在散列表中查找是否存在這個唯一標(biāo)識撕蔼。如果不存在豁鲤,那就說明這個圖片不在圖庫中;如果存在鲸沮,我們再通過散列表中存儲的文件路徑琳骡,獲取到這個已經(jīng)存在的圖片,跟現(xiàn)在要插入的圖片做全量的比對讼溺,看是否完全一樣楣号。如果一樣,就說明已經(jīng)存在怒坯;如果不一樣炫狱,說明兩張圖片盡管唯一標(biāo)識相同,但是并不是相同的圖片剔猿。

(5)SHA256

操作流程:

第一步:消息預(yù)處理

(1)補(bǔ)位:對消息進(jìn)行補(bǔ)位處理视译,使得最終的長度是512位的倍數(shù)。

(2)分塊:以512位為單位對消息進(jìn)行分塊為M(1),M(2),...,M(N)归敬。

第二步:計算哈希值

對消息區(qū)塊進(jìn)行逐個處理酷含。從一個固定的初始哈希H(0)開始,進(jìn)行以下序列的計算:

H(i)=H(i-1)+ CM^(i)(H(i-1))

C:SHA256的壓縮函數(shù)汪茧。

H(i):第i消息區(qū)塊的哈希值椅亚。

6、交易

轉(zhuǎn)賬

E.G.如果A選用BTC向B付款舱污,若當(dāng)前1BTC=10萬元呀舔,則A需向B支付0.05+0.001=0.051BTC,其中0.001BTC是礦工費扩灯。

礦工費:A向B轉(zhuǎn)賬時媚赖,付給BTC網(wǎng)絡(luò)提供者的“小費”,以激勵他們?yōu)锽TC網(wǎng)絡(luò)提供服務(wù)驴剔∈」牛“小費”是可以調(diào)整的,“小費”給的多丧失,轉(zhuǎn)賬速度就快豺妓。

第一步:A打開BTC錢包,選擇轉(zhuǎn)賬功能。

第二步:輸入B的BTC接收地址琳拭,及轉(zhuǎn)賬金額0.051個BTC训堆。

地址:是由數(shù)字和字母組成的字符串。

生成方式:是由公鑰經(jīng)過單向的哈希函數(shù)生成的(自動生成)白嘁。

第三步:點擊轉(zhuǎn)賬坑鱼,輸入密碼。

第四步:等待6個交易確認(rèn)數(shù)后絮缅,B收到A轉(zhuǎn)來的0.05個BTC鲁沥。

交易確認(rèn)數(shù):區(qū)塊鏈分布式記賬網(wǎng)絡(luò)中,每一筆轉(zhuǎn)賬交易耕魄,每得到網(wǎng)絡(luò)中1個節(jié)點的確認(rèn)画恰,記1次交易確認(rèn)數(shù)。然若得到網(wǎng)絡(luò)中所有節(jié)點確認(rèn)后轉(zhuǎn)賬才能生效吸奴,則需要花費很長時間允扇。因此在BTC網(wǎng)絡(luò)中,經(jīng)過設(shè)計計算则奥,當(dāng)獲得6個交易確認(rèn)數(shù)時考润,可認(rèn)為這筆交易就非常安全了,交易生效读处,轉(zhuǎn)賬的BTC可到賬糊治。

第五步:交易完成。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末档泽,一起剝皮案震驚了整個濱河市俊戳,隨后出現(xiàn)的幾起案子揖赴,更是在濱河造成了極大的恐慌馆匿,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件燥滑,死亡現(xiàn)場離奇詭異渐北,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)铭拧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門赃蛛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人搀菩,你說我怎么就攤上這事呕臂。” “怎么了肪跋?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵歧蒋,是天一觀的道長。 經(jīng)常有香客問我,道長谜洽,這世上最難降的妖魔是什么萝映? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮阐虚,結(jié)果婚禮上序臂,老公的妹妹穿的比我還像新娘。我一直安慰自己实束,他們只是感情好奥秆,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著咸灿,像睡著了一般吭练。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上析显,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天鲫咽,我揣著相機(jī)與錄音,去河邊找鬼谷异。 笑死分尸,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的歹嘹。 我是一名探鬼主播箩绍,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼尺上!你這毒婦竟也來了材蛛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤怎抛,失蹤者是張志新(化名)和其女友劉穎卑吭,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體马绝,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡豆赏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了富稻。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掷邦。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖椭赋,靈堂內(nèi)的尸體忽然破棺而出抚岗,到底是詐尸還是另有隱情,我是刑警寧澤哪怔,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布宣蔚,位于F島的核電站廷痘,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏件已。R本人自食惡果不足惜笋额,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望篷扩。 院中可真熱鬧兄猩,春花似錦、人聲如沸鉴未。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽铜秆。三九已至淹真,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間连茧,已是汗流浹背核蘸。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留啸驯,地道東北人客扎。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像罚斗,于是被迫代替她去往敵國和親徙鱼。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容