許多去中心化技術(shù)的基礎(chǔ)結(jié)構(gòu)背后有一種被稱為“工具”或“工具包”的東西,它們構(gòu)成了技術(shù)的整體性質(zhì)。在許多情況下,開發(fā)人員使用現(xiàn)有的框架或編程語言來創(chuàng)建這樣的基礎(chǔ)設(shè)施。編程語言可以理解為繪制肖像所需的顏色調(diào)色板。因此,這幅畫本質(zhì)上只在創(chuàng)造力受到限制的情況下才會強(qiáng)大,但不同的調(diào)色板允許完全不同的繪畫類型。編程也是類似的,如果要以以太坊的“Solidity”語言為調(diào)色板,所創(chuàng)建的繪畫都是去中心化的應(yīng)用。
以太坊的Solidity語言是一種新型財(cái)務(wù)編程的基礎(chǔ),在這種編程中,您可以創(chuàng)建自己的智能合約。以太坊背后的概念是創(chuàng)造一種新的生態(tài)系統(tǒng),各方可以通過一種近乎完美的去中心化方式彼此溝通,在大多數(shù)情況下,中間人被切斷。
智能合約及其架構(gòu)
在理解可靠性的作用以及它如何徹底改變幾乎所有去中心化系統(tǒng)的開發(fā)環(huán)境之前,理解智能合約的核心概念及其構(gòu)建的目的是什么非常重要。
在傳統(tǒng)的工作流中,一個(gè)人通常有一個(gè)合約,該合約以某種方式將多方綁定在一起。假設(shè)某人和另一個(gè)收債人簽訂了一份付款合約,收債人簽了合約,就要付給他100美元。這很簡單,對吧?
以太坊背后的概念是,人們可以將整個(gè)過程虛擬化,通過智能合約提高效率。簡單地以前面的債務(wù)義務(wù)為例,并將其虛擬化。這樣就有了不可改變的和透明的制度,債務(wù)永遠(yuǎn)不會受到欺詐。
智能合約是在雙方之間建立的,然而,雙方可以是1人的一方與50人的一方簽訂,反之亦然。智能合約背后的另一個(gè)核心概念是,它為金融產(chǎn)品部分的新機(jī)會打開了大門。最初代幣發(fā)行 (ICO)的概念之所以成為可能,是因?yàn)橹悄芎霞s具有不可變性和透明性的特點(diǎn)。使用智能合約,您可以頒發(fā)一個(gè)本機(jī)代幣。
設(shè)計(jì)和流程
在設(shè)計(jì)堅(jiān)實(shí)的基礎(chǔ)時(shí),以太坊團(tuán)隊(duì)希望強(qiáng)調(diào)可用性和簡單性。這樣做的原因是為了使工具箱能夠適用于盡可能廣泛的人群。以太坊提出的主要主張是,實(shí)體的概念被設(shè)計(jì)為用于分散化應(yīng)用程序(也稱為dApp)的JavaScript。
JavaScript在開發(fā)人員中很有名,因?yàn)樽鳛橐粋€(gè)經(jīng)驗(yàn)豐富的程序員,學(xué)習(xí)JavaScript相對容易,它包含了現(xiàn)代語言的主要概念和設(shè)計(jì)。同樣,可靠性的基礎(chǔ)被設(shè)計(jì)成盡可能類似于現(xiàn)有的現(xiàn)代編程出口。像HTML這樣的標(biāo)記語言的知識非常有限,這可能會給那些想要學(xué)習(xí)穩(wěn)定性的人造成障礙,至少第一眼看上去是這樣,但是,一旦開發(fā)人員掌握了其中的訣竅,導(dǎo)航起來就相當(dāng)簡單了。
盡管從技術(shù)上講,可以創(chuàng)建自己的基礎(chǔ)程序,比如高級循環(huán)、計(jì)算器等等,但是這種語言是專門為智能合約編程和分散應(yīng)用程序開發(fā)而定制的。這意味著在開發(fā)人員開始將其應(yīng)用于智能合約開發(fā)之前,用戶無法提取其真正的可用性。如果要消除智能合約集成,就會得到一種非常弱的語言。
如果讀者想要?jiǎng)?chuàng)建一個(gè)名為“myContract”的智能合約,那么開發(fā)人員必須通過“contract myContract”來建立它的實(shí)例化。通過這個(gè)例子,我們可以感受到 Solidity的流動(dòng)。它維護(hù)了許多設(shè)計(jì)和預(yù)編程關(guān)鍵字,這些關(guān)鍵字將直接與以太坊虛擬機(jī)(EVM)協(xié)調(diào)的平臺集成。
Solidity和分散式應(yīng)用程序(dApp)
雖然那些熟悉區(qū)塊鏈和加密貨幣的人能夠理解分散式系統(tǒng)工作原理的核心,但是初學(xué)者可能很難確定dApp是什么以及它們與可靠性的關(guān)系。
分散式應(yīng)用程序只是在網(wǎng)絡(luò)上運(yùn)行的應(yīng)用程序,而不是單獨(dú)的系統(tǒng)或用戶??梢赃@樣想:在為Mac創(chuàng)建應(yīng)用程序時(shí),管理應(yīng)用程序后端的網(wǎng)絡(luò)是Apple或單個(gè)實(shí)體。在創(chuàng)建dApp時(shí),控制其所有進(jìn)程的網(wǎng)絡(luò)都是以太坊網(wǎng)絡(luò)上的進(jìn)程,因此為應(yīng)用程序創(chuàng)建了一個(gè)“分布式”系統(tǒng)。
智能合約是建立到以太坊區(qū)塊鏈直接連接的虛擬協(xié)議。dApp是一種應(yīng)用程序,它使用智能合約連接到區(qū)塊鏈,從而實(shí)現(xiàn)分散化。Solidity只是一個(gè)用于在靜態(tài)應(yīng)用程序和分布式后端之間建立連接的工具。
Solidity不是智能合約,也不是dApp,它是一種編程語言,用于創(chuàng)建智能合約,然后可以將應(yīng)用程序鏈接到區(qū)塊鏈。在學(xué)習(xí)了可靠性之后,開發(fā)人員可以創(chuàng)建與區(qū)塊鏈交互的分散式應(yīng)用程序。
傳統(tǒng)的集中式應(yīng)用程序維護(hù)與在靜態(tài)點(diǎn)對數(shù)據(jù)庫中起作用的單一數(shù)據(jù)庫的連接。分散式應(yīng)用程序是分布的,由于各種各樣的原因,它們在點(diǎn)對點(diǎn)(P2P)方法中發(fā)揮著重要作用。主要優(yōu)點(diǎn)是維護(hù)正常運(yùn)行時(shí)間,并限制任何潛在的集中成本或錯(cuò)誤。
競爭對手和路線圖
Solidity每天都會有新的版本,這在社區(qū)中引起了一些爭議。Solidity是一門新興的語言,它仍然存在著許多錯(cuò)誤,需要進(jìn)一步的發(fā)展和完善,才能使其完全合法化。創(chuàng)建像以太坊這樣脆弱的環(huán)境非常容易,這使得新開發(fā)人員的代碼容易出現(xiàn)災(zāi)難性的錯(cuò)誤,從而導(dǎo)致在創(chuàng)建智能合約時(shí)損失大量金錢。
在合約方面,以太坊的主要競爭對手在很多情況下被認(rèn)為是TRON和EOS的主流案例。然而,就實(shí)際的健壯性編程語言的競爭而言,似乎只有有限數(shù)量的實(shí)體直接使用它。例如,EOS開發(fā)工具包提供了具有競爭力的智能合約,但是,合約是用c++編寫的,c++是一種已經(jīng)存在的語言。在內(nèi)部智能合約開發(fā)方面,本地創(chuàng)建的編程語言可能需要一段時(shí)間才能超越其穩(wěn)定性。
評論
查看更多