區(qū)塊鏈應(yīng)用技術(shù) 課件下 P2P網(wǎng)絡(luò)核心技術(shù)-區(qū)塊鏈+政務(wù)_第1頁
區(qū)塊鏈應(yīng)用技術(shù) 課件下 P2P網(wǎng)絡(luò)核心技術(shù)-區(qū)塊鏈+政務(wù)_第2頁
區(qū)塊鏈應(yīng)用技術(shù) 課件下 P2P網(wǎng)絡(luò)核心技術(shù)-區(qū)塊鏈+政務(wù)_第3頁
區(qū)塊鏈應(yīng)用技術(shù) 課件下 P2P網(wǎng)絡(luò)核心技術(shù)-區(qū)塊鏈+政務(wù)_第4頁
區(qū)塊鏈應(yīng)用技術(shù) 課件下 P2P網(wǎng)絡(luò)核心技術(shù)-區(qū)塊鏈+政務(wù)_第5頁
已閱讀5頁,還剩239頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

P2P網(wǎng)絡(luò)核心技術(shù)P2P網(wǎng)絡(luò)核心技術(shù)1.分布式哈希表2.Kademlia協(xié)議3.Gossip協(xié)議分布式哈希表分布式哈希表的基礎(chǔ):

常用的數(shù)據(jù)結(jié)構(gòu)——哈希表哈希表存儲的數(shù)據(jù)有鍵(key)和值(velue)兩部分:它通過計算一個關(guān)于鍵值的函數(shù),將所需查詢的數(shù)據(jù)映射到表中一個位置來訪問記錄。給定表M,存在函數(shù)f(key),對任意給定的關(guān)鍵字值key,代入函數(shù)后若能得到包含該關(guān)鍵字的記錄在表中的地址,則稱表M為哈希(Hash)表,函數(shù)f(key)為哈希(Hash)函數(shù)。如這個圖所示,鍵為人名,值為buckets中的電話號碼,bucket可以看作一個長度為16的數(shù)組。人名通過哈希函數(shù)轉(zhuǎn)換為數(shù)字,數(shù)字作為buckets數(shù)組的下標。分布式哈希表:存儲的鍵值對數(shù)據(jù)并不僅僅存在于一臺電腦中,而是分布在不同的節(jié)點(電腦)中。分布式哈希表有三個特性:(1)離散性:構(gòu)成系統(tǒng)的節(jié)點并沒有任何中央式的協(xié)調(diào)機制,做到了完全的去中心化。(2)伸縮性:即使有成千上萬個節(jié)點,系統(tǒng)仍然十分有效。加入的節(jié)點越多,網(wǎng)絡(luò)可以提供的服務(wù)能力越強。(3)容錯性:即使節(jié)點不斷地加入、離開或是停止工作,系統(tǒng)仍能達到一定的可靠性。Kademlia協(xié)議相比于分布式哈希表協(xié)議,Kademlia協(xié)議采用的數(shù)據(jù)結(jié)構(gòu)簡單、路由方式實現(xiàn)起來足夠靈活、具有比較好的性能并且安全性也較強。綜合起來在各種哈希表實現(xiàn)中具有很強的競爭力,成了分布式哈希表中被采用最多的技術(shù)。1.如何衡量兩個ID是否接近(Kademlia的距離衡量機制)Kademlia協(xié)議中采用了異或算法(XOR)作為距離算法來衡量兩個ID的遠近。比較兩個ID時,首先把字符串的哈希值變?yōu)槎M制表示。這里假設(shè)節(jié)點A的ID二進制表示為01010101,節(jié)點B的ID二進制表示為01000000,將兩個ID進行異或運算(對應(yīng)位置的0、1進行異或),結(jié)果為00010101,轉(zhuǎn)化為十進制為25。也就是說這兩個ID的距離用十進制表示為25。2.如何根據(jù)文件的哈希值得到文件存儲位置信息(kademlia的路由機制)理解路由機制,可以從Kademlia中k-bucket(k-桶)出發(fā)。k-桶是Kademlia論文中提出的一個概念,一個節(jié)點會有多個k-桶,不同k-桶

的區(qū)別在于離這個節(jié)點的距離不同,每個k-桶

中存放了離節(jié)點在某個距離范圍內(nèi)的其他已知節(jié)點。Kademlia協(xié)議建立在上述K-桶之上,可以發(fā)起四種消息請求。(1)PING:用來測試節(jié)點是否依然在線。(2)STORE:在某個節(jié)點中存儲一個鍵值對。(3)FIND_NODE:消息請求的接受者將返回自己K桶中離請求的節(jié)點的ID最近的K個節(jié)點。(4)FIND_VALUE:根據(jù)文件資源的KEY查找一個數(shù)據(jù)和FIND_NODE類似,如果請求接收著擁有KEY對應(yīng)的文件資源則返回數(shù)據(jù)。Gossip協(xié)議 1、在HyperledgerFabric中,節(jié)點間同步數(shù)據(jù)采用的是Gossip協(xié)議,當節(jié)點因為異常缺少賬本數(shù)據(jù)時,可以通過Gossip協(xié)議從鄰近的節(jié)點獲得賬本數(shù)據(jù),保證集群中節(jié)點賬本的一致性。 2、Gossip是一種去中心化思路的分布式協(xié)議,解決集群中的數(shù)據(jù)傳播和狀態(tài)一致性的問題。(1)協(xié)議流程

節(jié)點A向節(jié)點K發(fā)送數(shù)據(jù)有三種方式:1、push模式:

節(jié)點A將數(shù)據(jù)(key,version,value)推送給K,K更新version比自己新的數(shù)據(jù)。2、pull模式:

節(jié)點A將數(shù)據(jù)(key,version)推送給K,K將本地version比A新的數(shù)據(jù)推送給A。3、push/pull模式:

先采用push模式更新K,然后采用pull模式更新A。(2)Gossip缺陷

由于Gossip協(xié)議中,節(jié)點只會隨機向少數(shù)幾個節(jié)點發(fā)送消息,消息最終是通過多個輪次的散播而到達全網(wǎng)的,因此使用Gossip協(xié)議會造成不可避免的消息延遲。不適合用在對實時性要求較高的場景。

Gossip協(xié)議規(guī)定,節(jié)點會定期隨機選擇周圍節(jié)點發(fā)送消息,而收到消息的節(jié)點也會重復(fù)該步驟,因此就不可避免地存在消息重復(fù)發(fā)送給同一節(jié)點的情況,造成了消息的冗余,同時也增加了收到消息的節(jié)點的處理壓力。感謝觀看P2p網(wǎng)絡(luò)應(yīng)用什么是p2p網(wǎng)絡(luò)?是一種在對等者之間分配任務(wù)和工作負載的分布式應(yīng)用架構(gòu),是對等計算模型在應(yīng)用層形成的一種組網(wǎng)或網(wǎng)絡(luò)形式。定義:網(wǎng)絡(luò)的參與者共享他們所擁有的一部分硬件資源。這些共享資源通過網(wǎng)絡(luò)提供服務(wù)和內(nèi)容,能被其它對等節(jié)點直接訪問而無需經(jīng)過中間實體。P2p網(wǎng)絡(luò)應(yīng)用1.文件交換2.對等計算3.協(xié)同工作4.搜索引擎5.流媒體1.文件交換過去下載方式絕大多數(shù)屬于超文本文件傳輸協(xié)議或者文件傳輸協(xié)議,也就是我們常說的HTTP

和FTP協(xié)議。P2P方式與傳統(tǒng)方式區(qū)別:用戶不是從其他網(wǎng)站的服務(wù)器搜索和下載資源,而是從任何一個在線網(wǎng)友的計算機中直接下載,當然,其他網(wǎng)站的服務(wù)器也可看作是一個對等點,真正實現(xiàn)個人計算機與服務(wù)器平起平坐。2.對等計算P2P用于對等計算的優(yōu)勢:每個對等點不再只是單純地接受計算任務(wù),它可以根據(jù)自身的情況,再搜索其他空閑節(jié)點,把接受的任務(wù)分發(fā)下去,中間結(jié)果層層上傳,最后到達任務(wù)分發(fā)節(jié)點。對等點之間還可以直接交換中間結(jié)果,協(xié)作計算。用這種方式,可以合理整合閑散的計算能力和資源,使總體計算能力大規(guī)模提升,獲得非??捎^的計算性能/價格比。3.協(xié)同工作利用P2P技術(shù),互聯(lián)網(wǎng)上任意兩臺PC都可以建立實時的聯(lián)系,可以實現(xiàn)一個安全、共享的虛擬空間。P2P協(xié)同計算包括協(xié)作計算、網(wǎng)格和數(shù)據(jù)內(nèi)容網(wǎng)格。P2P技術(shù)的出現(xiàn),使得互聯(lián)網(wǎng)上任意兩臺PC都可建立實時的聯(lián)系,建立了這樣一個安全、共享的虛擬空間,人們可以進行各種各樣的活動,這些活動可是同時進行,也可以交互進行。4.搜索引擎P2P技術(shù)的另一個優(yōu)勢是開發(fā)出強大的搜索工具。P2P技術(shù)使用戶能夠深度搜索文檔,而且這種搜索無須通過Web服務(wù)器,也可以不受信息文檔格式和宿主設(shè)備的限制,可達到傳統(tǒng)目錄式搜索引擎(只能搜索到20%、30%的網(wǎng)絡(luò)資源)無可比擬的深度(理論上將包括網(wǎng)絡(luò)上的所有開放的信息資源)。5.流媒體單源的P2P流媒體系統(tǒng)建立在應(yīng)用層組播技術(shù)的基礎(chǔ)之上。服務(wù)器和所有客戶節(jié)點組織成組播樹,組播樹的中間節(jié)點接受來自父節(jié)點組播的媒體數(shù)據(jù),同時將數(shù)據(jù)以組播的方式傳送給子節(jié)點。多源的P2P流媒體傳輸系統(tǒng),則是由多個發(fā)送者以單播的方式同時向一個接收者發(fā)送媒體數(shù)據(jù)。感謝觀看P2P在區(qū)塊鏈中的作用目錄(1)為什么區(qū)塊鏈會選擇P2P作為網(wǎng)絡(luò)基礎(chǔ)(2)P2P網(wǎng)絡(luò)中節(jié)點類型(3)P2P在比特幣中的作用為什么區(qū)塊鏈會選擇P2P作為網(wǎng)絡(luò)基礎(chǔ)因為他是無中心服務(wù)器的,中心服務(wù)器就意味著,當受到攻擊的時候,中心機,整個網(wǎng)絡(luò)和服務(wù)就會出現(xiàn)問題服務(wù)器一旦宕機。

而區(qū)塊鏈的核心是去中心化,這和P2P網(wǎng)絡(luò)的觀念不約而同,所以這也就是為什么區(qū)塊鏈會選擇P2P作為網(wǎng)絡(luò)基礎(chǔ)。P2P網(wǎng)絡(luò)的三個特性:離散性、容錯性、伸縮性比特幣P2P網(wǎng)絡(luò)根據(jù)功能不同,各節(jié)點可能具有不同的分工。每個比特幣節(jié)點都是路由、區(qū)塊鏈數(shù)據(jù)庫、挖礦、錢包服務(wù)的功能集合。一個全節(jié)點包括如圖所示的四個功能:錢包網(wǎng)絡(luò)路由節(jié)點完整區(qū)塊鏈礦工P2P網(wǎng)絡(luò)中的節(jié)點類型下圖描述了擴展比特幣網(wǎng)絡(luò)中常見的節(jié)點類型。網(wǎng)絡(luò)路由節(jié)點完整區(qū)塊鏈礦工網(wǎng)絡(luò)路由節(jié)點錢包獨立礦工

包含具有完整區(qū)塊鏈副本的挖礦功能、以及比特幣P2P網(wǎng)絡(luò)路由節(jié)點。輕量(SPV)錢包

包含不具有區(qū)塊鏈的錢包以及比特幣P2P網(wǎng)絡(luò)節(jié)點。Pool服務(wù)器Startum服務(wù)器礦池協(xié)議服務(wù)器

將運行其他協(xié)議的節(jié)點(例如礦池挖礦節(jié)點、Stratum節(jié)點),連接至P2P網(wǎng)絡(luò)的網(wǎng)關(guān)路由器。網(wǎng)絡(luò)路由節(jié)點完整區(qū)塊鏈完整區(qū)塊鏈節(jié)點

在比特幣P2P網(wǎng)絡(luò)中,包含完整區(qū)塊鏈及網(wǎng)絡(luò)路由節(jié)點。首先看一下P2P的整體技術(shù)點:(1)如何發(fā)現(xiàn)節(jié)點(peers)在P2P網(wǎng)絡(luò)中,發(fā)現(xiàn)節(jié)點是最開始、最重要和最難的一部分;(2)握手協(xié)議發(fā)現(xiàn)節(jié)點之后,就要進行握手鏈接,確定節(jié)點之間的通信協(xié)議等(3)地址廣播及發(fā)現(xiàn)鏈接建立之后,就可以正常的進行通信了;以上三點解決之后,基本就可以實現(xiàn)一個簡單的P2P網(wǎng)絡(luò)。P2P在比特幣中的作用當一個新的網(wǎng)絡(luò)節(jié)點啟動后,為了能夠參與協(xié)同運作,它必須至少發(fā)現(xiàn)一個其他網(wǎng)絡(luò)中的節(jié)點并與之建立連接。比特幣的網(wǎng)絡(luò)拓撲結(jié)構(gòu)不基于地理位置,因此可以隨機的選擇節(jié)點建立連接。(1)節(jié)點發(fā)現(xiàn)(1)利用種子節(jié)點:

比特幣的客戶端會維護一個列表,列表中記錄了長期穩(wěn)定運行的節(jié)點,這些節(jié)點也被稱之為種子節(jié)點。在比特幣里,可以通過“-dnsseed”選項來指定是否使用種子節(jié)點,該選項默認是開啟的。比特幣中的節(jié)點發(fā)現(xiàn)有兩種方式(2)節(jié)點引薦:將當前啟動節(jié)點引薦給其他節(jié)點的方式??梢酝ㄟ^“-seednode”選項指定一個節(jié)點的ip,之后新節(jié)點將和該節(jié)點建立連接,將該節(jié)點作為DNS種子節(jié)點,在引薦信息形成之后斷開與該節(jié)點的連接,并與新發(fā)現(xiàn)的節(jié)點連接。比特幣中的節(jié)點發(fā)現(xiàn)有兩種方式節(jié)點A節(jié)點Bversionverackversionverack對等節(jié)點之間的初始“握手”通信(2)握手協(xié)議過程如下:節(jié)點向?qū)Φ裙?jié)點發(fā)送version消息開始握手,此消息中包含如下一些內(nèi)容PROTOCOL_VERSION:當前節(jié)點的比特幣P2P協(xié)議的版本號;nLocalServices:節(jié)點支持的本地服務(wù)列表,目前僅支持NODE_NETWORK;nTime:當前時間;addrYou:當前節(jié)點可見的遠程節(jié)點的IP地址。當建立?個或多個連接后,新節(jié)點將?條包含IP地址的addr消息發(fā)送給其相鄰節(jié)點。相鄰節(jié)點再將此條addr消息依次轉(zhuǎn)發(fā)給它們各?的相鄰節(jié)點,從而保證新節(jié)點信息被多個節(jié)點所接收、保證連接更穩(wěn)定。節(jié)點地址廣播及發(fā)現(xiàn)(3)地址廣播及發(fā)現(xiàn)節(jié)點A節(jié)點Baddraddraddrgetaddraddr感謝觀看區(qū)塊鏈共識的概念與特點目錄什么是區(qū)塊鏈共識共識機制的分類區(qū)塊鏈中常見的共識機制共識機制的特點什么是區(qū)塊鏈共識共識機制是區(qū)塊鏈的核心基石,是區(qū)塊鏈系統(tǒng)安全性的重要保障。區(qū)塊鏈是一個去中心化的系統(tǒng),共識機制通過數(shù)學的方式,讓分散在全球各地成千上萬的節(jié)點就區(qū)塊的創(chuàng)建達成一致的意見。共識機制中還包含了促使區(qū)塊鏈系統(tǒng)有效運轉(zhuǎn)的激勵機制,是區(qū)塊鏈建立信任的基礎(chǔ)。共識機制的分類根據(jù)共識算法解決問題的方式,我們可以大致將其分為兩類:驗證型共識算法投票型共識算法除了根據(jù)共識的實現(xiàn)來分類,我們還可以通過對共識機制是否是拜占庭容錯來進行分類。而像PBFT,dPOS,Tendermint等,都是拜占庭容錯。共識機制的分類區(qū)塊鏈公鏈常用的共識機制有POW、POS、DPOS、BFT以及多種機制混合而成的共識機制等。共識是指系統(tǒng)節(jié)點達成一致的過程,而分布式系統(tǒng)的一致性體現(xiàn)在三個方面:

?

最終性(Termination):所有進程最終會在有限步數(shù)中結(jié)束并選取一個值,算法不會無盡執(zhí)行下去。

?

統(tǒng)一性(Agreement):所有進程必須同意同一個值。

?

合法性(Validity):輸出內(nèi)容是輸入內(nèi)容按照系統(tǒng)規(guī)則生成的,且輸出內(nèi)容合法。區(qū)塊鏈中常見的共識機制1.Pow工作量證明2.PoS權(quán)益證明3.DPoS委托權(quán)益證明4.容量證明/空間和時間證明

5.唯一節(jié)點列表(UNL)6.已用時間證明7.權(quán)威證明8.有向無環(huán)圖共識機制的特點例如:POW共識機制比特幣采用的POW工作量證明共識機制,在生成區(qū)塊時,系統(tǒng)讓所有節(jié)點公平地去計算一個隨機數(shù),最先尋找到隨機數(shù)的節(jié)點即是這個區(qū)塊的生產(chǎn)者,并獲得相應(yīng)的區(qū)塊獎勵。因此,比特幣的POW共識機制門檻很低,無需中心化權(quán)威的許可,人人都可以參與,并且每一個參與者都無需身份認證。共識機制的特點

POW共識的優(yōu)點可歸納為:算法簡單,容易實現(xiàn),節(jié)點可自由進入,去中心化程度高破壞系統(tǒng)需要投入極大的成本,安全性極高節(jié)點間無需交換額外的信息即可達成共識,整個過程不需要人的參與

為了保證去中心化程度,區(qū)塊的確認時間難以縮短沒有最終性共識機制的特點區(qū)塊鏈的共識機制具備“少數(shù)服從多數(shù)”以及“人人平等”的特點,“人人平等”是當節(jié)點滿足條件時,所有節(jié)點都有權(quán)優(yōu)先提出共識結(jié)果、直接被其他節(jié)點認同后并最后有可能成為最終共識結(jié)果。感謝觀看pOW共識——工作量共識目錄概念POW算法原理存在的問題POW工作量證明的三要素POW工作量證明流程POW共識記賬POW的優(yōu)點POW的缺點工作量證明是需要各個節(jié)點來進行一個較難完成但較容易驗證的工作來實現(xiàn)共識。PoW=工作量證明=挖礦比特幣網(wǎng)絡(luò)中的計算是根據(jù)上一個區(qū)塊的信息來確定出下一個待挖區(qū)塊的目標結(jié)果值。比特幣PoW計算公式如下:概念PoW求解過程中當網(wǎng)絡(luò)中有2個或2個以上的節(jié)點在同一區(qū)塊的基礎(chǔ)上算出了哈希,并且都向網(wǎng)絡(luò)中廣播了自己打包的區(qū)塊后,區(qū)塊鏈則可認為是產(chǎn)生了分叉,需要確定哪一個才是主鏈,即分叉選擇策略。PoW也在一定程度上避免了女巫攻擊。PoW算法原理(1)“無意義”的能源浪費為了獲取“挖礦”收益的節(jié)點會進行大量的哈希運算。因此,很多人此前在研究如何將POW的計算內(nèi)容從無意義的哈希運算,應(yīng)用于更為實際的運算場景。(2)挖礦相關(guān)的攻擊盡管比特幣的PoW在事實上較為成功,相較于PoS等共識從實踐的角度來看更為穩(wěn)健,但不可否認的是PoW也存在較多的安全風險需要防控。存在的問題常見的威脅以及相應(yīng)的對策如右側(cè)表所示。POW工作量證明的三要素工作機制:為了使區(qū)塊鏈交易數(shù)據(jù)記錄在區(qū)塊鏈上并在一定時間內(nèi)達到一致(共識),POW提供了一種思路,即所有區(qū)塊鏈的網(wǎng)絡(luò)節(jié)點參與者進行競爭記賬。1、工作量證明函數(shù)

在比特幣中使用的是SHA256算法函數(shù),是密碼哈希函數(shù)家族中輸出值為256位的哈希算法。2、區(qū)塊

區(qū)塊頭在前言中已經(jīng)做詳細介紹,這里我們就介紹下區(qū)塊體的Merkle樹算法。3、難度值

關(guān)于難度值,我們直接看公式:

新難度值=舊難度值*(過去2016個區(qū)塊花費時長/20160分鐘)

tips:難度值是隨網(wǎng)絡(luò)變動的,目的是為了在不同的網(wǎng)絡(luò)環(huán)境下,確保每10分鐘能生成一個塊。

新難度值解析:撇開舊難度值,按比特幣理想情況每10分鐘出塊的速度,過去2016個塊的總花費接近20160分鐘,這樣,這個值永遠趨近于1。POW工作量證明流程POW共識記賬前面三部分中講解的是單節(jié)點工作量證明流程,有了這個計算流程,我們就得將其使用起來,在比特幣平臺中,中本聰就是運用的pow工作量證明來使全網(wǎng)節(jié)點達到51%及以上的共識記賬,那么POW工作量證明共識是如何記賬的?總結(jié)下來大概有六點。POW的優(yōu)點完全去中心化(任何人都可以加入);節(jié)點自由進出,容易實現(xiàn);破壞系統(tǒng)花費的成本巨大。POW的缺點對節(jié)點的性能網(wǎng)絡(luò)環(huán)境要求高;浪費資源;每秒鐘最多只能做七筆交易,效率低下;礦場的出現(xiàn)違背了去中心的初衷;不能確保最終一致性;利益驅(qū)動性降低導致曠工數(shù)量減少從而導致比特幣網(wǎng)絡(luò)癱瘓。代碼如下代碼如下感謝觀看POS(權(quán)益證明)目錄權(quán)益證明(POS)Follow-the-Satoshi算法特點缺陷POS的長程攻擊

權(quán)益證明與PoW競爭挖礦造成的能源浪費和效率低下不同,PoS一般以節(jié)點投入的通證數(shù)量和持有通證的時間長短來計算可記賬權(quán)的比率。與PoW投入成本進行算力競爭不同,PoS的博弈思想是持有通證數(shù)量越多的人越值得信賴。權(quán)益證明(POS)

POS一并解決了POW浪費能源和算力集中兩個痛點,理論上還能縮短了共識時間,但同時也丟棄了POW的某些優(yōu)勢,因此更容易分叉,一筆交易需要等待更多確認才能確保安全,而POS最大的問題是其安全性和容錯性還沒有得到嚴格的數(shù)學論證。PoS機制并沒有從根本上解決PoW機制難以應(yīng)用于商業(yè)領(lǐng)域的問題。為了能在純粹PoS機制下更好的選擇出塊者,Bentov等人提出了Follow-the-Satoshi算法,如下圖。Follow-the-Satoshi算法 POS的通證在整個區(qū)塊鏈體系中更像是以股份或存款的形式而存在:通過質(zhì)押通證來獲得“分紅”或“利息”。這種方式的通證經(jīng)濟體系會更易于使發(fā)行者,持有者,開發(fā)者等的利益綁在“一條船”上,從而使生態(tài)體系具有較強的生命力和適應(yīng)力。特點缺陷無權(quán)益問題,是用戶在POS中可以同時在兩個分叉上面下注不會受到損失,這樣,無論哪一個分叉后面被認為主鏈,該用戶都可以獲得獎勵而沒有機會成本的損失。解決思路:一、對在同一個區(qū)塊上面進行多次下注的,引入一個懲罰機制。二、無論是否多次下注,“押錯”主鏈的用戶都會受到懲罰。除此之外,還有其他一些解決辦法。例如Peercoin在PoS共識基礎(chǔ)上還綜合使用了PoW來控制提案的發(fā)送,NXT的方式是不引入挖礦機制,所有的NXT一次性創(chuàng)建在創(chuàng)世區(qū)塊中,通過公式確定未來的區(qū)塊由哪個節(jié)點來生成。在PoS鏈上線的早期,很有可能有一個階段一小部分礦工持有了大部分的通證,那么在未來的某個時候掌握了早期通證的這個或這些人會從鏈的早期開始重新分叉一個新鏈出來實現(xiàn)雙花,而且這個新鏈的接下來很多區(qū)塊的挖礦收益可能仍然會由這些作惡礦工所掌握。POS的長程攻擊感謝觀看DPOS共識機制目錄DPOS共識的目標兩個原則原理DPOS優(yōu)點、缺點、特點DPOS爭論:去中心化問題DPOS共識的目標DPoS算法是BM根據(jù)當時PoW、PoS的不足而改進的共識算法,它的目的就是為了提高性能,也就是交易確認時間短。兩個原則1、投票選舉過程?定要保證最大權(quán)益所有者最終能控制全網(wǎng)。2、與PoW、PoS?樣,所有節(jié)點僅承認“最長”鏈。原理step1.全網(wǎng)持有代幣的人可以通過投票系統(tǒng)選舉出一定數(shù)量的節(jié)點作為區(qū)塊生產(chǎn)者。step2.被選舉的節(jié)點相互協(xié)作,按照一定的順序,輪流進行記賬。所選擇的生產(chǎn)者會根據(jù)從塊時間導出的偽隨機數(shù)進行混合。以便保證出塊者之間的連接盡量平衡。step3.記賬21個區(qū)塊生產(chǎn)者,不僅記賬,還需要提供EOS全鏈所需要的計算和網(wǎng)絡(luò)資源。DPOS優(yōu)點1)記賬節(jié)點減少,交易速度更快,EOS號稱可達百萬TPS;

2)更加安全,一般不不會發(fā)生鏈分叉并不可逆,確保最終一致性;

3)相對PoW,解決了資源消耗問題。DPOS缺點DPOS被普遍質(zhì)疑過于中心化代理記賬節(jié)點選舉過程中存在巨大的人為操作空間。DPOS特點特點:出塊時間超短,效率超高,幾乎不會分叉。DPOS爭論:去中心化問題如果為了提升性能,即一致性的效率,勢必會犧牲其他兩項。這也會引出有關(guān)DPoS的一個爭論:中心化問題。這是DPoS算法的優(yōu)勢,也是DPoS算法的劣勢。很多情況下,投票并不能解決問題。

總結(jié)DPoS共識機制將“礦池”納入系統(tǒng)內(nèi)部,并把它們統(tǒng)稱為見證節(jié)點。可以認為DPoS本身就是帶中心化思路的共識機制。感謝觀看實用拜占庭容錯協(xié)議(PBFT)目錄什么是PBFT?拜占庭容錯系統(tǒng)實用的拜占庭容錯系統(tǒng)PBFT消息傳播過程什么是PBFT?它是基于領(lǐng)導者且非分叉的(不同于彩票式算法)它不支持開放注冊,但是管理員可以添加和刪除節(jié)點它要求完全對等(所有節(jié)點必須連接到所有其他節(jié)點)拜占庭容錯系統(tǒng)1.所有非拜占庭節(jié)點使用相同的輸入信息,產(chǎn)生同樣的結(jié)果;2.如果輸入的信息正確,那么所有非拜占庭節(jié)點必須接收這個信息,并計算相應(yīng)的結(jié)果。在拜占庭系統(tǒng)的實際運行過程中,每個請求還需要滿足兩個指標。安全性:任何已經(jīng)完成的請求都不會被更改,它可以在以后請求到;活性:可以接受并且執(zhí)行非拜占庭客戶端的請求,不會被任何因素而導致非拜占庭客戶端的請求不能執(zhí)行。拜占庭系統(tǒng)普遍采用的假設(shè)條件目前來說包括四種。原始的拜占庭容錯系統(tǒng)由于需要展示其理論上的可行性而缺乏實用性。另外,還需要額外的時鐘同步機制支持,算法的復(fù)雜度也是隨節(jié)點增加而指數(shù)級增加。實用的拜占庭容錯系統(tǒng)PBFT是一類狀態(tài)機拜占庭系統(tǒng),要求共同維護一個狀態(tài),所有節(jié)點采取的行動一致。為此,需要運行三類基本協(xié)議。一致性協(xié)議:解決如何達成共識檢查點協(xié)議:類似于操作系統(tǒng)的還原點視圖更換協(xié)議:系統(tǒng)的每個服務(wù)器節(jié)點在同樣的配置信息下工作,該配置信息被稱為“視圖”。如圖,PBFT協(xié)議將共識過程分為了5個階段(如果不算與客戶端交互的階段,則可視為3個階段)。Request階段 Pre-prepare階段 Prepare階段 Commit階段 Reply階段PBFT消息傳播過程除了以上階段流程外,協(xié)議運行過程中還涉及幾個重要概念:(1)水位(2)檢查點(Checkpoint)(3)視圖切換(4)批量(Batch)感謝觀看區(qū)塊鏈之智能合約目錄起源和定義工作原理應(yīng)用場景起源和定義智能合約是一系列以數(shù)字形式指定的承諾,包括各方履行這些承諾的協(xié)議智能合約的定義:是一種旨在以信息化方式傳播、驗證或執(zhí)行合的計算機協(xié)議。智能合約目的:智能合約的目的是提供優(yōu)于傳統(tǒng)合約的安全方法,并減少與合約相關(guān)的其他交易成本。工作原理基于區(qū)塊鏈的智能合約構(gòu)建及執(zhí)行分為以下幾步:第一步、多方用戶共同參與制定一份智能合約第二步、合約通過P2P網(wǎng)絡(luò)擴散并存入?yún)^(qū)塊第三步、區(qū)塊鏈構(gòu)建的智能合約自動執(zhí)行應(yīng)用場景一、金融領(lǐng)域:證券、保險、貿(mào)易金融等。二、物聯(lián)網(wǎng)(IoT)領(lǐng)域。起源和定義四、管理領(lǐng)域:數(shù)字資產(chǎn)及版權(quán)管理、組織管理、政務(wù)管理等。三、能源領(lǐng)域。感謝觀看用智能合約處理價值目錄通證,價值的數(shù)字表示物智能合約的價值以太坊——智能合約最好的載體一個簡單的智能合約:Faucet通證,價值的數(shù)字表示物在《區(qū)塊鏈超入門》中,方軍提出,區(qū)塊鏈的基本功能是三個部分:1)去中心化地進行價值表示的功能;2)進行價值轉(zhuǎn)移的功能;3)價值表示物即通證(Token)通證,價值的數(shù)字表示物令牌系統(tǒng)TokenSystems鏈上令牌系統(tǒng)有很多應(yīng)用,從代表如美元或黃金等資產(chǎn)的子貨幣到公司股票,代表智能資產(chǎn)的單獨令牌,安全的不可偽造的優(yōu)惠券,甚至與傳統(tǒng)價值完全沒有關(guān)聯(lián)的令牌系統(tǒng),如積分獎勵。通證,價值的數(shù)字表示物一般來講,在區(qū)塊鏈中,通證是價值的數(shù)字表示物。它可以指代門票、供應(yīng)鏈單據(jù)、股票、資產(chǎn)憑證、忠誠度積分或其他基于區(qū)塊鏈的產(chǎn)品與服務(wù)。

通證,價值的數(shù)字表示物在以太坊的通證編程實踐中,最主要的分類是可互換的ERC20標準與不可互換的ERC721標準。古董、藝術(shù)品等收藏品通常是不可互換的,比如以太坊上一個游戲迷戀貓中的每一只貓都是獨一無二的。智能合約的價值智能合約的價值在于,降低了交易成本,更高效且確保安全的前提下進行交易。將之前麻煩的程序統(tǒng)統(tǒng)交給代碼進行處理,而且代碼的犯錯概率要遠小于人為。以太坊——智能合約最好的載體在以太坊上面,任何人都能夠創(chuàng)建自己想要做的去中心化的智能合約。智能合約?旦被創(chuàng)建之后,就無需中間機構(gòu)參與,可以自動執(zhí)行,并且沒有人可以操縱其運行。以太坊——智能合約最好的載體另外,在以太坊上面,你可以編寫資產(chǎn)代碼,創(chuàng)建新的區(qū)塊鏈資產(chǎn),簡單說來,就是你可以在以太坊平臺上面發(fā)行自己的代幣,代幣的名稱、發(fā)行機制、發(fā)行數(shù)量、代幣應(yīng)用場景都可以由發(fā)行者本人設(shè)計。一個簡單的智能合約:Faucet在以太坊區(qū)塊鏈網(wǎng)絡(luò)中,以太幣(Ether)是一種特殊的通證,它被設(shè)計為這個全球計算機的燃料(gas),用戶在以太坊網(wǎng)絡(luò)中執(zhí)行各種計算,均要用以太幣相應(yīng)地支付燃料費。智能合約特點規(guī)范性;不可逆性;不可違約性;匿名性。

智能合約的應(yīng)用1、數(shù)字身份智能合約可以讓用戶擁有和控制自己的數(shù)字身份,比如個人數(shù)據(jù)、信譽以及數(shù)字資產(chǎn)。2、證券在金融行業(yè)里,智能合約對于資本的管理具有非常重大的意義。3、記錄智能合約需要能夠在分布式賬本上存儲數(shù)據(jù),并且不會減緩性能或者破壞數(shù)據(jù)隱私。智能合約的應(yīng)用4、抵押貸款傳統(tǒng)的抵押貸款流程?般是人工完成的且容易出錯。有了智能合約,就可以自動流程內(nèi)的每?個環(huán)節(jié),包括支付處理,財產(chǎn)扣押。5、土地所有權(quán)記錄智能合約可以推動財產(chǎn)轉(zhuǎn)讓,以提高交易的完整性、效率和透明度。世界上的國家,包括格魯吉亞、加納和洪都拉斯,都已經(jīng)把區(qū)塊鏈應(yīng)用于土地所有權(quán)記錄。感謝觀看用智能合約處理業(yè)務(wù)邏輯問題描述傳統(tǒng)交易和智能合約交易區(qū)別? 1.智能合約中的懲罰等條件是提前進行明晰的,適用于客觀的請求場景。而傳統(tǒng)合約則更適用于主觀請求場景。

2.智能合約的成本要明顯低于傳統(tǒng)合約成本。因為智能合約中的各項執(zhí)行條件等已經(jīng)被提前寫入代碼,執(zhí)行時候不需要再耗費更多的人力物力即可進行。 3.智能合約可以用于提前預(yù)防,而傳統(tǒng)合約則是事后判斷。問題描述

在以太坊區(qū)塊鏈的環(huán)境中,每對地址/私鑰代表一個用戶,每個用戶有自己的錢、資產(chǎn)或權(quán)力,智能合約可以用來處理常見的業(yè)務(wù)邏輯。

接下來,我們用智能合約示例來看三個業(yè)務(wù)邏輯:購物、拍賣與投票。為了便于理解,我們所討論的都是簡化場景。另外我們還討論了用數(shù)字簽名來做一個區(qū)塊鏈上的支票的案例。

用智能合約處理購物購物場景在簡化的購物場景中也會至少包括賣家與買家兩家。在面對面購物時,賣家給出商品,買家付錢,一手交錢一手交貨。在賣家和買家不見面且相互不信任時,如何進行交易就成為一個難題。那么,能否用智能合約來充當中間人呢?以下是一個簡化的遠程購物示例。遠程購物示例買家賣家創(chuàng)建賣單-2020

賣家金庫買家下單購買-2040-20確認收貨100-10其他狀態(tài)智能合約金庫區(qū)塊鏈帳本購物場景

如圖所示,我們創(chuàng)建一個智能合約來實現(xiàn)遠程安全購物。智能合約運行在區(qū)塊鏈上,這個智能合約有兩種功能:一是實現(xiàn)業(yè)務(wù)邏輯,二是它可以作為不受賣方與買家影響的金庫,獨立、可信地管理資金。這個智能合約有四種狀態(tài),分別是:已創(chuàng)建賣單、已下單購買、已確認收貨以及其他。示例代碼contractPurchase{uintpublicvalue;//此參數(shù)為商品的定價addresspayablepublicseller;//賣主addresspayablepublicbuyer;//買主enumState{Created,Locked,Release,Inactive}Statepublicstate;//缺省為CreatedmodifieronlyBuyer(){…}modifieronlySeller(){…}modifierinState(State_state){…}//這是智能合約的構(gòu)造函數(shù),賣家創(chuàng)建這個智能合約時,//需要向智能合約轉(zhuǎn)入以太幣資金。示例代碼//msg.value即為轉(zhuǎn)入的以太幣資金,這是抵押的資金。//這個抵押的資金是商品價格的兩倍,因此也就賦值商品定價參數(shù)。constructor()publicpayable{seller=msg.sender;value=msg.value/2;require((2*value)==msg.value,"Valuehastobeeven.");}//在買家下單前,賣家可以取消商品functionabort()public實列代碼onlyBuyer inState(State.Locked) { state=State.Release; buyer.transfer(value); } //賣家調(diào)用此函數(shù),取回雙倍抵押的資金、貨款 //此數(shù)值為商品價格的三倍 functionrefundSeller() public示例代碼onlySellerinState(State.Created){state=State.Inactive;seller.transfer(address(this).balance);}}用智能合約處理拍賣拍賣場景

由智能合約主持一個拍賣,在競標的時間段內(nèi),競標者可以向智能合約轉(zhuǎn)入以太幣資金,表示自己參與競標。在競標結(jié)束后,投標金額最高的競標者獲勝。示例代碼contractSimpleAuction{addresspayablepublicbeneficiary;//投標的發(fā)起人(受益人)uintpublicauctionEndTime;//拍賣截止時間//在部署這個智能合約時,需要指定受益人、截止時間constructor(uint_biddingTime,addresspayable_beneficiary)public{beneficiary=_beneficiary;auctionEndTime=now+_biddingTime;}實例代碼//拍賣的相關(guān)狀態(tài) //當前的最高競標者、其金額 addresspublichighestBidder; uintpublichighestBid; //可以取回自己資金的競標者名單 mapping(address=>uint)pendingReturns; //拍賣狀態(tài),缺省為`false`即未結(jié)束 boolended; //任何人都可以調(diào)用bid()函數(shù)競標 //調(diào)用此函數(shù)時要相應(yīng)地轉(zhuǎn)入競標資金msg.value

實例代碼functionbid()publicpayable{ require( now<=auctionEndTime, "Auctionalreadyended." ); require( msg.value>highestBid, "Therealreadyisahigherbid." );if(highestBid!=0){ pendingReturns[highestBidder]+=highestBid; }示例代碼highestBidder=msg.sender; highestBid=msg.value; emitHighestBidIncreased(msg.sender,msg.value); } //已經(jīng)不是最高競標者的人可以用withdraw()函數(shù)取回自己的資金 functionwithdraw()publicreturns(bool){ uintamount=pendingReturns[msg.sender]; if(amount>0){ pendingReturns[msg.sender]=0;

實例代碼if(!msg.sender.send(amount)){ pendingReturns[msg.sender]=amount; returnfalse; } } returntrue; }

//調(diào)用此函數(shù)來結(jié)束拍賣,并將最高競標人的資金轉(zhuǎn)給受益人 functionauctionEnd()public{實例代碼 //1.執(zhí)行條件:拍賣時間段已經(jīng)結(jié)束,且此函數(shù)還未被調(diào)用過require(now>=auctionEndTime,"Auctionnotyetended."); require(!ended,"auctionEndhasalreadybeencalled."); //2.結(jié)束拍賣,將資金轉(zhuǎn)給受益人 ended=true; beneficiary.transfer(highestBid); }}用智能合約處理投票投票場景

智能合約還可以用來資金以外的權(quán)利、權(quán)益。接下來,我們來看用智能合約來編寫一個投票系統(tǒng)。投票的發(fā)起方用區(qū)塊鏈智能合約發(fā)起一個投票,對包括A、B、C、D等提案進行投票。投票發(fā)起方還要劃定有權(quán)投票的人員范圍,即賦予相關(guān)人投票權(quán)。

這個投票還有一個規(guī)則是,投票人可以將自己的票委托給其他人,由他代為投票。投票過程示例示例代碼contractBallot{//投票人的數(shù)據(jù)結(jié)構(gòu)structVoter{uintweight;//投票人持有的含委托的總票數(shù)boolvoted;//若為true,表示已投票addressdelegate;//投票權(quán)的被委托人uintvote;//所投的提案}//存儲所有的投票人信息mapping(address=>Voter)publicvoters;//提案的數(shù)據(jù)結(jié)構(gòu)示例代碼structProposal{bytes32name;//提案名稱uintvoteCount;//提案所獲票數(shù)}//存儲所有提案Proposal[]publicproposals;//此投票的管理者addresspublicchairperson;//此為智能合約的構(gòu)造函數(shù)//輸入值是投票的提案,我們假設(shè)分別為A、B、C、D//此投票的管理者就是這個智能合約的創(chuàng)建者示例代碼constructor(bytes32[]memoryproposalNames)public{chairperson=msg.sender;voters[chairperson].weight=1;for(uinti=0;i<proposalNames.length;i++){proposals.push(Proposal({name:proposalNames[i],voteCount:0}));}}示例代碼//投票的管理者可以調(diào)用此函數(shù),賦予投票人投票權(quán)functiongiveRightToVote(addressvoter)public{require(msg.sender==chairperson,"Onlychairpersoncangiverighttovote.");require(!voters[voter].voted,"Thevoteralreadyvoted.");require(voters[voter].weight==0);voters[voter].weight=1;}示例代碼//通過此函數(shù),投票人把自己的投票權(quán)委托給他人functiondelegate(addressto)public{//如果你已經(jīng)投票或已經(jīng)委托,那么提示你已經(jīng)投票Voterstoragesender=voters[msg.sender];require(!sender.voted,"Youalreadyvoted.");//你也不能把投票權(quán)委托給自己require(to!=msg.sender,"Self-delegationisdisallowed.");while(voters[to].delegate!=address(0)){to=voters[to].delegate;require(to!=msg.sender,"Foundloopindelegation.");}

示例代碼//執(zhí)行委托投票過程,分兩種情況://1)如果被委托人已經(jīng)投票,那么他所投提案的得票直接加一//2)如果被委托人尚未投票,那么他的投票權(quán)重加一,在稍后他投票時,權(quán)重為N則代表票數(shù)為N。sender.voted=true;sender.delegate=to;Voterstoragedelegate_=voters[to];if(delegate_.voted){proposals[delegate_.vote].voteCount+=sender.weight;}else{delegate_.weight+=sender.weight;}}示例代碼//投票函數(shù)//如果沒有人被委托,那么投出自己的一票//如果被委托,那么投出自己持有的所有票數(shù)functionvote(uintproposal)public{Voterstoragesender=voters[msg.sender];require(sender.weight!=0,"Hasnorighttovote");require(!sender.voted,"Alreadyvoted.");sender.voted=true;sender.vote=proposal;proposals[proposal].voteCount+=sender.weight;}示例代碼//調(diào)用此函數(shù),可以看到贏得投票的提案是什么functionwinningProposal()publicviewreturns(uintwinningProposal_){uintwinningVoteCount=0;for(uintp=0;p<proposals.length;p++){if(proposals[p].voteCount>winningVoteCount){winningVoteCount=proposals[p].voteCount;winningProposal_=p;}}}}Part4用智能合約處理支票支票場景我們也可以用智能合約來實現(xiàn)支票的功能,它利用了區(qū)塊鏈上的用私鑰簽名的數(shù)字簽名不可否認的特性。支票的原本含義是,你持有這張我簽名的紙條,就可以找我兌換相應(yīng)的資金。接下來我們來看看,如何用智能合約實現(xiàn)區(qū)塊鏈上的數(shù)字支票。1.對一個消息簽名,同意一筆支付付款人收款人2.將對應(yīng)的款項存到智能合約3.向智能合約出示簽名消息4.智能合約驗證,將款項支付給收款人感謝觀看!智能合約的編寫、部署與交互

目錄1.Solidity語言概述2.編譯器remix部署與使用3.Solidity語法4.使用Solidity開發(fā)智能合約1.Solidity語言概述

Solidity是用于編寫智能合約(smartcontract)的語言,從語法上和python,javascript類似,相比主流編程語言缺少類似多線程,并發(fā)等高級特性。

Solidity的特點: 1.Solidity源文件通常以.sol為后綴。2.有特殊的Address的類型。3.有異常出現(xiàn),所有執(zhí)行都會被撤回2.編譯器remix部署與使用Remix在線編譯器:/2.編譯器remix部署與使用remix下載:1.準備一臺虛擬機,需要先關(guān)閉防火墻,提前下好Chrome、Docker2.啟動docker服務(wù)

命令:#systemctlstartdocker.service3.載入dockerimage并打上tag

命令:#dockerload</home/blockchain/images/remix-ide.tar#dockertagf74866f6d042docker.io/remixproject/remix-ide:latest4.生成并運行remix-idedocker容器

命令:#dockerrun-p8080:80remixproject/remix-ide:latest2.編譯器remix部署與使用5.通過Chrome瀏覽器訪問remix-ide,Chrome中輸入:8080remix-ide首頁2.編譯器remix部署與使用添加文件搜索界面插件管理器SOLIDITY圖標用于編譯運行3.Solidity語法solidity的四種訪問權(quán)限:

public:任何人都可以調(diào)用該函數(shù)

private:只有合約本身可以調(diào)用該函數(shù)

internal:合約默認屬性,子合約可以訪問父合約的內(nèi)部函數(shù),

external:只有外部可以調(diào)用該函數(shù),而合約內(nèi)部不能調(diào)用。3.Solidity語法solidity的三種修飾符

view:可以自由調(diào)用,“查看”區(qū)塊鏈的狀態(tài)而不改變它。

pure:也可以自由調(diào)用,既不讀取也不寫入?yún)^(qū)塊鏈。

payable:常常用于將代幣發(fā)送給合約地址。3.Solidity語法solidity函數(shù)組成部分:function

函數(shù)名字(類型1名字,類型2名字,…,類型n名字)returns(類型1名字,類型2名字,…,類型n名字)示例代碼:pragmasolidity^0.4.0;contracthelloworld{functionstringtest(stringinputstr)publicviewreturns(string){returninputstr;}}3.Solidity語法數(shù)據(jù)類型:值類型、引用類型值類型:整數(shù)型(int、uint)、布爾型(bool)、定點數(shù)類型(fixed、ufixed)引用類型:數(shù)組、結(jié)構(gòu)體Struct、映射運算符:算數(shù)運算符、?較運算符、邏輯運算符、位運算符、賦值運算符條件運算符。3.Solidity語法邏輯運算符:Solidity?持的邏輯運算符,如下表所示:假設(shè)變量A的值為10,變量B的值為20。&&(邏輯與)

||(邏輯或)例:(A&&B)為真

例:(A||B)為真!(邏輯?)例:!(A&&B)為假3.Solidity語法算數(shù)運算符Solidity?持的算術(shù)運算符,如下表所示:假設(shè)變量A的值為10,變量B的值為20。+(加)例:A+B=30

–(減)例:A–B=-10*(乘)例:A*B=200

/(除)例:B/A=2++(遞增)例:A++=11

--(遞減)例:A–=9%(取模)例:B%A=03.Solidity語法位運算符Solidity?持的位運算符,如下表所示:假設(shè)變量A的值為2,變量B的值為3。&(位與)

|(位或)例:(A&B)為2.

例:(A|B)為3.^(位異或)

~(位?)例:(A^B)為1.

例:(~B)為-4.<<(左移位))

>>(右移位)例:(A<<1)為4.

定例:(A>>1)為13.Solidity語法數(shù)組數(shù)組是?種引?類型,它是存儲同類元素的有序集合聲明數(shù)組:typearrayName[arraySize];例子:uintbalance[10];3.Solidity語法初始化固定?度數(shù)組uintbalance[3]=[1,2,3];以?個固定?度的數(shù)組來賦值給固定?度的數(shù)組,可以省略數(shù)組?度,可以創(chuàng)建與前?個示例完全相同的數(shù)組。:uintbalance[]=[1,2,3];將數(shù)組中第3個元素賦值為5。balance[2]=5;訪問數(shù)組元素:

uintsalary=balance[2];3.Solidity語法結(jié)構(gòu)體Struct定義結(jié)構(gòu)體,struct語句的格式如下:

示例:structstruct_name{ structBook{type1type_name_1;

stringtitle;type2type_name_2;

stringauthor;type3type_name_3;

uintbook_id;}

}要訪問結(jié)構(gòu)的任何成員,使?成員訪問操作符(.)

3.Solidity語法映射聲明映射格式為:mapping(_KeyType=>_ValueType)_KeyType可以是除了映射、變?數(shù)組、合約、枚舉以及結(jié)構(gòu)體以外的?乎所有類型。_ValueType可以是包括映射類型在內(nèi)的任何類型。4.使用Solidity開發(fā)智能合約轉(zhuǎn)賬操作與余額獲取代碼:contractpaytest{functionpayabletest()payable{}

functiongetbalance(addressaccount)publicviewreturns(uint){returnaccount.balance;}

4.使用Solidity開發(fā)智能合約functionthistest()publicviewreturns(address){returnthis;}

functiontransfertest1()payablepublicreturns(uint){addressaccount1=0xeb46e45709DE0b10AECa4A9C9D1800beB6a13C6C;//賬戶隨意

4.使用Solidity開發(fā)智能合約account1.transfer(msg.value);returnaccount1.balance;}functiontransfertest2()payablepublicreturns(uint){this.transfer(msg.value);returnthis.balance;}function()payable{}}4.使用Solidity開發(fā)智能合約1.將this地址復(fù)制查看結(jié)果:2.修改remix界面中的value值,然后單擊payabletest4.使用Solidity開發(fā)智能合約3.原本的地址余額4.轉(zhuǎn)賬了8個但是接收了4個,剩下都在合約地址中。4.使用Solidity開發(fā)智能合約5.將value設(shè)置為0。調(diào)用sendtest,返回true6.再次測試感謝觀看?。?!

區(qū)塊鏈+金融

目錄1、區(qū)塊鏈+支付2、區(qū)塊鏈+證券 3、區(qū)塊鏈+供應(yīng)鏈金融區(qū)塊鏈+支付現(xiàn)有支付清結(jié)算模式中主要存在的問題有:(1)手續(xù)費高、時效性低;(2)支付限制較多,如金額上限、時間限制、幣種限制;(3)匯款過程不透明,無法追溯;(4)主要服務(wù)于銀行客戶,沒有

銀行賬戶的人群支付服務(wù)仍然比較匱乏。區(qū)塊鏈+支付

區(qū)塊鏈應(yīng)用到支付領(lǐng)域有哪些好處?

1、更快捷

2、更便宜

3、更多流動性

4、更平等區(qū)塊鏈+支付案例分析:招商銀行首創(chuàng)區(qū)塊鏈直聯(lián)跨境支付 2017年3月9日,招商銀行宣布區(qū)塊鏈技術(shù)應(yīng)用于直聯(lián)跨境支付,通過永隆銀行為深圳前海蛇口自貿(mào)a區(qū)注冊企業(yè):南??毓捎邢薰镜南愀弁~戶匯款,同年12月20日,招商銀行通過區(qū)塊鏈直聯(lián)跨境支付應(yīng)用技術(shù),為境外客戶在上海自貿(mào)區(qū)分賬核算單元中開立FTN賬戶,向其香港同名賬戶實施了一筆港元匯款,這次跨境支付的成功標志著招行完成了首筆自由貿(mào)易區(qū)塊鏈跨境支付業(yè)務(wù)。區(qū)塊鏈+證券傳統(tǒng)證券的痛點:1、中介成本高。2、發(fā)行方和中介機構(gòu)的信任問題。3、財務(wù)信息造假。區(qū)塊鏈+證券區(qū)塊鏈+證券解決的問題:(一)中小企業(yè)由此可獲得平等信息話語權(quán)和自主融資權(quán)(二)為監(jiān)管提供便利區(qū)塊鏈+證券案例:ABS

區(qū)塊鏈在一體化ABS交易體系的應(yīng)用實踐之一是ABS一體化平臺的搭建,以國金ABS云(下稱“ABS云”)為例,該平臺立足于區(qū)塊鏈底層數(shù)據(jù)庫系統(tǒng)設(shè)計以支持ABS項目的運行。以ABS云作為支撐平臺,利用區(qū)塊鏈技術(shù)手段,將ABS業(yè)務(wù)流程化、電子化、標準化,讓市場上眾多的資產(chǎn)證券化項目透明清晰地呈現(xiàn),從而迅速對接資產(chǎn)或資金,降低資產(chǎn)證券化操作門檻,有效控制運作成本。區(qū)塊鏈+供應(yīng)鏈金融傳統(tǒng)供應(yīng)鏈金融的問題:(1)信息無法打通,存在信息孤島。(2)信任無法自證,無法傳遞。(3)支付結(jié)算無法自動完成。 區(qū)塊鏈+供應(yīng)鏈金融區(qū)塊鏈技術(shù)與供應(yīng)鏈金融相結(jié)合,解決目前在區(qū)塊鏈融資網(wǎng)絡(luò)中存在問題。 1.借助多中心集體維護數(shù)據(jù),解決信息不對稱問題 2.確保貿(mào)易真實性,傳遞核心企業(yè)信任 3.借助智能合約,對接金融機構(gòu),應(yīng)收賬款自動結(jié)算 4.以區(qū)塊鏈的信息化平臺解決中小企業(yè)融資難、融資貴的問題。區(qū)塊鏈+供應(yīng)鏈金融案例:

微企鏈是由騰訊旗下的騰訊金融科技與聯(lián)易融(運營主體為深圳前海聯(lián)易融金融服務(wù)有限公司)共同打造,騰訊將其定義為“供應(yīng)鏈金融+區(qū)塊鏈+ABS平臺”。

2018年末,微企鏈在運行不到一年的時間內(nèi),已服務(wù)核心企業(yè)71家,接入合作銀行12家,服務(wù)領(lǐng)域涵蓋地產(chǎn)、能源、汽車、醫(yī)藥等。完成鏈上流水達百億級別,穿透供應(yīng)商層級大概一兩級,與傳統(tǒng)銀行貸款相比能降低2到8個點的利率。感謝觀看?。?!區(qū)塊鏈+商業(yè)目錄1、區(qū)塊鏈+電子發(fā)票2、區(qū)塊鏈+商品防偽溯源3、區(qū)塊鏈+積分營銷1.區(qū)塊鏈+電子發(fā)票傳統(tǒng)電子發(fā)票存在的問題:1、假發(fā)票2、虛開發(fā)票3、套用發(fā)票4、數(shù)據(jù)孤島1.區(qū)塊鏈+電子發(fā)票區(qū)塊鏈+電子發(fā)票解決: 1、使用區(qū)塊鏈公開,解決發(fā)票流轉(zhuǎn)過程中的信息孤島問題。 2、使用區(qū)塊鏈時間戳、哈希對發(fā)票進行真?zhèn)未_認 3、使用區(qū)塊鏈智能合約自動化處理使成本降低。1.區(qū)塊鏈+電子發(fā)票案例:騰訊區(qū)塊鏈電子發(fā)票首張區(qū)塊鏈電子發(fā)票騰訊區(qū)塊鏈電子發(fā)票業(yè)務(wù)流程2.區(qū)塊鏈+商品防偽溯源傳統(tǒng)的防偽溯源出現(xiàn)的問題:1、數(shù)據(jù)存儲中心化2、易篡改3、政府監(jiān)管難4、流通環(huán)節(jié)數(shù)據(jù)分散

2.區(qū)塊鏈+商品防偽溯源區(qū)塊鏈+防偽溯源優(yōu)點:1.商品信息全程實時溯源2.商品信息不可篡改3.有效防治商品造假4.降低物流成本2.區(qū)塊鏈+商品防偽溯源兆信股份防偽溯源平臺案例:兆信股份防偽溯源平臺3.區(qū)塊鏈+積分營銷傳統(tǒng)的企業(yè)積分運營體系出現(xiàn)的問題:1、整體發(fā)行以及在平臺、商戶、用戶之間流轉(zhuǎn)的過程不透明。2、體系較為封閉,數(shù)據(jù)可任意篡改。3、積分對賬比較繁瑣。4、可能出現(xiàn)積分濫發(fā)、失效、對賬錯誤等損害用戶和商戶利益的情況。

3.區(qū)塊鏈+積分營銷基于區(qū)塊鏈+積分聯(lián)盟優(yōu)點:1、積分價值最大化2、高運營效率3、透明4、積分可追溯3.區(qū)塊鏈+積分營銷案例:陽光保險布萌區(qū)塊鏈陽光保險布萌區(qū)塊鏈感謝觀看?。?!區(qū)塊鏈+教育區(qū)塊鏈+教育解決的問題傳統(tǒng)教育最主要的三個問題: 1、首先是各類證書作假與學術(shù)欺詐。 2、簡歷等個人經(jīng)歷信息不對稱。 3、前在線教育的教學質(zhì)量無法保證。區(qū)塊鏈對教育行業(yè)的好處1、使偽造證書變得更加困難2、記錄學生學習狀況3、出勤和任務(wù)完成情況跟蹤4、教育基礎(chǔ)設(shè)施安全5、高效的數(shù)據(jù)存儲區(qū)塊鏈+教育應(yīng)用場景1、數(shù)字證書2、學習認證3、教育數(shù)據(jù)存儲4、知識產(chǎn)權(quán)案例分析:“區(qū)塊鏈+教育”廊坊教育監(jiān)測平臺區(qū)塊鏈+教育應(yīng)用案例廊坊市教育局數(shù)據(jù)監(jiān)測平臺區(qū)塊鏈+教育應(yīng)用案例Blockcerts-學歷證書區(qū)塊鏈。學術(shù)成績-分數(shù)、成績報告甚至畢業(yè)文憑都可以保存在Blockcerts區(qū)塊鏈上,并提供不可篡改的學術(shù)歷史。感謝觀看?。?!區(qū)塊鏈+醫(yī)療區(qū)塊鏈+醫(yī)療解決的問題傳統(tǒng)醫(yī)療最主要的三個問題: 1、醫(yī)療數(shù)據(jù)的隱私敏感性造成的數(shù)據(jù)孤島。 2、在藥品方面,假藥、劣藥的制造銷售難以根除。 3、醫(yī)療數(shù)據(jù)安全難以保障。區(qū)塊鏈對醫(yī)療的賦能1、對醫(yī)療歷史數(shù)據(jù)記錄,實現(xiàn)共享數(shù)據(jù)的防篡改、可追溯。2、對醫(yī)療信息進行加密處理,使用戶信息匿名。3、使用智能合約,降低成本和容錯率。4、使用時間戳和鏈式結(jié)構(gòu)實現(xiàn)數(shù)據(jù)信息可追溯。區(qū)塊鏈+醫(yī)療應(yīng)用場景一、醫(yī)療服務(wù):1、醫(yī)療數(shù)據(jù)管理2、個人電子病歷3、智能穿戴設(shè)備健康管理4、醫(yī)療計費和保險自動化案例分析:阿里健康常州市“醫(yī)聯(lián)體+區(qū)塊鏈”項目常州醫(yī)聯(lián)體區(qū)塊鏈應(yīng)用流程示意圖區(qū)塊鏈+醫(yī)療應(yīng)用案例區(qū)塊鏈+醫(yī)療面臨的挑戰(zhàn)1、醫(yī)療機構(gòu)信息化覆蓋程度參差不齊。2、醫(yī)療數(shù)據(jù)來源可靠性問題。3、通證的法律風險。感謝觀看?。。?/p>

區(qū)塊鏈+公益

公益事業(yè)的分類和存在的問題

公益事業(yè)包括慈善捐助、志愿服務(wù)、公益扶貧等領(lǐng)域。

公益事業(yè)存在一下三點的問題: 1、工作效率低 2、信息不公開 3、操作不透明區(qū)塊鏈+公益的解決方案

區(qū)塊鏈技術(shù)多層面解決公益事業(yè)痛點 1、區(qū)塊鏈可以實現(xiàn)信息公開透明 2、區(qū)塊鏈可以實現(xiàn)高效率的多方協(xié)調(diào) 3、區(qū)塊鏈可以實現(xiàn)有效的激勵區(qū)塊鏈+公益案例 公益項目Amply——學校補貼(南非)該項目是利用區(qū)塊鏈技術(shù)建立基于成果的融資平臺的一個案例。此平臺幫助學校教師以數(shù)字化方式獲取政府補貼所需的學校出勤記錄。在南非,600萬6歲以下的兒童中約有三分之二生活貧困,許多兒童缺乏適當?shù)纳矸葑C明。這使得他們實際上無法被政府和社會服務(wù)(如對兒童早期發(fā)展學校的補貼)識別。此外,為了獲得地方政府的補貼,這些學校必須通過季度報告申請補貼,其中包括大量的文書工作、官僚程序和容易出錯的提交流程?!坝袝r我們大老遠跑到部門,只是發(fā)現(xiàn)了表格上的錯誤并要求我們重新做季度報告。有時文書工作在部門丟失了,就需要我們重新提交”。區(qū)塊鏈+公益案例 Amply手機應(yīng)用的第一個版本可以讓學校自動收集考勤數(shù)據(jù),并將其提交給社會發(fā)展部門。每天早上,老師或校長都會在應(yīng)用程序中記錄每個孩子的出勤情況。該App的基礎(chǔ)是區(qū)塊鏈基礎(chǔ)設(shè)施和智能合約,基于此,第三方評估者可以驗證服務(wù)提供商的出勤情況。 自2016年11月試點以來,該項目已記錄了87個中心和122個服務(wù)提供商的3327名兒童的81168次出勤記錄。Amply的報告中稱,它每月為教師節(jié)省了4000多個小時。 Amply背后的區(qū)塊鏈架構(gòu)有助于保存一份不可更改的學校出勤記錄,該記錄可以使政府實現(xiàn)自動付款。收集到的數(shù)據(jù)還將有助于建立兒童在學校間流動的身份記錄,并有助于社會發(fā)展部門提供其他服務(wù)。區(qū)塊鏈+公益案例 在充分試點的基礎(chǔ)上,Trustlab建立了ixo基金會,以進一步開發(fā)開源協(xié)議。該基金會與包括奇點大學(SingularityUniversity)的SUVentures、GoldStandard、微軟研究院等主要機構(gòu)合作,開發(fā)這些協(xié)議的應(yīng)用程序,使項目能夠經(jīng)濟有效地收集、核實和共享影響力數(shù)據(jù)。 2018年12月8日,基金會挖掘出ixo公共區(qū)塊鏈的第一塊,并計劃使用影響力代幣(impacttokens)創(chuàng)建一個全球生態(tài)系統(tǒng)來資助、交付和評估項目。感謝觀看?。?!區(qū)塊鏈+智慧城市智慧城市的概念智慧城市,是指以城市的生命體屬性為基本視角,運用區(qū)塊鏈、人工智能、大數(shù)據(jù)、物聯(lián)網(wǎng)、云計算等新一代技術(shù)手段,一方面提高市民生活水平和質(zhì)量,另一方面提升城市公共管理的運行效率和服務(wù),從而能夠?qū)崿F(xiàn)科學和可持續(xù)發(fā)展的信息化城市形態(tài)。區(qū)塊鏈技術(shù)在智慧城市中應(yīng)用范圍1、智慧交通2、智慧能源3、智慧環(huán)保1.智慧交通 21世紀以來,各國政府積極助推現(xiàn)代化交通體系建設(shè),尤其重視交通運輸智能化與信息化建設(shè)。智慧交通、數(shù)字化信息的發(fā)展成功賦能集約化交通體系的構(gòu)建,成為解決現(xiàn)代交通痛點的核心方向。信息化、網(wǎng)絡(luò)化、智能化的交通運輸系統(tǒng)建設(shè)能有力推動國家交通體系的跨越式發(fā)展,并進一步緩解資源與環(huán)境壓力。1.智慧交通對于交通運輸行業(yè),區(qū)塊鏈主要在以下幾個方面進行賦能: 1、車輛認證管理。 2、助力智慧交通運輸網(wǎng)絡(luò)的優(yōu)化。 3、汽車碳排放上鏈推動節(jié)能減排。1.智慧交通案例分析: 近年來,頻頻發(fā)生的黑客攻擊汽車事件,比如通過一段簡單的代碼成功實現(xiàn)了對車載網(wǎng)絡(luò)的破壞性攻擊,完成諸如剎車、改變車速、播放音樂、將乘客鎖在車內(nèi)等行為。汽車網(wǎng)絡(luò)安全直接影響汽車安全、個人隱私,甚至危及公共安全。而通過在車聯(lián)網(wǎng)系統(tǒng)中引入?yún)^(qū)塊鏈,將會對現(xiàn)有的車聯(lián)網(wǎng)安全實現(xiàn)重大提升。 相比傳統(tǒng)車聯(lián)網(wǎng)的網(wǎng)絡(luò)安全防護而言,使用區(qū)塊鏈的車聯(lián)網(wǎng)通過共識機制實現(xiàn)更加安全可靠的認證存儲并能提供可持續(xù)性服務(wù),并且,車聯(lián)網(wǎng)的數(shù)據(jù)難以被篡改。2.智慧能源

對于智慧能源而言,區(qū)塊鏈最容易導入的應(yīng)用是透明的能源交易多邊市場和碳排放交易市場,為其提供高效、可信的實時交易手段。以電力為例,區(qū)塊鏈可以用來方便地記錄發(fā)電、配電、輸電、調(diào)度、用電、售電等各個環(huán)節(jié)的數(shù)據(jù),提供公正、可追溯、透明的審計、監(jiān)管記錄,依靠區(qū)塊鏈的智能合約技術(shù),實現(xiàn)發(fā)、輸、變、配、用、調(diào)等全過程的資源協(xié)調(diào)配置,大大

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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

提交評論