來源|?hackernoon
編譯|火火醬
責編|Carol
出品|區塊鏈大本營(ID:
blockchain_camp),原題《想開發智能合約?先get下這個適合所有人的模型驅動法!》
不得不說,開發智能合約真的是一個既復雜又昂貴的過程。
與在Solidity中編寫智能合約相反,將智能合約建模為圖形狀態機具有很多優勢。
你可以專注于業務邏輯,而不必糾結于技術細節,甚至非程序員也可以理解你的合約在做什么。
我們使用YAKINDUStatechartTools的開源版本將智能合約建模為狀態機。這樣一來,你就可以使用模擬器測試模型,并最終生成Solidity代碼。
YAKINDUStatechartTools:
https://www.itemis.com/en/yakindu/state-machine/
聲音 | 彭博社:技術指標顯示以太坊處于2019年5月以來最超買水平:彭博社發文稱,根據衡量連續收盤價漲跌的GTI全球實力指標,以太坊處于自2019年5月以來的最超買水平。此外,以太坊今年以來的漲幅,也推動彭博銀河加密指數進入超買區間。該指數追蹤一些規模較大的數字資產,以太坊占指數的近30%。[2020/2/14]
想開發智能合約
這兩個問題你必須要解決
區塊鏈的智能合約開發非常復雜。如果你想為以太坊區塊鏈開發智能合約,那么就必須學習一種全新的編程語言,例如Solidity。
如果你已經成功地編寫和測試了自己的第一個智能合約,那么我要提醒你下一個有可能遇到的難題:由于一旦將智能合約部署到主網絡后你就無法再對其進行更新,所以必須確保智能合約代碼能夠抵御攻擊。
分析 | 技術指標顯示XRP正在向0.25- 0.28美元的水平移動:加密貨幣交易員Joker日前發推稱,從艾略特波浪理論和圓底(Rounding Bottom)模式的角度來看,XRP的價格看起來不錯。后一個指標往往出現在長期下降趨勢即將結束的時候。該交易員表示,這兩種選擇都表明XRP正在向0.25- 0.28美元的水平移動。(U.Today)[2020/1/13]
雖然我們已經對已知的攻擊媒介有了一定的了解,但是要在智能合約中找到這仍安全漏洞仍需要具備大量經驗。
參考:
https://consensys.github.io/smart-contract-best-practices/known_attacks/
過去的經驗告訴我們,智能合約會經常遭到黑客入侵,出現資金被盜問題。
由于保護智能合約的工具還不夠成熟,無法發現所有潛在的安全漏洞,因此你需要對智能合約進行審核。但現在只有少數專家能夠對智能合約進行編碼審核,而這就引出了智能合約開發的第二個問題——價格昂貴。
動態 | IBM區塊鏈高級技術人員當選Hyperledger技術指導委員會主席:隨著IBM在Hyperledger技術指導委員會(TSC)的席位增加引發爭議,該委員會又選定另一名IBM官員擔任其主席。據報道,IBM區塊鏈和Web開放技術的高級技術人員Arnaud Le Hors將接替英特爾首席工程師Dan Middelton擔任主席。(coindesk)[2019/9/12]
這兩個問題放在一起,就使得個人或小型初創企業開發高質量的智能合約變得非常困難。
可解決這些問題的工具
兩年前,我們開始開發YAKINDUSolidityTools,這是一個集成的開發環境,提供了諸如上下文敏感幫助、智能代碼建議、快速修復、重構、模板和實時驗證等功能。
今年,我們將核心功能提取到所謂的語言服務器中,可以在許多編輯器中重復使用。
不過,雖然這極大地改善了開發人員的開發體驗,但這并不是一勞永逸的結果。
聲音 | 彭博社:技術指標顯示比特幣或將迎來大幅上漲:據彭博社報道,在過去兩天的價格上漲之后,比特幣已經突破了其Vera band的上限。這表明,隨著比特幣繼續在這一上限上方交易,其價格或將迎來大幅上漲。據悉,Vera band是用來識別上行或下行趨勢的一種指標。[2019/7/10]
語言服務器:
https://dwz.cn/KQjhESNR
對于非Solidity專家來講
智能合約開發仍然十分困難
由于我們也是YAKINDUStatechartTools的開發人員,因此我們對狀態機如何簡化智能合約的開發進行了一些研究,并開始將語言服務器集成到YAKINDUStatechartTools中。
YAKINDUStatechartTools:?
https://dwz.cn/1Me4yZeY
動態 | 英特爾技術主管將擔任Hyperledger技術指導委員會主席:據coindesk消息,英特爾技術主管Dan Middleton被選為Hyperledger技術指導委員會(TSC)主席,他將接替來自IBM的Christopher Ferris。[2018/9/7]
這基本上意味著我們可以在對狀態機進行建模時訪問Solidity的內置功能,例如全局變量、常量和函數。
集成的仿真引擎可以驗證模型的行為。只需點擊一下鼠標,即可在模型之外生成智能合約Solidity代碼。
什么是狀態機?
大多數軟件開發人員認為,狀態機比看起來復雜得多,并且會在日常工作中避免使用它們。這并不奇怪,因為狀態機通常被認為過于復雜和學術化,不適合實際應用。
如果你看過維基百科上關于有限狀態機的文章,就會發現諸如“計算的數學模型”、“確定性和非確定性自動機”以及“powerset構造”等術語。聽起來一點也不好玩,對不?
維基百科關于有限狀態機的文章:
https://dwz.cn/1Me4yZeY
實際上,我們在這里進行智能合約開發的狀態機,與學術上說的的狀態機是完全不同的兩種東西。這里提到的狀態機,指的是為許多不同應用程序開發軟件的有效方式。
例如,它們經常在嵌入式系統領域中,被用于對汽車或飛機之類的反應系統進行建模。反應系統是一種對外界事件做出反應的系統,該事件由傳感器或人機接口觸發。
智能合約沒有什么不同,來自外界的交易觸發了智能合約內部狀態的改變。
狀態機的基本構建塊是“狀態”和“轉換”。狀態機是由有限數量的“狀態”組成的。機器一次只處于一種狀態,該狀態被稱為“活動狀態”。它可以通過“觸發器”或者在特定條件下從一種狀態更改為另一種狀態。
示例:管理許可證的智能合約
舉個例子,我們開發了一個智能合約,該合約將被用于管理許可證。該用例非常適合于區塊鏈,因為只要不終止合同,許可證持有者就可以控制許可證協議。
一個智能合約可以維護一個許可證的使用周期。智能合約創建后,許可證進入“Valid有效”狀態,初始預算為10個代幣。有兩種不同的接口可以與智能合約進行交互。
許可證的所有者可以增加預算以延長許可證期限。許可證管理者可以根據時間段定期收取許可證費用。
如果沒有更多可用預算,許可證將進入“Invalid無效”狀態,直到有新的預算被添加到合約。許可證所有者可以隨時終止合同,并收回剩余預算。
可以看一下上面的圖片。我認為該模型比500行Solidity代碼更全面,也更易于理解。
模型驅動的智能合約開發有哪些優勢?
首先,可以在更高的抽象級別上為智能合約建模。在隱藏所有技術細節后,你可以專注于要開發的域邏輯。甚至連根本沒有編程經驗的人都可以理解圖形狀態機。
生成的智能合約代碼質量更高。一旦確定了代碼生成器會生成正確且安全的代碼,你就不必審核使用此代碼生成器生成的每個合約。這將減少小型創新型初創公司以及大型公司將其業務案例遷移到區塊鏈技術的障礙。
模型是獨立于平臺之外的。通過使用不同的代碼生成器,你可以用不同的語言生成智能合約。也許在將來的某一天,將會產生另一個與以太坊一樣強大的區塊鏈。
更值得高興的是,你可以重復使用模型來為另一個區塊鏈生成智能合約。
你可以執行和測試模型。在將模型部署到區塊鏈之前,你可以使用內置模擬器輕松執行模型,以此來驗證模型是否符合預期。
該工具仍處于早期開發階段,代碼生成器尚未準備好投入生產。生成高質量的合同代碼是一項非常艱巨的任務,但我們希望我們能盡快提供一個可供下載的工作原型!
到目前為止,在區塊鏈的歷史故事中,每年都可以提煉出一個總體趨勢。2009年故事的主題是比特幣。2015年是以太坊。2017年則是ICO.
1900/1/1 0:00:00編者注:原標題為《礦業賭局》12月11日,一個名叫“WinterCoiner”的微博用戶貼出自己對明年比特幣減半行情的計算與分析,引發圈內人士對于“礦圈豪賭”和“礦難”的廣泛關注.
1900/1/1 0:00:00來源:21世紀經濟報道 作者:包慧 金融科技正日益成為區塊鏈技術落地應用的主戰場。各大銀行、互聯網巨頭和傳統的IT服務商都紛紛加入這一戰局.
1900/1/1 0:00:00作者:Vitalik 翻譯&校對:阿劍、陳亮&阿劍 來源:以太坊愛好者 特別感謝JustinDrake和JinglanWang的反饋.
1900/1/1 0:00:00昨天,全球審計四巨頭之一的安永宣布了其零知識證明技術的最新版本,該技術用于實現公有區塊鏈上的私人交易。這個被稱為Nightfall開源協議于去年正式發布,側重于區塊鏈的可擴展性.
1900/1/1 0:00:00開放金融/DeFi的發展速度非常驚人,也是很多公鏈看好并積極布局的方向。但是監測DeFi的數據變化有時候是一件比較困難的事情.
1900/1/1 0:00:00