區(qū)塊鏈基礎(chǔ)知識_第1頁
區(qū)塊鏈基礎(chǔ)知識_第2頁
區(qū)塊鏈基礎(chǔ)知識_第3頁
區(qū)塊鏈基礎(chǔ)知識_第4頁
區(qū)塊鏈基礎(chǔ)知識_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

區(qū)塊鏈基礎(chǔ)知識內(nèi)容預覽區(qū)塊鏈是什么?區(qū)塊鏈為什么叫blockchain?如何發(fā)起一筆比特幣交易?區(qū)塊鏈2.0是什么?區(qū)塊鏈有哪些應用?1.區(qū)塊鏈是什么?1.區(qū)塊鏈是什么?與比特幣一起誕生的技術(shù),比特幣軟件的底層架構(gòu)比特幣在區(qū)塊鏈架構(gòu)之上增加了數(shù)字貨幣功能也就是說區(qū)塊鏈不一定用于數(shù)字貨幣,它更是一種分布式技術(shù)1.區(qū)塊鏈是什么?區(qū)塊鏈是一種分布式服務什么是分布式服務?一個服務器集群,對外提供一致的服務,相當于一個整體相對于單機服務器,可提高訪問量,能容忍單點故障一般的分布式集群公司統(tǒng)一搭建用于承載更多的訪問,提高可用性服務器之間是信任,協(xié)作的關(guān)系區(qū)塊鏈網(wǎng)絡組織/個人獨立搭建并主動連入網(wǎng)絡負載與節(jié)點數(shù)量無關(guān)節(jié)點之間獨立,各自為營每個節(jié)點都做同樣的工作區(qū)塊鏈網(wǎng)絡為何要如此設計?避免一家獨大,形成壟斷,也就是去中心化。壟斷=掌握定價權(quán),篡改權(quán),最終損害使用者的利益數(shù)據(jù)任何人都可以獲取,公開透明,防止篡改這樣的設計也必然導致比傳統(tǒng)的服務器集群低效擴展Q:節(jié)點如何加入?yún)^(qū)塊鏈網(wǎng)絡?A:與已加入網(wǎng)絡的節(jié)點通信,獲取更多網(wǎng)絡節(jié)點Q:區(qū)塊鏈的節(jié)點是如何互相發(fā)現(xiàn)的?A:節(jié)點之間采用P2P協(xié)議,并提供getaddr命令,允許其他節(jié)點查詢自己所知道的其他節(jié)點。Q:最開始不知道任何節(jié)點的時候,如何加入?yún)^(qū)塊鏈網(wǎng)絡? A:兩種方式,DNS-seed,hard-code。兩種方法都是中心化的方式。不存在完全去中心化的節(jié)點發(fā)現(xiàn)機制。2.區(qū)塊鏈為什么叫blockchain?2.區(qū)塊鏈為什么叫區(qū)塊鏈(blockchain)?是因為其特別的數(shù)據(jù)結(jié)構(gòu)區(qū)塊鏈的數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)打包成塊狀(block),并連接成鏈表(chain)一個形象的例子一個真實的例子

/btc/block/0000000000000000000f31575816f8e24047674a2ec0

4d35d5e39eedcb423129為什么要用塊狀數(shù)據(jù)?雖然區(qū)塊鏈有多個節(jié)點,但一個區(qū)塊最終只會由一個“幸運”節(jié)點打包打包也就是所謂的“挖礦”如果不使用塊狀數(shù)據(jù),每一條數(shù)據(jù)都打包一次,效率上不可行為什么區(qū)塊要用鏈連接起來?區(qū)塊的鏈接方式:當前區(qū)塊包含上一區(qū)塊的id區(qū)塊id的值與區(qū)塊內(nèi)容,挖礦的隨機數(shù),上一個區(qū)塊id等數(shù)據(jù)有關(guān)(MerkleHashTree)所以:1.如果修改某一區(qū)塊內(nèi)容,該區(qū)塊id將發(fā)生變化2.區(qū)塊id發(fā)生變化則鏈接該區(qū)塊的區(qū)塊不再鏈接該區(qū)塊 3.所以想要修改某一區(qū)塊,需要將該區(qū)塊往后的所有區(qū)塊都改變,因為“挖礦”規(guī)則的存在,實現(xiàn)相當困難什么是挖礦? 對于比特幣來說,挖礦就是hash(區(qū)塊數(shù)據(jù)+隨機數(shù))=一個足夠小的值。目前比特幣網(wǎng)絡要求hash值的前76個bit為0(2018年08月15日)。該值是動態(tài)調(diào)整的,取值依據(jù)是所有節(jié)點一起算,需要平均10分鐘才能算出一次這個足夠小的hash值。 由于hash(data)的結(jié)果是不可預測的,所以可以視作隨機碰撞。也就是說,你在今天每hash一次,你有1/2^76的機會得到這個足夠小的hash值(約為1/36000000億)。而買一張彩票中500萬的概率大約是1/2000萬,也就是約1/2^24。 Nvidia1080Ti顯卡(約6000元)一天大約能hash2^47次。則它一天能挖到一次礦的概率是1/2^29,大約為1/5億。折合比特幣市價,平均大概能賺幾毛錢顯卡挖礦性價比很低,現(xiàn)在都有專門挖礦芯片和挖礦機“挖礦”的學名 挖礦通俗理解就是打包區(qū)塊的權(quán)利。若你得到足夠小的hash值,也就擁有打包權(quán),也就獲得了打包區(qū)塊的獎勵。 這也是目前比特幣唯一產(chǎn)出的方法,所有比特幣都從打包的節(jié)點(“礦工”)誕生,再流入到其他人手中。挖礦用更專業(yè)的詞語來說,叫做共識。 共識即一種讓所有區(qū)塊鏈節(jié)點都認可的打包協(xié)議。比特幣使用的共識算法叫做POW(proveofwork,工作量證明),也就是算一個足夠小的hash來證明你的工作量。POW本質(zhì)是算力(hash能力)的比拼。這就是強者的世界,你越強,挖到的概率就越大POW是一種足夠簡單有效的共識協(xié)議,但很浪費能源。block+chain+POW=? 不可篡改的特性:一旦修改中間的一個區(qū)塊,則后面所有區(qū)塊都需要重新依照POW共識重新“挖”出來 浪費能源:越來越多的節(jié)點加入,但打包時間依然由軟件控制在平均10分鐘一次。導致每一次打包,都需要消耗巨大的電力。其他共識協(xié)議:POS,DPOS,PBFT等比特幣網(wǎng)絡共識的簡單描述1.節(jié)點通過連接網(wǎng)絡中的節(jié)點連入比特幣網(wǎng)絡2.節(jié)點接收其他節(jié)點或非節(jié)點發(fā)來的交易信息,也同時將交易信息轉(zhuǎn)發(fā)給其他節(jié)點3.計算交易信息的MerkleHashTree,賦值給blockheader4.選擇一個隨機數(shù)并填入blockheader,對blockheader做hash運算5.如果hash足夠小,則將此block廣播給其他節(jié)點 6.在任意時候,收到其他節(jié)點發(fā)來的block。block驗證通過后,意味著有人先于你“挖礦”成功,此時根據(jù)該block做一些數(shù)據(jù)處理,如篩選掉被該block打包了的交易等。然后回到第2步。擴展:區(qū)塊鏈的不穩(wěn)定性區(qū)塊分叉51%攻擊交易確認數(shù)軟件的軟分叉,硬分叉3.如何發(fā)起一筆比特幣交易?3.如何發(fā)起一筆比特幣交易?前置知識:數(shù)字簽名,非對稱密鑰對,私鑰,公鑰。私鑰簽名,公鑰驗簽1.生成一對非對稱密鑰對,將公鑰hash,得到地址2.通過挖礦,或讓擁有比特幣的人將比特幣發(fā)送到你的地址上 3.需要發(fā)送比特幣給其他人時,按照規(guī)則組織交易報文(一段二進制數(shù)據(jù)),報文含有你擁有的幣的信息,金額,以及要發(fā)送的地址信息等。然后使用你的地址對應的私鑰進行簽名。 4.將簽名后的報文數(shù)據(jù),發(fā)送給任意一個比特幣節(jié)點,該節(jié)點將收錄你的交易,并幫你把該交易傳遞給其他節(jié)點。5.等待區(qū)塊鏈節(jié)點打包。被打包進區(qū)塊鏈后可視為交易成功。比特幣交易要點不嚴謹?shù)恼f:比特幣存儲在“腳本”中,最常見的腳本是“地址”腳本。地址是公鑰的hash 每一筆普通交易都有一個或多個輸入和輸出。輸出即“腳本”挖礦是一筆特殊交易,沒有輸入,輸出是挖礦者的地址輸入需要引用之前的輸出,引用方法是:指明輸出的交易id和是第幾個輸出對每一個輸入,都需要用其對應的私鑰進行簽名數(shù)字簽名保證了交易不可篡改比特幣——UTXO體系 UTXO——unspenttransactionoutput,未使用輸出。每一個輸出就像一張支票一樣,只能使用一次一個2.2比特幣的utxo,要發(fā)送給別人1比特幣,剩下1.2怎么辦?方法:創(chuàng)建兩個輸出,一個是給別人的1比特幣,一個是給自己的1.2比特幣發(fā)送交易其實需要交易費用,交易費用為所有輸入的總值-所有輸出的總值礦工總是優(yōu)先打包交易費用高的交易,如果交易費用過低可能會等很久也沒有被打包以太幣——賬戶體系沒有沒有輸入輸出概念,就像銀行賬戶,分為發(fā)送者和接收者使用和實現(xiàn)更方便,但不具有utxo體系不易追蹤的特點交易費用的作用與比特幣相似,但計價方式不同,主要是因為以太幣有智能合約4.區(qū)塊鏈2.0是什么?4.區(qū)塊鏈2.0?區(qū)塊鏈1.0,數(shù)字貨幣,代表:比特幣區(qū)塊鏈2.0,智能合約,代表:以太幣智能合約即發(fā)布到區(qū)塊鏈上的一段可執(zhí)行的代碼數(shù)據(jù)每個智能合約都擁有自己的獨立數(shù)據(jù)智能合約可以實現(xiàn)數(shù)字資產(chǎn)和數(shù)據(jù)的自動化管理Codeislaw5.區(qū)塊鏈有什么應用?智能合約的簡單應用(以太坊為例)1.賭博:每個人投入一定的以太幣,抽取1人得到所有人投入的以太幣2.代幣:在智能合約之上發(fā)布自己的數(shù)字貨幣,規(guī)定總額,與以太幣的兌換比例3.游戲:在智能合約之上構(gòu)建人物等級,屬性,物品等游戲相關(guān)數(shù)據(jù),編寫游戲邏輯擴展:區(qū)塊鏈的隨機數(shù)生成問題智能合約與數(shù)字資產(chǎn)資產(chǎn)數(shù)字化房產(chǎn)交易租房續(xù)約銀行清算

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論