區塊鏈入門級別認知(blockchain)
區塊鏈入門級別認知(blockchain)
前言:今天參加了迅雷關于區塊鏈的大會,學習和感受總結一下
之前的認知在:幾個混跡互聯網圈關于區塊鏈 耳熟能詳的 熱詞 “比特幣” “區塊鏈” “挖礦” ,知道的是有人從比特幣或者相關虛擬貨幣中暴富。然后相關資源媒體不斷炒概念,蹭熱度公司出現了區塊鏈項目,甚至還有區塊鏈牙刷“邊刷牙邊挖礦,獲得愛牙幣還能兌換成牙刷,牙線等產品或者服務”。。。
通過今天在大會上的學習,首先拎清了幾個事實:
(1)沒錯,會有人從區塊鏈上的虛擬貨幣有貧窮限制想象的獲利。或者“炒幣”的相關行為 這是“幣圈”。
(2)區塊鏈技術會使各行各業受益,那么這是“鏈圈”。今天講的就是“鏈圈”的事
(3)不會我今天來了一趟,我就牛逼了。。。
以下從區塊鏈技術常識,技術認知,產品認知三方面進一步了解
一 區塊鏈技術常識
(1)為什么使用區塊鏈 why
能夠實現:彼此不信任的情況下,不受地區所限制,可以是在世界各地,實現共享數據和傳遞價值
金融圈里形容這種“信任”是一種“交易對手風險(the counterparty risk)”:另一方不愿意承擔交易的風險。
即這種風險就是對方不遵守契約精神的風險
區域鏈的優勢就在于:通過一個革命性的數學、密碼學和點對點網絡系統徹底消除了“交易對手風險(mathematics, cryptography, and peer-to-peer networking)。
(1.1)歷史證明區塊鏈的重要性
在20世紀60年代,出現了第一個計算機化的數據庫。隨著硬件占據多個房間和互聯網幾十年,數據自然存在于中央,物理位置。這是一種集中式方法(Centralized ),意味著數據的位置和訪問權限由中央權威機構控制。
集中式系統(Centralized systems)可以從內部或外部進行操作,因此我們必須信任這些系統的擁有者有足夠的意愿和資源來保持其數據的安全性和完整性。集中式數據庫仍然是最常見的今天,供電我們的大多數在線和離線應用程序。
自托管博客(A self-hosted blog )是集中式數據庫的一個常見示例。所有者可以潛在地編輯事后或審查用戶無追索權的帖子。另外,黑客可以侵入服務器并進行惡意行為。如果沒有數據庫備份,則逆轉損壞是不可能的。
(1.2)共享數據
共享大量數據既昂貴又麻煩。我們可以通過跨多方分發數據來減輕這種負擔。讀寫被組(group)的一個或多個部分控制,因此也會受到與集中式數據庫類似的壞數據( corrupt data)影響。
現代共享數據庫使用技術來減少這種壞數據。其中一些與區塊鏈重合。根據共享數據庫系統,它可能具有以下特點:
不變性( Immutability):與其重寫舊數據,不如用保留的舊數據作為歷史記錄創建新副本。這個記錄可以被用來證明在某一時刻存在的一段數據。
一致性(Consensus) :為了共享數據庫,各方必須就其內容達成一致。達成一致共識的方法多種多樣,其中一項(工作證明)將在下文討論。
(2)什么是區塊鏈 what
區塊鏈是一個共享的數據庫,由事務(交易)(transactions)的分類帳組成。就像一個銀行,簡單的連鎖店的分類賬跟蹤貨幣(在這種情況下,加密)所有權。與集中式銀行不同,每個人都有一個分類帳的副本,可以核實對方的賬戶。每個帶有副本的設備都被稱為“節點”。
區塊鏈通過以下方式消除了影響其他數據庫的信任問題:
完全去中心化:(Full decentralization)讀取/寫入數據庫是完全分散和安全的。沒有單獨的個人或團體控制區塊鏈。
極端容錯:( Extreme fault tolerance)容錯是系統處理壞數據( corrupt data)的能力。雖然容錯并不是區塊鏈特有的,但它將概念帶到了邏輯的極端,因為每個共享數據庫的帳戶都驗證了它的變化。
獨立驗證:( Independent verification)事務可以被任何人驗證,而不需要第三方。這有時被稱為“去中介化”。
(3)區塊鏈如何工作 how
區塊鏈網絡中的帳戶之間的交互稱為“事務(交易)”(transactions)。它們可以是貨幣交易,例如在以太幣(Ether 代碼 ETH)傳送中使用的加密貨幣。它們還可以傳輸數據,比如評論或用戶名。一組事務(交易)(transactions)被稱為“block”。
區塊鏈上的每個帳戶都有一個惟一的簽名,它讓每個人都知道是哪個帳戶發起了事務(交易)(transactions)。在公共區塊鏈上,任何人都可以讀或寫數據。讀取數據是免費的,但是寫入公共塊鏈不是。這種成本,被稱為“gas”,定價在以太幣(Ether 代碼 ETH),有助于阻止垃圾郵件和支付網絡安全。
礦業/采礦 Mining
網絡上的任何節點都可以通過一個名為“挖掘”的過程來參與保護網絡。選擇成為礦工的節點競爭解決數學問題,這些問題保護了一個區塊的內容。
由于采礦需要計算能力(更不用說電力成本),礦工可以得到補償。競賽的獲勝者將獲得一些加密貨幣作為獎勵。這就激勵了節點的工作,以確保網絡的安全,防止太多的權力落入任何單個的礦工手里。
哈希Hashing
一旦一個新的區塊被開采,其他的礦工就會被通知并開始驗證并將這個新的區塊添加到他們的鏈副本中。這是通過加密哈希(或簡單的“哈希”)完成的。哈希是一個單向過程,它接收數據并返回一個固定長度的字符串來表示數據。
雖然原始數據不能從其散列中復制,但相同的數據將始終產生相同的散列。因此,未經驗證的數據可以用相同的函數進行散列,并與原始數據進行比較。如果它們是相同的,則驗證數據。
一旦超過半數的礦工確認了新的區塊,網絡就已經“達成共識”,這個區塊成為區塊鏈永久歷史的一部分。現在,所有節點都可以下載該數據,并確保其有效性。
下面是整個過程:
(1) (2)


(3) (4)

(5)

遞進層次,專有名詞,關于以太坊區塊鏈(Ethereum Blockchain)
(1)以太坊(Ethereum)
Ethereum是一個區塊鏈,允許你在其可信的環境中運行程序。這與比特幣區塊鏈(Bitcoin blockchain)形成了鮮明對比,后者只允許你管理加密貨幣。
為此,Ethereum有一個虛擬機,稱為Ethereum虛擬機(EVM)。EVM允許在區塊鏈上驗證和執行代碼,提供保證它將以相同的方式在每個人的機器上運行。這段代碼包含在“智能合約(smart contract)”中。
除了跟蹤帳戶余額,Ethereum在區塊鏈上維護EVM的狀態。所有節點都處理智能合同,以驗證契約的完整性和它們的輸出。
(2)智能合約(smart contract)
智能合約是在EVM上運行的代碼。是以太坊最重要的技術貢獻。智能合約可以接受并存儲以太幣(Ether 代碼 ETH)、數據或兩者的結合。然后,根據智能合約中的邏輯,它可以將該以太幣分配給其他帳戶,甚至是其他智能合約。
這里舉例Bob和Alice的簽訂一個智能合約例子。愛麗絲想雇鮑勃為她建一個天井,他們用一個契約合同(一個可以儲存錢的地方,直到一個條件得到滿足)在最后的交易前儲存他們的以以太幣(Ether 代碼 ETH)。
(1) (2)
(3)

(如果鮑勃不能建造天井,或者他的工作表現不佳,Bob可以向Alice提供抵押金。可以把這個作為條款寫在合約代碼中)
二 技術層面
(1)智能合約的編程語言:Solidity
Solidity是針對智能合約設計的一?高級編程語言,運行環境是EVM(Ethereum Virtual Machine)。語言設計實現中受到了C++/Python/JavaScript的影響。 Solidity是強類型語言,支持繼承、多態、接口、抽象、庫、自定義數據類型等特 性。Solidity支持匯編指令編程,代碼編譯為字節碼后運行在EVM上。Solidity是 當下最流行的智能合約開發語言,也是迅雷合約平臺推薦和支持的語言。
(2)使用truffle 開發合約
truffle 提供了一套完善的開發、調試、編 譯、部署、測試的本地環境。 可以使用模板命令unbox根據一些模板快速 生成對應的合約架構。
我們結合solidity的學習,學習使用 truffle 框架 。使用truffle develop在本地區塊鏈環境下運行合約。
Truffle:開始創建一個自己的 dapp ,測試,部署到上鏈到以太坊網絡的最好選擇
(3)以太坊網絡 Ethereum networks
到目前為止的講解描述,都是在說以太坊的公共區塊鏈,或者說“MainNet”。在MainNet上,包括賬戶余額和交易在內的鏈上的數據是公開的,任何人都可以創建一個節點并開始驗證交易。該網絡上的以太幣(Ether 代碼 ETH)具有市場價值,可以兌換其他加密貨幣或像美元一樣的法定貨幣。
但也有其他的網絡。事實上,任何人都可以創建自己的Ethereum網絡。
(4)本地測試網絡Local test networks
好多以太坊模擬器存在,這里推薦: Ganache 本地開發模擬以太坊區塊鏈上的交易
(5)公測 Public test networks
開發階段,在最終上線之前的網絡測試中使用的以太幣都是無價值的(only has no value)
廣泛使用的三個公測網:
? Ropsten: The official test network, created by The Ethereum Foundation. Its functionality is similar to the MainNet.
? Kovan: A network that uses a consensus method called "proof-of-authority". This means its transactions are validated by select members, leading to a consistent four second block time. The supply of ether on this testnet is also controlled to mitigate spam attacks.
? Rinkeby: A testnet also using proof-of-authority, created by The Ethereum Foundation.
(6)私人/企業網絡Private/enterprise networks
私有的Ethereum網絡允許各方共享數據而不使其公開訪問。一個私有區塊鏈是一個很好的選擇:
? Sharing of sensitive data, such as health care records
? Scaling to handle higher read/write throughput, due to the smaller network size
(7)分布式應用程序(dapps)Distributed applications (dapps)
使用智能合約進行處理的應用程序被稱為分布式應用程序或者dapps
這些dapps的用戶界面包括熟悉的語言,如HTML、CSS和JavaScript。應用程序本身可以托管在傳統的web服務器上,也可以在分散的文件服務(如群集或IPFS)上。
dapps 為各行各業帶來好處 :記錄,金融,供應鏈,房地產,市場
迅雷 美女牛人 來鑫也是給大家出題涉獵方向,真是各行各業都能受益。

三.產品
最前面早期看到的區塊鏈牙刷,甚至區塊鏈馬桶,是有點典型的蹭個熱度。但是區塊鏈現狀是什么?迅雷CEO給了答案:

并且在圓桌會議上國家工信部吧電子標準區塊鏈研究院主任 李鳴,說區塊鏈有技術屬性,社會屬性金融屬性,我覺得還有個精神屬性,那就是大家說的就是啥也別管相信它就好了,聽眾都笑了,是的,當前面對的是對標準的制定和對安全的規范特別重要,當前國家的相關部門舉措也是剛起步階段。

接下來看看來鑫介紹的迅雷的技術棧

技術棧里每一個模塊都有相對的專業技術組設計處理,簡單的介紹背后藏著復雜的人員調度配合。了解這么多,其實一切的新技術都是在現有技術的基礎之上的,迅雷之所以跑到行業前列,是因為,他們老早就有成型的體系,成熟的分布式系統,多方共享數據資源,他們一直在做的就是在夯實面臨新技術的基本功,以技術驅動公司發展的一只腳早就跨過了門檻。然后還在想辦法搜羅人才加入。。。
總結:
到底什么樣的人和公司適合做區塊鏈?圓桌會議上,幾個大咖都表達了一下自己的看法,基本如下:
(1)技術角度:夯實基本功的開發者,動腦,勤快。區塊鏈和起初的安卓,蘋果剛出來沒什么大區別。
(2)如果是混過“幣圈”的,估計可以快速找到門道,搭出雛形,但是想真正走的長遠是要靠區塊鏈技術而不是簡單的“幣圈”經驗
(3)感興趣,對金融,計算機,管理有相關背景的人
(4)坐得住的人,這個我個理解就是,就是能踏實做事情的人,能夠沉得住氣,當時清華大學計算機系教授陳文光說,他見過往返于“幣圈”和“鏈圈”的人,不能沉得住氣,如果他只在鏈圈或者在幣圈專研,成就一定比他反復轉念更突出,影響更大
也許有一天,我們也需要做區塊鏈,嗯,迅雷的CEO說,今天有專門人跑到會場找他,詢問如何快速“上鏈”?他笑了,(我想潛臺詞應該是:冰凍三尺非一日之寒吧)
其實如果說公司的基礎,我們現在做的也是在為以后打基礎,我們公司的目標就是以后要成為一個數據服務公司啊,相關技術重疊性也非常強,現階段我們就是要做好我們該做的就好了,每一步都扎實,在適合時機,做對應的調整。堅定信念不要懷疑。也是一種沉得住氣。
參考:
1.http://truffleframework.com/tutorials/ethereum-overview#the-need-to-share-data //區塊鏈入門基礎 本博大部分理論來源
2.http://solidity.readthedocs.io/en/v0.4.21/index.html //學習solidity語言(solidityAPI)
3.http://truffleframework.com/ganache/ //本地開發模擬以太坊區塊鏈上的交易
posted on 2018-04-20 23:25 ACM_Someone like you 閱讀(698) 評論(0) 收藏 舉報
浙公網安備 33010602011771號