Khám phá ALPHred: Một Máy Ảo Khác Biệt

Alephium Việt Nam 🇻🇳
11 min readAug 22, 2024

--

Đây là bài viết thứ ba trong chuỗi các đổi mới công nghệ do Alephium mang lại. Tìm hiểu các bài viết trước đây tại (PolW) và (sUTXO). Trong bài viết này, chúng ta sẽ khám phá máy ảo là gì, vai trò của nó trong các blockchain và điều gì làm cho Máy Ảo của Alephium (Alphred) khác biệt so với các máy ảo khác.

Máy Ảo (VM) là gì?

Máy Ảo (VM) là một chương trình phần mềm mô phỏng chức năng của một máy tính vật lý. Có nhiều loại máy ảo và hệ thống ảo hóa khác nhau: một số cho phép người dùng chơi trò chơi trên các nền tảng không được thiết kế để chạy và một số cho phép chạy hệ điều hành Windows trên máy tính Mac hoặc Linux. Một số máy ảo khác được thiết kế để chạy các chương trình theo nhiều mục đích phi tập trung trên nhiều máy tính khác nhau.

Một tính năng hữu ích khác của máy ảo là nó hoạt động trong một môi trường giả lập, không ảnh hưởng đến cơ sở hạ tầng nền tảng nếu có sự cố xảy ra. Nếu một máy ảo gặp sự cố, không cần phải khởi động lại máy tính vật lý, chỉ cần khởi động lại máy ảo đó.

Máy Ảo và Thế giới Blockchain

Theo thiết kế của Bitcoin, có một máy ảo rất thô sơ và hạn chế. Khả năng lập trình cơ bản của nó và sự thiếu hoàn chỉnh về mặt Turing vẫn cho phép Bitcoin hoạt động hiệu quả trong việc duy trì một sổ cái thống nhất về địa chỉ & số dư trên hàng nghìn node. Nhưng chỉ có vậy, “tiền” không cần phải thực hiện nhiều lệnh, gần như không có khả năng thực thi hợp đồng thông minh như hiện tại, đó là lý do tại sao hầu hết các hoạt động dApp xảy ra ở nơi khác, và không có thông tin từ thế giới bên ngoài có thể vào mạng lưới. Điều này tạo ra một thiết kế đơn giản, một mạng lưới an toàn, nhưng chức năng hạn chế: nó chỉ là một sổ cái phân tán.

Nhưng nếu bạn muốn thực hiện các phép toán phức tạp hơn theo cách phi tập trung tương tự như cách Bitcoin hoạt động thì sao? Đó là câu hỏi mà Vitalik Buterin đã trả lời khi anh ấy nghĩ ra «world computer». Anh ấy đã tạo ra một Máy Ảo hoạt động như một thực thể duy nhất được duy trì bởi hàng nghìn node vật lý kết nối và chạy một client Ethereum. Máy Ảo này có khả năng biên dịch các lệnh phức tạp từ hợp đồng thông minh và tất cả các thay đổi được tạo ra bởi những lệnh này đều được ghi lại trên blockchain, có thể truy cập được bởi mọi người: đó là một state machine (máy có trạng thái).

Ví dụ trên là Máy Ảo Ethereum (EVM), máy ảo lớn đầu tiên trong ngành blockchain được áp dụng rộng rãi. Các nhà phát triển có thể viết hợp đồng thông minh bằng một ngôn ngữ cấp cao, dễ đọc gọi là Solidity. Khi một giao dịch sử dụng mã này, trình biên dịch sẽ chuyển đổi các lệnh kết quả thành bytecode (mã ở cấp thấp có thể đọc được bởi máy). EVM sau đó thực thi bytecode, và các node sẽ phát sóng những thay đổi (giao dịch và khối) tới tất cả các node khác.

Nhiều Blockchain, nhiều Máy Ảo

Khi các dự án blockchain khác xuất hiện sau Ethereum, họ có hai lựa chọn: hoặc phát triển máy ảo (VM) riêng để phù hợp với yêu cầu của mình, hoặc áp dụng Máy Ảo Ethereum (EVM) để dễ dàng chạy các hợp đồng thông minh giống như Ethereum. Fantom và Avalanche đã chọn lựa chọn thứ hai và tương thích với EVM, trong khi Polkadot, Solana và Cosmos quyết định xây dựng các máy ảo của riêng họ.

Polkadot và Cosmos đã chọn sử dụng WebAssembly (Wasm). Điều này cho phép họ hỗ trợ nhiều ngôn ngữ lập trình hơn (ví dụ: Rust, Golang và C++), giúp nhiều nhà phát triển đã quen thuộc với các ngôn ngữ này dễ dàng hơn trong việc phát triển hợp đồng thông minh và mở rộng hệ sinh thái của họ.

Ngược lại, Solana chọn cơ sở hạ tầng biên dịch LLVM và biến thể của bytecode Berkeley Packet Filter (BPF). Solana hiện hỗ trợ các ngôn ngữ lập trình Rust và C/C++. Lựa chọn của Solana liên quan đến khả năng thực thi các lệnh gốc mà không cần biên dịch trước (tức là chuyển đổi từ mã cấp cao sang mã cấp thấp). Nó thực hiện biên dịch “ngay lập tức” cùng lúc với việc mã được thực thi.

Có nhiều máy ảo khác nhau, chẳng hạn như NeoVM, AVM, RSK, FUEL… và bạn có thể tìm thấy sự so sánh chi tiết hơn giữa các máy ảo hiện có tại đây.

Việc lựa chọn máy ảo và bộ công cụ tương ứng (ngôn ngữ lập trình, trình biên dịch, v.v…) phụ thuộc vào mục tiêu mà một blockchain đang cố gắng đạt được.

Công Cụ của Alephium: Alphred & Ralph

Mô hình UTXO có trạng thái của Alephium kết hợp giữa mô hình UTXO và mô hình tài khoản (account model), đồng thời có khả năng thực thi hợp đồng thông minh. Nó cần một máy ảo (VM) để thực hiện các lệnh hợp đồng thông minh trong một môi trường runtime hoàn toàn khác so với các blockchain khác, với các tính năng bảo mật và hiệu suất nâng cao.

Điều này đã dẫn đến quyết định tạo ra một máy ảo mới, được thiết kế đặc biệt để tận dụng những điểm mạnh của sUTXO. Giống như các full node của Alephium, máy ảo này được viết bằng Scala để nâng cao tính bảo mật và được đặt tên là Alphred.

Tương tự như EVM với Solidity, Alphred có một ngôn ngữ chuyên biệt gọi là Ralph. Ralph được xây dựng đặc biệt cho blockchain của Alephium với mục tiêu cực kỳ dễ biểu đạt và dễ sử dụng. Nó cũng được thiết kế đặc biệt để đảm bảo tính bảo mật vì nó tận dụng các tính năng tích hợp sẵn của máy ảo. Điều này nằm ngoài phạm vi của bài viết này, và chúng tôi sẽ đăng tải Ralph cụ thể trong một bài viết sau.

Sự kết hợp của Ralph (ngôn ngữ) và Alphred (máy ảo) mang lại nhiều lợi ích:

  • Cải thiện UX, DevX & Bảo mật khi giao dịch tài sản

Hệ thống quyền truy cập tài sản kiểm soát việc truy cập và tương tác với các tài sản cụ thể trên blockchain. Ví dụ, nó sẽ cung cấp một framework cho hợp đồng thông minh mà người dùng đang tương tác có thể truy cập vào tài khoản của người dùng: một NFT cụ thể, tất cả các NFT, một số lượng token nhất định, v.v…

Trên Ethereum, khi người dùng muốn thực hiện giao dịch không phải ETH, họ thường phải đối mặt với nhiều phê duyệt rối rắm trên một giao dịch thực tế. Alphred loại bỏ sự phức tạp đó và làm cho quy trình trở nên rất đơn giản cho người dùng vì quyền truy cập được xác định ở mức chức năng, chuẩn hóa tất cả các tương tác. Điều này giúp ngăn ngừa các lỗi của con người hoặc các lỗi thiết kế như yêu cầu người dùng phê duyệt chi tiêu token vô hạn.

  • Thiết kế nhận dạng MEV

Cơ chế cơ bản của MEV (Miner Extractable Value) là tìm kiếm các cơ hội chênh lệch giá và cố gắng khai thác giá trị từ việc sản xuất khối. Các “người tìm kiếm MEV” có khả năng làm điều này vì họ có thể suy đoán về thứ tự giao dịch bằng cách khai thác mempool. Một trong những động lực để làm việc này là vì quy trình này có thể (gần như) không có rủi ro: nếu giao dịch đề xuất không thực thi, không có tổn thất tài chính gì ngoài phí gas.

Trên Alephium, vì mỗi giao dịch tuân theo mô hình Input/Output, một hoạt động MEV phức tạp sẽ yêu cầu nhiều giao dịch liên tiếp. Điều này khiến hoạt động trở nên dễ bị cạnh tranh hơn, vì các người dùng khác có thể phản đối bất kỳ giao dịch nào. Kết quả là: nhiều cạnh tranh hơn về MEV, nhiều rủi ro hơn cho các người tìm kiếm MEV, và do đó, chi phí cao hơn. So với EVM, các người tìm kiếm MEV không thể tạo ra các hoạt động chênh lệch phức tạp trong một giao dịch duy nhất. Họ chỉ có thể thực hiện những gì mà người dùng bình thường làm. Điều này làm cho giao thức trở nên bền bỉ hơn để chống lại MEV.

  • Phòng chống Flash Loan

Một flash loan gói gọn các giao dịch liên tiếp trong một khối với việc thực thi có điều kiện. Nó yêu cầu tương tác với nhiều hợp đồng thông minh trong cùng một giao dịch để nhận khoản vay, sử dụng nó trong một dApp và hoàn trả. Nếu việc hoàn trả không xảy ra, thì không có giao dịch nào được thực hiện. Điều này hoạt động tốt trên các blockchain sử dụng mô hình tài khoản.

Alephium dựa trên mô hình UTXO, có nghĩa là mô hình Input/Output quy định rằng Output chỉ có thể được sử dụng sau khi giao dịch được phát sóng đến mạng lưới. Do đó, một khoản vay không thể được hoàn trả ngay lập tức trong cùng một giao dịch. Điều này khiến flash loan không thể thực hiện theo mặc định.

  • Bảo mật hơn trong thiết kế

Việc viết hợp đồng thông minh an toàn trên hầu hết các blockchain là rất khó khăn, một phần vì ngôn ngữ lập trình và các máy ảo của chúng cung cấp cho các nhà phát triển “quá nhiều tự do”. Khi họ viết mã và dựa vào các nguồn bên ngoài (như thư viện) để thực hiện các kiểm tra, có quá nhiều khả năng xảy ra lỗi, và các lỗi này có thể nghiêm trọng.

Alphred được trang bị nhiều kiểm tra và điều khiển tích hợp sẵn, trong khi vẫn duy trì tính biểu đạt và dễ sử dụng cho các nhà phát triển, cũng giúp họ tránh được nhiều lỗi và bug phổ biến. Dưới đây là một số ví dụ:

Kiểm tra tràn số học: Hữu ích để ngăn chặn việc thực thi giao dịch khi xảy ra tràn bộ nhớ. Nó cho phép phát hiện vấn đề trước khi thực thi, giúp tiết kiệm thời gian và tài nguyên.

Hệ thống Quyền Truy Cập Tài Sản: Được xây dựng để cung cấp xác minh bổ sung nhằm đảm bảo rằng các giao dịch token được thực hiện theo các quy tắc của hợp đồng thông minh.

Alphred trả về một ngoại lệ khi có vấn đề xảy ra, cung cấp một giải thích rõ ràng hơn cho nhà phát triển về lỗi đã xảy ra trong quá trình thực thi giao dịch.

Hệ thống kiểu tích hợp sẵn có khả năng kiểm tra kiểu của các hàm và biến một cách tự động, giúp mã nguồn ít bị lỗi hơn. Những cơ chế bảo vệ này giúp ngăn ngừa việc triển khai các hợp đồng thông minh bị lỗi, cho phép nhà phát triển tập trung vào các công việc khác.

  • Contract Event (sự kiện hợp đồng) nhẹ và có thể tùy chỉnh

Khi ai đó sử dụng một hợp đồng thông minh, nó phát ra các contract event, điều này rất hữu ích cho các nhà phát triển và dịch vụ trong việc theo dõi hoạt động trên blockchain. Ví dụ, nếu một nhà phân tích muốn hiểu cách một DEX được sử dụng hoặc những pool nào phổ biến nhất, họ có thể kiểm tra các contract event của các giao dịch hoán đổi hoặc các giao dịch hoán đổi không thành công, v.v… Trên hầu hết các chuỗi EVM, các contract event này được tự động tạo ra và lưu trữ trên blockchain cho tất cả các hợp đồng thông minh mãi mãi.

Trên Alphred, các contract event được kích hoạt mặc định và có thể bị vô hiệu hóa: chúng hoàn toàn có thể cấu hình và tùy chọn. Nếu ai đó chỉ quan tâm đến các event được phát ra bởi một DEX cụ thể, họ có thể chỉ theo dõi những event đó. Điều này giúp việc sử dụng trở nên có trách nhiệm hơn, đúng mục tiêu hơn và giảm bớt dữ liệu không cần thiết được lưu trữ, vì một chuỗi nhẹ hơn thì tốt hơn cho các nhà vận hành node và cho tính phi tập trung.

  • Cải thiện khả năng đọc Bytecode

Khi một nhà phát triển viết hợp đồng thông minh, họ sử dụng một ngôn ngữ cấp cao và dễ đọc như Solidity, hoặc trong trường hợp của chúng tôi là Ralph. Khi người dùng tương tác với hợp đồng thông minh, nó sẽ được thực thi bởi một trình biên dịch, chuyển đổi mã nguồn dễ đọc (do nhà phát triển viết) thành bytecode mà máy ảo sẽ chạy. Bytecode thường khó đọc, khiến việc kiểm tra nó trở nên khó khăn và tốn thời gian.

Bytecode của Alphred/Ralph được xây dựng với khả năng đọc hiểu của con người, giúp việc phân tích và xác minh trở nên dễ dàng hơn mà không cần phần mềm bổ sung. Điều này hữu ích khi thực hiện các bài kiểm tra đơn vị và xác minh giá trị trả về của lệnh, vì nó giúp việc xác minh mã và phát hiện lỗi sớm trở nên hiệu quả hơn.

Tóm lại

Một Máy Ảo (VM) thực thi mã hợp đồng thông minh và cập nhật trạng thái blockchain. Mỗi blockchain triển khai một thiết kế VM nhắm đến các mục tiêu cụ thể.

Đối với Alephium, sự kết hợp giữa Alphred (máy ảo) và Ralph (ngôn ngữ lập trình) mang lại sự bảo mật gia tăng nhờ các kiểm soát và kiểm tra tích hợp, hiệu suất vượt trội, và các tính năng độc đáo (như khả năng chống lại flash loan) nhờ thiết kế UTXO.

Link bài viết gốc: https://medium.com/@alephium/meet-alphred-a-virtual-machine-like-no-others-85ce86540025

--

--

Alephium Việt Nam 🇻🇳
Alephium Việt Nam 🇻🇳

Written by Alephium Việt Nam 🇻🇳

Cộng Đồng Alephium Việt Nam (official community managed) - Telegram: https://t.me/alephiumvn

No responses yet