Ngôn ngữ lập trình Marlowe

Marlowe là một ngôn ngữ dành riêng cho miền (DSL) được nhúng trong Haskell, cung cấp các hợp đồng tài chính cho blockchain mà mọi người đều có thể viết mã. Nó là một nền tảng cho tài chính phi tập trung (DeFi) hỗ trợ cho vay trực tiếp, ngang hàng, hợp đồng chênh lệch (CFD) và các công cụ tương tự khác. 

Marlowe là một ngôn ngữ nhỏ, với một số cấu trúc, đối với mỗi hợp đồng, mô tả hành vi liên quan đến một nhóm vai trò cố định, hữu hạn.

Marlowe là một ngôn ngữ nhỏ, với một số cấu trúc khác nhau, đối với mỗi hợp đồng, mô tả hành vi liên quan đến một nhóm vai trò cố định, hữu hạn. Những vai trò này được thực hiện bởi những người tham gia hợp đồng.

Hợp đồng có thể được xây dựng bằng cách tập hợp một số lượng nhỏ các cấu trúc này kết hợp với nhau có thể được sử dụng để mô tả và mô hình hóa nhiều loại hợp đồng tài chính khác nhau. Một số ví dụ bao gồm hợp đồng đang chạy có thể thực hiện thanh toán cho một vai trò hoặc cho một khóa công khai, một hợp đồng có thể chờ một hành động của một trong các vai trò – chẳng hạn như một khoản tiền gửi - hoặc một lựa chọn từ một tập hợp các tùy chọn . Điều quan trọng là, hợp đồng không thể chờ đợi vô thời hạn cho một hành động: nếu không có hành động nào được thực hiện trước một thời gian nhất định-the timeout (thời gian chờ), hợp đồng sẽ tiếp tục với một hành vi thay thế, ví dụ: thực hiện một biện pháp khắc phục như hoàn trả bất kỳ khoản tiền nào trong hợp đồng.

Tùy thuộc vào trạng thái hiện tại của hợp đồng, nó có thể đưa ra lựa chọn giữa hai quy trình hành động thay thế trong tương lai, bản thân chúng là hợp đồng. Khi không cần thực hiện thêm hành động nào, hợp đồng sẽ đóng và bất kỳ đơn vị tiền tệ nào còn lại trong hợp đồng sẽ được hoàn lại.

Khi một hợp đồng được chạy, các vai trò liên quan được thực hiện bởi những người tham gia, đó là danh tính trên blockchain. Mỗi vai trò được đại diện bởi một token on the chain (trên chuỗi) và các vai trò có thể được chuyển giao hoặc giao dịch trong quá trình thực hiện hợp đồng.

Marlowe đã được thiết kế để được sử dụng bởi những người là chuyên gia trong lĩnh vực hợp đồng tài chính hoặc kinh doanh, nhưng không có kỹ năng và kinh nghiệm lập trình, vì nó cho phép bạn xây dựng hợp đồng một cách trực quan và bằng code truyền thống hơn. Ví dụ, các tổ chức tài chính có thể sử dụng nó để phát triển và triển khai các công cụ tùy chỉnh cho khách hàng và khách hàng của họ.

Bản thân ngôn ngữ Marlowe hiện được áp dụng trong cả JavaScript và Haskell, cung cấp cho bạn sự lựa chọn về trình chỉnh sửa tùy thuộc vào sở thích và bộ kỹ năng của bạn. Javascript mang lại sự linh hoạt và tốc độ sử dụng với một hệ sinh thái đang phát triển mạnh, trong khi Haskell là một ngôn ngữ lập trình chức năng với hệ sinh thái được thiết lập riêng và framework thử nghiệm vững chắc.

Marlowe có thể tương tác với real-world data (dữ liệu trong thế giới thực) – chẳng hạn như oracles – và những người tham gia hợp đồng đưa ra các lựa chọn trong quy trình hợp đồng để xác định điều gì xảy ra cả trong và ngoài chuỗi (on- and off-chain), chẳng hạn như trong ví. Marlowe là blockchain-agnostic (bất khả tri): nó cho phép viết các hợp đồng thông minh trên mô hình dựa trên tài khoản, chẳng hạn như Ethereum và trên mô hình đầu ra giao dịch chưa chi tiêu mở rộng (EUTXO) của Cardano.

Marlowe đã được thiết kế như một giải pháp quy mô ngành và thể hiện các ví dụ từ phân loại ACTUS và tiêu chuẩn cho các hợp đồng tài chính. Các hợp đồng được viết bằng Marlowe có thể được tích hợp trên Cardano hoặc một blockchain thay thế.