解釋 Haskell、Plutus 和 Marlowe

對於卡爾達諾區塊鏈開發人員來說,由於卡爾達諾中存在不同的 Haskell、Plutus 和 Marlowe 語言,一開始可能會有點困惑。 該部落格解釋了它們之間的差異、各自所扮演的角色,以及它們在卡爾達諾上構建時如何相互構建。

作為一個開源、去中心化的區塊鏈,它具有快速、安全的交易、可預測的費用和其他獨特功能,卡爾達諾是開發人員建立 dApp 時最通用的智慧合約區塊鏈之一。 卡爾達諾也是第一個基於科學同行評審和密碼學研究方法構建的公共區塊鏈。 考慮到這一點,Cardano 提供了一個多方面的智慧合約平台,以滿足區塊鏈開發人員、企業和企業家不同的 Web3 需求。

在 Cardano 中,電腦語言 Haskell 以及兩種特定領域語言 Plutus 和 Marlowe 作為程式設計工具,提供多維視圖來滿足不同的使用者需求。 這些語言在產品開發方面各司其職,但它們也相互促進。

以下詳細介紹每一項。

什麼是Haskell?

Haskell 是一種通用、靜態型別、純函數式程式語言。 它基於 Lambda 演算,這是圖靈機的替代方案,是一種用於表達計算概念的正式數學系統。

自 1990 年誕生以來,Haskell 一直處於函數式程式設計的前沿。當金融界和不同航太機構建構關鍵系統時,它得到了廣泛採用,因為它在設計時提供了強大的安全特性複雜的系統。

在卡爾達諾中,Haskell 是整個網路的核心。

Cardano 節點是用 Haskell 編寫的,支撐區塊鏈內部運作的大部分架構都是用 Haskell 程式碼編寫的。 任何想要在網路較低層工作的人都需要對 Haskell 有深入的了解。

當然,大多數卡爾達諾區塊鏈開發人員在創建 dApp 時不會深入研究。 然而,Haskell 對他們也發揮著重要作用。 正如我們之前所說,鏈下程式碼是任何 dApp 的主要組成部分。 當使用 IOG 或 Atlas 的 Plutus 應用程式後端 (PAB) 等工具時,可以用 Haskell 編寫這段智能合約。

使用 Haskell 進行鏈下程式碼時可以實現安全性和效能提升,儘管它不是我們在本系列之前的文章中看到的唯一選擇。

Haskell 是支援整個卡爾達諾網路的語言。 即使對於那些在設計 dApp 時不希望使用它的區塊鏈開發人員來說,它也是區塊鏈的主要組成部分。 因此,該語言的基本知識對於任何轉向卡爾達諾的人都很重要。

什麼是 Plutus?

Plutus 是一種特定於領域的語言,旨在為卡爾達諾編寫鏈上程式碼。 正如我們之前討論的,卡爾達諾上的 dApp 分為鏈上程式碼和鏈下程式碼,前者也稱為驗證器。

編寫智能合約鏈上部分的主要語言是 Plutus。 該語言借用了 Haskell 的大部分語法和屬性,也繼承了其母語言的許多安全功能。

這意味著掌握 Haskell 的基本知識不僅有助於編寫 Plutus 程式碼,還有助於鞏固兩種語言的知識。 大多數來自 Haskell 函數式程式設計的原則使得 Plutus 程式碼在智慧合約方面更加安全。

具體來說,Plutus 是區塊鏈開發人員用來編碼卡爾達諾網路需要驗證的業務邏輯的語言。 鏈上程式碼是一組使 dApp 公開且不可變的規則,因為當使用者與 dApp 互動時,Cardano 上的節點將執行此程式碼。

Cardano 上的 dApp 依靠 Plutus 來保護此業務邏輯、防止攻擊發生並管理加密資產的行為。 由於所有這些原因,它在生態系統中具有巨大的重要性。

Plutus 語言將成為卡爾達諾區塊鏈開發人員的主要工具。 這是最受支援的編寫驗證器的方式,EMURGO、IOG 和 Cardano 基金會花了大量時間為這種語言編寫文件。

它在生態系統中擁有最多的支持,並且隨著更多功能的添加來支持它,它將繼續改進。 因為 Plutus 並不是一款讓人欣喜若狂的產品,而是一款不斷收集社群回饋以進一步改進的產品。

什麼是 Marlowe?

Marlowe 是卡爾達諾的另一種特定領域語言。 它也用於設計驗證器(鏈上)並允許他們將此業務邏輯部署到網路。 Marlowe 和 Plutus 之間的主要區別在於,前者使用視覺結構而不是抽象的編碼邏輯來更加友好和直觀。

Marlowe 使用圖形介面,其中轉帳、金額、存款等智慧合約概念由圖形拼圖表示。 每個部分都有一組邏輯連接,需要這些連接才能使邏輯有效。

該介面可用於創建區塊鏈技術中的大多數基本金融應用程式。 另外,透過使用系統的邏輯,可以由各個部分組成更複雜的功能。

Marlowe 的設計目的是讓專案能夠輕鬆開發和部署鏈上程式碼。 它的目的是降低障礙,並向可能無法找到全職卡爾達諾區塊鏈開發人員的團隊開放區塊鏈的力量。

此外,Marlowe 的後端也使用 Haskell 的原理。 任何使用 Marlowe 設計的驗證器都可以從組合在一起的視覺效果轉換為 100% 有效的 Haskell 程式碼。

這使得它成為 Haskell 和 Plutus 的強大教學工具。 未來的學生可以使用圖形介面自由地編寫驗證器,然後將其轉換為程式碼。 這樣他們就可以看到所代表的作品如何轉化為 Plutus 並將其用作參考。

這樣,學習Marlowe就強化了 Plutus 和 Haskell 原理。 卡爾達諾上的所有三種主要語言相互關聯並相互建構。