上文談到「什麼是區塊鏈 (Blockchain)? 可以取代資料庫嗎?」初步的結論是 : 「區塊鏈不會取代資料庫,但是資料庫技術會與區塊鏈技術融合。」
意思就是未來的企業系統會將區塊鏈特性融合進去,例如使用區塊鏈的供應鏈系統,或是使用區塊鏈的企業資源規劃系統。
從這篇「應用區塊鏈技術發展智慧物流之效益分析」可以來看看,為何供應鏈系統需要區塊鏈技術?
我們先看他的結論 : 「將區塊鏈技術運用於物流供應鏈,預期將對物流產業產生相當大的效益」,建議作法則是建置「智慧物流區塊鏈平台」,其架構如下 :
上面的圖大概就是「使用區塊鏈的供應鏈系統」的樣貌,也就是使用傳統資料庫的ERP,加上貫穿上中下游的區塊鏈。
這樣的架構與傳統的資訊系統有何差異呢?
傳統的供應鏈系統,電子商務業者必須至物流業者查詢訂單狀況,物流業者必須至宅配物流業者查詢訂單狀況,消費者則會到他下單的電子商務業者查詢其訂單,資訊的不及時及訂單的交付確認對帳問題,都是物流供應鏈急需解決之問題。就算以上的查詢都能夠透過資料串接,讓電子商務業者在自己系統看到物流業者的資料,同樣會有資料即時性與資料竄改的疑慮。
例如透過資料串接都會是批次處理,電子商務業者就可能看到不正確的資料,並且當物流業者又去更改資料時,電子商務業者就又得到不同的資料。
例如IBM的TradeLens,就是一個利用區塊鏈的集装箱物流解决方案 :
- 它是一個永遠不可改變的、非常安全,提供區塊鏈裡各方在相互協議下整個網絡資訊透通。
- 每個成員在整個供應鏈的生態系裡都可以看到貨物的運送過程,貨櫃在哪裡,也可以看到海關的報關文件或提 單狀態及其它資料。
- 經由即時的改變供應鏈的情況及文件,可以更精確的掌握貨櫃在整個供應鏈運送過程。
- 沒有一個成員不經整個成員同意可以修改,刪除或附加 資料。
- 資訊透通程度越高可以幫助降低造假及錯誤,降低貨物轉運時間。
IBM TradeLens資訊 : https://news.cnyes.com/news/id/4350751
以下來看看Oracle 的 Blockchain for Retail: Supply Chain Management
https://www.youtube.com/watch?v=J760q7Hcyzg
對於區塊鏈應用到企業資訊系統上,大家應該都還會有疑問,供應鏈除了使用區塊鏈技術之外,沒有其他的方式解決問題了嗎?區塊鏈的資料上鏈不是需要礦工嗎?每個資料上鏈不是需要交易費用嗎?這樣會不會讓系統效能變差或是成本提高呢?如果資料上鏈決定在少部分節點上,那麼還有分散式帳本的意義嗎?
供應鏈只能期望區塊鏈技術來解決問題嗎?
台灣曾經推出ABCDE計畫 (AB計畫、CDE計畫),就是在做供應鏈電子化,當然當時並沒有區塊鏈的成熟技術。中心電子大廠與供應商之間之採購與運作都是經由其供應鏈 hub 平台,完成採購、送貨、用料之進銷存, 各供應商均有其各自的 ERP/MRP,中心廠亦有其 ERP,各供應商與中心廠均以 hub 為其共同資訊的依據,而其各供應商之間並無關係,因此彼此利用網路 hub 即可以解決其供應鏈之問題。
A計畫 : 以IBM、Compaq、HP為Hub中心,結合國內資訊業組成供應鏈體系,帶動國外業者來台採購。
B計畫 : 結合15家廠商,包含宏碁、神達、仁寶、華通、微星、誠洲、華宇、致伸、大同、新寶、英業達、大眾、臺達電、華碩、倫飛,連結3948家資訊產品零組件供應商建構電子化供應鏈體系。
C計畫 (Cash金流) : 計有第一銀行、華南銀行、彰化銀行、中國信託、中國國際商銀、世華銀行、富邦銀行及遠東商銀等八家銀行,與大眾、大同、神達等11個資訊電子業中心體系共同參與執行,所推動e化主軸,是首次將資訊流和金流整合應用,希望一舉打通產業供應鏈金流的任督二脈。
D計畫 (Distribution 物流) : 過去企業內部雖然完成了企業資源規劃以及供應鏈管理,但貨物一旦出了企業後,其管理以及監控仍則需要藉助物流管理軟體的支撐才可以確切掌握行蹤,所以說物流管理是企業「完整供應鏈的最後一塊拼圖」。
E計畫 (Engine collaboration 設計協同) : 目前商業發展,已經由過去傳統公司對公司的競爭轉變成供應鏈對供應鏈的競爭,產業所面臨的挑戰包括:產品生命周期大幅縮減、客製化產品的要求日益增加,以及客戶需求變動速度快和複雜的供應商與客戶關係,使得速度化、彈性化以及同步化成為主要企業生存的主要關鍵,因此供應鏈中的產品零組件供應商如何快速協同設計,也是強化供應鏈競爭力的一環。
因此供應鏈並非一定需要區塊鏈來解決他的困難,而是如果需要資料的相關單位很錯綜複雜時 (例如不特定客戶需要查詢貨物資訊),相關單位會疑慮資料是否能夠保證不被竄改 (例如相關單位並不是合作廠商),相關單位需要簽章機制等。這個時候供應鏈就需要藉由區塊鏈來提供資料透明性、不可竄改性、不可否認性。
區塊鏈的資料上鏈不是需要礦工嗎?供應鏈使用區塊鏈,會讓系統效能變差或是成本提高嗎?
資料上鏈需要礦工(miner或是validator)這是正確的,但是資料上鏈並不一定需要交易費用,因為在私鏈上(Private Blockchain),可以設定Gas Fee為零,或是規劃彈性的付費的機制。也就是說你可以決定資料如何上鏈、上鏈費用多少、區塊鏈如何存在分散式特性。
我們先來看看區塊鏈的一些費用問題,瞭解一下以下幾個名詞 :
Gas Limit (Gas 上限) : 可以想成最高只願意出幾公升的汽油,例如從高雄到台北,我只出20公升的汽油。
Gas Used (Gas 用量) : 實際使用的公升數,例如從高雄到台北,只用了10公升的汽油。
Base Fee (基本費) : 汽油價錢/公升。
Priority Fee (小費) : 讓交易加速的小費。
Gas Fee (交易費用) = (Base Fee + Priority Fee) * Gas Used
MetaMask錢包上的費用 :
參考資料 :
EIP-1559 Gas Fee Calculations https://www.blocknative.com/blog/eip-1559-fees
三分鐘讀懂 EIP-1559 對以太坊經濟模型的改變 https://news.cnyes.com/news/id/4697936
倫敦升級之後的 gas 費用計算 https://medium.com/taipei-ethereum-meetup/eip-1559-tx-fee-232576cc11dc
所以,區塊鏈需要礦工或是資料上鏈確認者,但是費用支付方式是可以改變的,只要遊戲規則訂好,是不會影響使用區塊鏈技術的供應鏈的效能或是增加費用的。
EIP-1559 又是什麼?
Ethereum Improvement Proposal (EIP) 是指對於乙太坊的改善建議書,EIP-1559簡單來說就是讓交易費用降低並且減少網路壅塞。
為何網路會壅塞? 競價模式就是主要原因,因為要完成交易都需要礦工處理上鏈,而礦工會優先處理支付費用較高的交易資料,因此沒有出較高費用的交易就需要排隊等待完成交易。
如此一來,交易費用就會堆高,不願意出較高費用的交易就會塞在網路上,EIP-1559就是要解決這個問題。至於是怎麼處理的,就不是本文的重點了。
EIP-1559跟本文有關係的就是,區塊鏈的交易費用可以由設計者來決定,因此應用在企業系統上,並不會造成效能或是成本的問題。
如果資料上鏈決定在少部分節點上,那麼區塊鏈還有分散式帳本的意義嗎?
公用區塊鏈之所以需要分散式帳本的特性,並且防止51%攻擊,是因為公用區塊鏈上任何人都能當使用者,並且使用者並不需要互相信任,因此分散式帳本就很重要。但是私有鏈或是聯盟鏈,因為使用者是經過篩選的,就沒有這個問題或是需要考慮到的安全問題就沒有那麼複雜。
因此分散式帳本或是資料上鏈決定權,只要使用大家都信賴的方法即可。
區塊鏈的智能合約也是供應鏈需要的功能
區塊鏈還有一個很重要的功能,就是智能合約 (Smart Contract) ,例如乙太坊的ERC-721。
智能合約就是在區塊鏈上將雙方的協議條款存入程式碼 (Bytecode),這個程式碼就可以依照規則來執行相關動作,智能合約的撰寫就是在訂定這些規則。
當合約上鏈後,程式碼 (Bytecode) 就會出現在智能合約的鏈上,如下圖 :
如果再經過 Verified,在Contract旁邊就會出現綠色的勾,然後出現智能合約的程式碼,如下圖 :
範例 Smart Contract 位址 : https://rinkeby.etherscan.io/address/0x001acd0e33028dd09421bd649a52281f9f3251c3
ERC 是「Ethereum Request for Comments」的縮寫,意思是以太坊開發者公開徵求意見,希望定義出統一的溝通接口,建立出一套可以遵循的標準,讓以太坊開發者在撰寫智能合約時能更為流暢。
ERC-20 可以用來開發~同質化代幣,例如 eCell (ERC-20 Token List),他的主要特性就是可分割、各代幣等值。
ERC-721 可以用來開發~非同質化代幣 (NFT,Non-Fungible Token),例如 Crypto Punk、Crypto Kitty 或是 OpenSea上的各類NFT,他的主要特性就是不可替代性以及不可分割性。
ERC-1155是介於同質與非同質之間,舉例來說,今天你想舉辦一場演唱會,入場需要購買你特別發行的門票,而為了搖滾區和座位區的門票,你分別在兩種門票上做了不同的的設計,這就是ERC-1155的非同質性;而每張搖滾區的門票價值完全相同,這就是ERC-1155的同質性。
或是在遊戲中,每個玩家可以累積點數 (同質性),然後將點數換成各種不同的虛擬寶物 (非同質性),也是ERC-1155的應用範例。
參考資料 :
智能合約說明 : https://www.youtube.com/watch?v=MD2tT_qXOUc
ERC20和ERC721你懂多少?https://www.youtube.com/watch?v=pxW8c_Au264
不可不知 淺談 ERC721 與 ERC20 https://blockcast.it/2018/04/07/erc721-erc20-ethereum-token-standard/
什麼是 NFT?ERC-721?ERC-1155?https://medium.com/blockchainnewsroom/nft-00-d2dd573a53f3
Token、Coin大不同 https://www.blocktempo.com/the-difference-btw-token-coin/
智能合約是否具備法律效果?是否自動執行?
供應鏈中需要區塊鏈的智能合約來做什麼?我們不妨可理解智能合約為「能夠自動執行合約條款,產生效果的電腦程式」,但是要先知道光是智能合約本身並不具備法律效果,只能當成相關各方的約定,如果要具備法律效果還需要額外的法律程序,例如簽約認證等。
而智能合約的「自動執行」也不是真的「自動」,而是電腦程式的 「if-then-else」 的邏輯執行的結果,也就是要智能合約執行動作,還需要滿足觸發條件,在觸發條件成立的情況下,就去執行合約內容。至於觸發條件是什麼,完全看智能合約怎麼撰寫。有時候觸發條件是自動的,例如當賣方收到虛擬貨幣時就自動滿足觸發條件;有時候觸發條件是手動的,例如手動讓NFT開始解盲。
使用Remix撰寫智能合約
為了真實理解智能合約,我們來真正開發吧,以下是以ERC-721來開發NFT的智能合約範例 : https://github.com/niclin/nic_meta/blob/master/contracts/nic_meta_nft.sol
智能合約撰寫相關資源 :
ReMix開發環境 https://remix.ethereum.org/
Rinkeby Faucet https://rinkebyfaucet.com/
Faucet Chain Link https://faucets.chain.link/
Ropsten Etherscan https://ropsten.etherscan.io/
Rinkeby Etherscan https://rinkeby.etherscan.io/
Opensea Testnet https://testnets.opensea.io/
以下是說明影片 : https://www.youtube.com/watch?v=3vWw9Xt48bs
因為上面影片有一段需要產生NFT的組圖程式,使用到 HashLips,對於沒有程式設計經驗的人來說,會完全搞不清楚 HashLips 到底在幹什麼,所以這裡提供了範例資料 :
notRevealedURI 請使用如下資料
ipfs://QmesLMxh8wPd3DWbFJDuULrzY4TFjKLzEpkEQjD1c6Ef4M
notRevealedURI 其實就是一個JSON,裡面指定一個圖檔。
baseURI 請使用如下資料
ipfs://QmbC43JiEDzJTeFdXmyQgk3qQzLQmhn1JLm7bDTtuJo1Kr/
baseURI 也是一個JSON,裡面指定一個目錄,目錄內有圖檔。
(上面baseURI請記得最後面的 / 也是URI的一部分,notRevealedURI 就不需要,因為它不需要再以URI跟圖檔路徑組合)
其實組圖程式的用途只是產生圖檔及對應的JSON檔案而已,然後上傳IPFS即可,這個範例使用 Pinata.cloud 來做IPFS。
企業NFT應用範例 :
永豐金發行「豐寵粉NFT」
https://news.cnyes.com/news/id/4875382
LINE攜手26家企業佈局NFT生態系、交易平台將登場!
https://www.bnext.com.tw/article/68135/line-next-nft-26-partners
IPFS又是什麼玩意?星際檔案系統 (IPFS,InterPlanetary File System) 是一個旨在實現檔案的分散式儲存、共享和持久化的網路傳輸協定。它是一種內容可定址的對等超媒體分發協定。在IPFS網路中的節點構成一個分散式檔案系統。
IPFS 說明影片 :
https://www.youtube.com/watch?v=uwRaQP5kTXE
以往 https 這類協定是網址來定位,而IPFS是以CID (Content IDentifier) 來定位,這個 CID 其實就是檔案的雜湊函數。
就好像 https 是以地址來找對象,例如 https://example.com/example.png ,其中圖檔可能被替換,example.com也可能被變更指向到不同的機器上,所以並不能確保今天看到的圖檔,跟明天看到的是否相同。
但是IPFS使用 CID 來找對象,就不一樣了,一旦確定 ipfs://雜湊函數,只要檔案變動了,雜湊函數就變了,並且IPFS不是單一的機器,而是分散式的,因此可以確定圖檔不會被竄改。
當然要製作NFT,並不需要會寫智能合約,因為有很多網站已經提供製作NFT服務,你可以直接在OpenSea上去製作即可,但是透過Remix開發智能合約,比較會知道智能合約的原理。
以下是另外一個智能合約的範例 ~ 7分鐘學會用 Remix IDE debug 智能合約 :
https://www.youtube.com/watch?v=XiNWE7CCnV4
最後來聽聽關於區塊鏈的各項應用 :
https://www.youtube.com/watch?v=u9hi608Qb8A
結論 : 區塊鏈 (Blockchain) 在供應鏈 (Supply Chain) 與企業資源規劃 (ERP) 系統扮演什麼角色? 答案很明顯,就是以往很複雜、或是很難弄正確、無法快速解決的問題,現在都可能使用區塊鏈的技術來找到解決方案了。
但是需要搞清楚的是,並不是引用區塊鏈的技術就能夠解決問題,而是如何把最適合的技術導入供應鏈與企業資源規劃系統中,讓區塊鏈的技術發揮最大的作用。
0 留言