Vyper是一種全新的以太坊開發語言。
一、它在邏輯上類似于Solidity,在語法上類似于Python
和Solidity一樣,Vyper可編譯為以太坊虛擬機(EVM)字節碼,運行在以太坊虛擬機(EVM)上。
語法與Python非常類似,可以說95%類似。所以Vyper是一個非常適合人類編寫和閱讀的語言。
二、Vyper最顯著的兩大特點是:安全和簡單
以太坊是一個價值網絡,構建于以太坊之上的應用大多需要進行價值的轉移,因此安全性尤其重要。像The DAO事件、Parity的多重簽名電子錢包漏洞等,給以太坊的生態發展帶來了嚴重的傷害,也對用戶的財產造成了重大的損失。
安全是硬道理,誰都希望自己錢包里的錢是安全的。一個不能保證安全的網絡是無法讓用戶每天晚上安穩睡覺的,隨時都要提心吊膽,擔心會被黑客攻擊。這樣的網絡自然無法對更多的潛在用戶形成吸引力,甚至會造成已有用戶的大量流失。
而很多的合約漏洞,或者說不安全的因素,都是來自于復雜。規則越簡單,越容易理解,系統就越強壯。
Vyper就是基于這樣的原則,摒棄了很多Solidity語法中的類繼承,函數重載,運算符重載、遞歸、內聯匯編等特性,把所有不必要的花哨的元素都去掉,讓開發者的花式炫技無處安放,但是讓審計者的工作大大簡化。
用Vyper開發者自己的話說,Vyper為了提高安全性的目標,它會故意禁止一些事情或者讓事情變得更難。
這里的更難是針對開發者來說的,比如說用遞歸可以把一個原本需要用10行代碼解決的事情,僅用4-5行代碼就解決掉。但是為了安全以及容易審計,Vyper犧牲了開發者的便利性,禁用遞歸,采用更原始但是更安全的辦法來實現。雖然少了一些所謂的高級功能,這種做法卻使得Vyper的學習曲線大幅平緩,代碼閱讀或審計更加輕松易容。而且為了錢安全的存儲,開發者應該也不會有太多怨言。
因此,相比較于語法類似Javascript的Solidity,Vype或許對開發者來說失去了很多靈活性,會讓開發者覺得受到束縛,但是對于審計人員等閱讀者來說,卻是大大降低了難度。
這體現了安全性至上、讀者的簡單性比作者的簡單性更重要的設計原則,所以Vyper是一門更加安全、簡單的以太坊語言,更適合于處理電子病歷、金融交易等安全性要求極高的業務。
三、Vyper如何入門
前面說了那么多,都是在介紹Vyper的特點,但是學習并使用這門語言呢?這就需要有一定的Solidity和Python基礎了。Vyper對以太坊的各種操作都跟Solidity一樣,而語法與Python幾乎一樣。可以說Vyper具有了Python的形和Solidity的神,了解Solidity和Python,就可以毫無難度的掌握Vyper。
當然,掌握一門語言的最有效的途徑就是動手做項目。
Vyper的Github網址: https://github.com/ethereum/vyper
Vyper的在線編譯器: https://vyper.online/#