以太坊去中心化淘寶智能合約案例
阿新 • • 發佈:2018-08-12
安全 中國 重置 枚舉 是什麽 出現 功能 received 支付寶
篇文章我們來介紹一個簡易的區塊鏈電商系統的核心功能,10多年來,我們習慣了淘寶的電商模式,淘寶為電商在中國普及做出了突出貢獻,值得肯定,也完成了歷史使命。
淘寶模式的核心是什麽?
免費是一方面,我認為最核心的是解決了網上交易買賣家的信任問題,通過支付寶作為資金中介,使買賣家可以放心的交易。
但是,淘寶迅速崛起為巨頭後,交易環節出現了很多不好的現象:刷信譽、巨大經濟利益帶來的內部腐敗等等。因此,淘寶雖然成為了電商巨頭,但是卻沒有真正的解決電商產業的信譽問題。這個問題其實不是淘寶特有,是一種社會現象,不是淘寶,可能就是騰訊或者百度,總之,有人的地方,必然會存在問題。
未來的電商是什麽樣的?
我認為未來電商是建立在區塊鏈之上,是一個去中心化的電商平臺。一個真正可信、不被任何公司控制的組織形態。交易在區塊鏈裏完成,買賣家無須彼此信任,可以在區塊鏈公平公證的體系下安全可靠的運轉。
好了,光談理論是沒用的,我們通過下面的案列來解釋去中心化電商系統的雛形。
智能合約代碼:
contract Purchase { // 定義價格、賣家、買家狀態變量 unit public value; address public seller; address public buyer; // 訂單狀態枚舉類型 enum State { Created, Locked, Inactive } // 定義訂單狀態變量 State public state; // 定義Purchase構造函數,初始化賣家、價格信息 function Purchase() { seller = msg.sender; value = msg.value / 2; if (2 * value != msg.value) throw; } modifier require(bool _condition) { if (!_condition) throw; _ } modifier onlyBuyer() { if (msg.sender != buyer) throw; _ } modifier onlySeller() { if (msg.sender != seller) throw; _ } modifier inState(State _state) { if (state != _state) throw; _ } // 訂單狀態變化時調用的事件函數 event aborted(); event purchaseConfirmed(); event itemReceived(); // 訂單處於鎖定之前,賣家可以終止購買並退回以太幣 function abort() onlySeller inState(State.Created) { aborted(); seller.sender(this.balance); state = State.Inactive; } // 買家確認購買,以太幣將被暫時鎖定,直到買家確認收貨。 function confirmPurchase() inState(State.Created) require(msg.value == 2 * value) { purchaseConfirmed(); buyer = msg.sender; state = State.Locked; } // 買家確認收貨,鎖定的以太幣將被激活,分別發送給買賣家。 // 訂單狀態變為關閉 function confirmReceived() onlyBuyer inState(State.Locked) { itemReceived(); buyer.sender(value); seller.sender(this.balance); state = State.Inactive; } // 當交易沒有數據或者數據不對時,觸發此函數, // 重置操作,確保參與者不會丟失資金 function() { throw; } }
帶來的思考
通過上面的代碼可以看到,買賣家通過以太坊智能合約做資金擔保,代替淘寶、支付寶扮演的角色,就可以順暢的完成交易。並且,這個信譽體系是無法篡改的,完全可信的,這套系統隨著時間的推移,將變得越來越有價值,並且天然具有全球性,也為跨境貿易帶來新的機遇。
當去中心化淘寶 + 區塊鏈供應鏈,如此產生的化學反應,將徹底解決信譽體系、假冒偽劣、國際化這些阿裏目前難以解決的問題,將孕育一個遠大於阿裏電商帝國的市場空間。
以太坊去中心化淘寶智能合約案例