區(qū)塊鏈技術(shù)(Blockchain technology)來源于筆名中本聰(Satoshi Nakamoto)在2008年發(fā)表的論文《比特幣:一種點(diǎn)對點(diǎn)的電子現(xiàn)金系統(tǒng)》(Bitcoin: A Peer-to-Peer Electronic Cash System)。在傳統(tǒng)的具有中心節(jié)點(diǎn)的電子現(xiàn)金系統(tǒng)中,是由中心節(jié)點(diǎn),比如銀行、支付機(jī)構(gòu)等,來驗(yàn)證電子現(xiàn)金是否被使用過,從而避免一幣多付(又稱雙重支付)的問題。比特幣是一種去中心化的點(diǎn)對點(diǎn)的網(wǎng)絡(luò),為解決一幣多付的問題,中本聰提出了區(qū)塊鏈的概念,顧名思義,區(qū)塊鏈由區(qū)塊組成,區(qū)塊是一種數(shù)據(jù)結(jié)構(gòu),包括時間戳,交易記錄,前一個區(qū)塊的哈希值,通過這種機(jī)制,所有的區(qū)塊連在一起,形成區(qū)塊鏈。
圖1 區(qū)塊和區(qū)塊鏈
簡而言之,區(qū)塊鏈?zhǔn)且环N分布式的數(shù)據(jù)庫,具有去中心化、不可篡改、可以追溯等特點(diǎn),這些特點(diǎn)保證了區(qū)塊鏈節(jié)點(diǎn)的“誠實(shí)”和“透明”,解決了信息不對稱問題,實(shí)現(xiàn)了多個主體之間的信任協(xié)作和行動一致。為了方便理解區(qū)塊和區(qū)塊鏈的概念,可以參考如下簡化的Python代碼實(shí)現(xiàn):
class Block:
def __init__(self, index, transactions, timestamp, previous_hash, nonce=0):
self.index = index
self.transactions = transactions
self.timestamp = timestamp
self.previous_hash = previous_hash
self.nonce = nonce def compute_hash(self):
block_string = json.dumps(self.__dict__, sort_keys=True) return sha256(block_string.encode()).hexdigest()class Blockchain:
difficulty = 2
def __init__(self):
self.unconfirmed_transactions = []
self.chain = [] def create_genesis_block(self):
genesis_block = Block(0, [], 0, "0")
genesis_block.hash = genesis_block.compute_hash()
self.chain.append(genesis_block) @property
def last_block(self):
return self.chain[-1] def add_block(self, block, proof):
previous_hash = self.last_block.hash if previous_hash != block.previous_hash: return False
if not Blockchain.is_valid_proof(block, proof): return False
block.hash = proof
self.chain.append(block) return True @staticmethod
def proof_of_work(block):
block.nonce = 0
computed_hash = block.compute_hash() while not computed_hash.startswith('0' * Blockchain.difficulty):
block.nonce += 1
computed_hash = block.compute_hash() return computed_hash def add_new_transaction(self, transaction):
self.unconfirmed_transactions.append(transaction) @classmethod
def is_valid_proof(cls, block, block_hash):
return (block_hash.startswith('0' * Blockchain.difficulty) and
block_hash == block.compute_hash())
由上述代碼可見,計(jì)算當(dāng)前區(qū)塊的哈希值時,輸入變量既包括當(dāng)前區(qū)塊的時間戳、交易記錄等數(shù)據(jù),也包括上一個區(qū)塊的哈希值,如果攻擊者修改區(qū)塊鏈中的交易記錄,比如區(qū)塊1的交易記錄,則區(qū)塊1的哈希值會發(fā)生變化,因?yàn)閰^(qū)塊2的數(shù)據(jù)結(jié)構(gòu)包括區(qū)塊1的哈希值,故區(qū)塊2的哈希值也會發(fā)生變化,從而迫使攻擊者重新計(jì)算區(qū)塊2的哈希值,以此類推,余下區(qū)塊的哈希值也需要重新計(jì)算,同時為增加攻擊者計(jì)算哈希值的難度,區(qū)塊鏈還使用了工作量證明(Proof of Work)算法,比如要求哈希值的前若干個字符是0。與此同時,在攻擊者計(jì)算歷史區(qū)塊的哈希值時,還會不斷有新的區(qū)塊寫入,除非攻擊者掌握整個區(qū)塊鏈網(wǎng)絡(luò)中51%以上的算力,這種攻擊從時間成本和收益成本來說,將會是毫無意義的。
比特幣(數(shù)字加密貨幣的一種)是區(qū)塊鏈技術(shù)的一種應(yīng)用,二者之間的關(guān)系類似與汽車和內(nèi)燃機(jī)/電動機(jī),每一輛汽車都裝備有內(nèi)燃機(jī)或者電動機(jī)或者兼而有之,但內(nèi)燃機(jī)/電動機(jī)不光用于汽車,還應(yīng)用于火車、輪船、工程機(jī)械等設(shè)備。隨著區(qū)塊鏈技術(shù)的發(fā)展,其應(yīng)用場景從數(shù)字貨幣逐漸向其他非金融領(lǐng)域擴(kuò)展,比如公共服務(wù)領(lǐng)域、數(shù)字版權(quán)領(lǐng)域、保險(xiǎn)領(lǐng)域、物聯(lián)網(wǎng)和物流領(lǐng)域等。
區(qū)塊鏈1.0:區(qū)塊鏈用于數(shù)字貨幣
區(qū)塊鏈2.0:區(qū)塊鏈+智能合約用于金融領(lǐng)域(貨幣、股票、債券等)
區(qū)塊鏈3.0:區(qū)塊鏈用于非金融領(lǐng)域
區(qū)塊鏈應(yīng)用領(lǐng)域的擴(kuò)展也改變了社會對于區(qū)塊鏈等同于虛擬貨幣的固有認(rèn)知,在監(jiān)管機(jī)構(gòu)對虛擬貨幣炒作和虛擬貨幣交易場所的打擊態(tài)度沒有絲毫改變的同時,也在積極鼓勵區(qū)塊鏈技術(shù)在非金融領(lǐng)域的發(fā)展,比如2019年10月24日,中共中央政治局就區(qū)塊鏈技術(shù)發(fā)展現(xiàn)狀和趨勢進(jìn)行第十八次集體學(xué)習(xí),會上中共中央總書記習(xí)近平指出“區(qū)塊鏈技術(shù)的集成應(yīng)用在新的技術(shù)革新和產(chǎn)業(yè)變革中起著重要作用。我們要把區(qū)塊鏈作為核心技術(shù)自主創(chuàng)新的重要突破口,明確主攻方向,加大投入力度,著力攻克一批關(guān)鍵核心技術(shù),加快推動區(qū)塊鏈技術(shù)和產(chǎn)業(yè)創(chuàng)新發(fā)展……區(qū)塊鏈技術(shù)應(yīng)用已延伸到數(shù)字金融、物聯(lián)網(wǎng)、智能制造、供應(yīng)鏈管理、數(shù)字資產(chǎn)交易等多個領(lǐng)域。目前,全球主要國家都在加快布局區(qū)塊鏈技術(shù)發(fā)展。我國在區(qū)塊鏈領(lǐng)域擁有良好基礎(chǔ),要加快推動區(qū)塊鏈技術(shù)和產(chǎn)業(yè)創(chuàng)新發(fā)展,積極推進(jìn)區(qū)塊鏈和經(jīng)濟(jì)社會融合發(fā)展?!?/p>
區(qū)塊鏈技術(shù)具有的不可篡改、可以追溯等特點(diǎn),可以和物聯(lián)網(wǎng)技術(shù)具有的連接隨手可及、計(jì)算無處不在等特點(diǎn)結(jié)合起來,以筆者在《如何從零開始搭建面向某一行業(yè)的物聯(lián)網(wǎng)系統(tǒng)架構(gòu)》一文中描述的案例為例,我們可以把某一產(chǎn)品拆分成若干產(chǎn)品單元,然后把產(chǎn)品單元的生產(chǎn)制造過程拆分成若干工藝單元,每一個工藝單元的實(shí)現(xiàn)由各種機(jī)械設(shè)備完成,比如生產(chǎn)設(shè)備、測試設(shè)備等,工藝單元和工藝單元之間的物料轉(zhuǎn)運(yùn)由各種自動化設(shè)備完成,比如機(jī)器人、AGV等,無論是機(jī)械還是設(shè)備,從物聯(lián)網(wǎng)的視角看來都屬于執(zhí)行機(jī)構(gòu),傳感器用于測量生產(chǎn)過程的各種狀態(tài)并作為車間控制系統(tǒng)閉環(huán)控制的輸入信號。
圖2 產(chǎn)品制造過程和物聯(lián)網(wǎng)
借助物聯(lián)網(wǎng),在某一產(chǎn)品單元生產(chǎn)完成后,可以生成該產(chǎn)品的關(guān)鍵信息,比如生產(chǎn)設(shè)備加工該產(chǎn)品時采用的工藝數(shù)據(jù),測試設(shè)備對該產(chǎn)品進(jìn)行質(zhì)檢后得到的量測數(shù)據(jù),這些數(shù)據(jù)打包成消息(比如JSON格式)。隨后該產(chǎn)品單元會經(jīng)過物流系統(tǒng)流轉(zhuǎn)到下一個地點(diǎn),借助物聯(lián)網(wǎng),可以獲得產(chǎn)品在運(yùn)輸過程中的關(guān)鍵信息,比如mRNA疫苗在運(yùn)輸途中的環(huán)境溫度數(shù)據(jù),這些數(shù)據(jù)也被打包成消息。在這種應(yīng)用場景下,消息即等同于上面提到的交易記錄,區(qū)塊的數(shù)據(jù)結(jié)構(gòu)包括時間戳、消息、前一個區(qū)塊的哈希值等數(shù)據(jù),而消息一旦被節(jié)點(diǎn)發(fā)布,就不可能被修改,從而可以實(shí)現(xiàn)供應(yīng)鏈端到端的全程監(jiān)控,解決商品質(zhì)量溯源、安全監(jiān)管等問題。
圖3 物聯(lián)網(wǎng)和區(qū)塊鏈
借助智能合約,在產(chǎn)品單元從生產(chǎn)方流轉(zhuǎn)到需求方時,需求方通過獲取產(chǎn)品到達(dá)前的消息即可以判斷合約條款是否被滿足(時間、日期、工藝數(shù)據(jù)、量測數(shù)據(jù)、環(huán)境數(shù)據(jù)等),若滿足條款,則生產(chǎn)方和需求方之間的合約自動執(zhí)行。這種方式避免了供應(yīng)鏈中的每一個參與方單獨(dú)建立一套產(chǎn)品追溯系統(tǒng)和相應(yīng)的數(shù)據(jù)庫,除了成本的增加,這種單獨(dú)建立的數(shù)據(jù)庫在開放性、協(xié)作性和認(rèn)證性方面亦有所欠缺,而通過引入?yún)^(qū)塊鏈技術(shù),可以實(shí)現(xiàn)“優(yōu)化業(yè)務(wù)流程、降低運(yùn)營成本、提升協(xié)同效率、建設(shè)可信體系”等方面的作用。
編輯:hfy
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2930文章
46210瀏覽量
392094 -
區(qū)塊鏈
+關(guān)注
關(guān)注
112文章
15565瀏覽量
108326
發(fā)布評論請先 登錄
PanDao應(yīng)用:選擇或排除需納入考量的光學(xué)制造技術(shù)(OFTs)
PanDao:光學(xué)設(shè)計(jì)中的光學(xué)加工鏈建模
PanDao:光學(xué)制造鏈設(shè)計(jì)
PanDao:簡化光學(xué)元件制造流程
智能制造時代工業(yè)軟件技術(shù)體系綜述
充電樁負(fù)載測試系統(tǒng)技術(shù)解析
人工智能、云計(jì)算、區(qū)塊鏈三者區(qū)別對比
智能制造裝備行業(yè)的供應(yīng)鏈特點(diǎn)分析

dap協(xié)議在跨鏈技術(shù)中的應(yīng)用
YOGO ROBO智能機(jī)器人助力區(qū)塊鏈行業(yè)發(fā)展
智慧能源管理系統(tǒng):區(qū)塊鏈技術(shù)在能源交易中的應(yīng)用

評論