MỚI: Helius mua lại Light Protocol
hướng dẫn cách xây dựng bot AI trên Solana
Blog/Phát triển

Cách xây dựng tác nhân AI an toàn trên Solana

Kỹ sư cấp cao, TurnkeyAndrew Min trên XAndrew Min trên LinkedIn
Đọc trong 8 phút

Làn sóng tác nhân AI giao dịch trên Solana đã làm dấy lên nhiều đồn đoán về việc các tác nhân tự động thực hiện giao dịch tài chính.

Làn sóng token AI hiện tại đang tạo ra khối lượng giao dịch hơn 1 tỷ USD trong 24 giờ và chiếm hơn 9,5 tỷ USD vốn hóa thị trường.[1]

Nhưng ngoài những thị trường mang tính đầu cơ này, một chuyển biến sâu sắc hơn đã diễn ra trong lĩnh vực tiền mã hóa — được xây dựng trên nền tảng tự động hóa ngày càng tăng qua nhiều năm.

Bot đã thực hiện phần lớn giao dịch tiền mã hóa, lên đến 90% trong một số phân khúc.[2]

Đây chưa phải là những tác nhân AI hoàn toàn tự động. Nhưng chúng là tiền thân rõ ràng và đang dần trở nên đa năng, độc lập hơn.

Mức độ phổ biến của chúng nhấn mạnh một điều quan trọng: cơ sở hạ tầng tiền mã hóa đặc biệt phù hợp với các giao dịch tự động có thể lập trình.

Thách thức bảo mật: Làm thế nào để tác nhân AI truy cập ví Solana một cách an toàn?

Cùng với sự phát triển của tác nhân AI trên Solana và các nền tảng khác, một thách thức bảo mật lớn đã xuất hiện: làm thế nào để các hệ thống tự động truy cập ví mà không ảnh hưởng đến bảo mật? 

Để thực hiện các thao tác trên chuỗi, tác nhân AI cần quyền truy cập ví. Nhưng việc lưu khóa riêng tư trong mã nguồn tạo ra những lỗ hổng nghiêm trọng: 

  • Chúng là mục tiêu hàng đầu của kẻ tấn công
  • Chúng dễ bị ảnh hưởng bởi lỗi mã nguồn có thể dẫn đến mất tiền 
  • Các nhà phát triển hiếm khi cấu trúc chúng theo cách phân tách tiền
  • Chúng có thể tạo điều kiện cho AI hoạt động ngoài tầm kiểm soát

Một ví dụ thực tế về những rủi ro này xảy ra vào tháng 9 năm 2024, khi kẻ tấn công khai thác lỗ hổng trong Banana Gun, một bot giao dịch trên Telegram. Một lỗi trong oracle thông báo của bot đã cho phép tin tặc rút 3 triệu USD khỏi ví của người dùng.

Bot hoặc tác nhân có quyền truy cập trực tiếp vào ví có thể thực hiện các giao dịch ngoài ý muốn và không thể đảo ngược, dù nguyên nhân là lỗ hổng, lỗi phần mềm hay vòng lặp quyết định không được kiểm soát.

Cân bằng giữa bảo mật và khả năng tự chủ 

Các giải pháp truyền thống buộc nhà phát triển phải lựa chọn giữa bảo mật và khả năng tự chủ thực sự của tác nhân. Những phương pháp này hoặc làm lộ khóa riêng tư, hoặc yêu cầu dịch vụ lưu ký tập trung. Cả hai đều không phù hợp với hệ thống production.

Một giải pháp đến từ Turnkey, cơ sở hạ tầng quản lý khóa có tính linh hoạt cao, được xây dựng chuyên biệt cho bảo mật, khả năng mở rộng và tự động hóa. Thay vì làm lộ khóa riêng tư, Turnkey cho phép tác nhân AI tương tác với ví thông qua quyền truy cập API có phạm vi và được kiểm soát bằng chính sách.

Cơ chế hoạt động như sau: 

Khóa API có phạm vi

Tác nhân AI nhận thông tin xác thực API giới hạn, gắn với các ví và thao tác cụ thể.

Chính sách chi tiết

Nhà phát triển có thể xác định chính xác những gì tác nhân AI được phép làm — như ký giao dịch trong các điều kiện nhất định, tương tác với smart contract cụ thể hoặc áp dụng giới hạn tần suất.

Quyền kiểm soát của người dùng

Người dùng cuối hoặc nhà phát triển có thể duy trì toàn quyền kiểm soát ví trong khi ủy quyền các thao tác cụ thể cho tác nhân AI.

Tại sao phương pháp này hiệu quả:

Phương pháp này đảm bảo tác nhân AI có thể tự động tương tác với tài sản trên chuỗi mà không bao giờ nắm giữ khóa riêng tư thô. Nhờ đó, vấn đề bảo mật được giải quyết trong khi vẫn duy trì bản chất không cần niềm tin và không cần cấp phép của tiền mã hóa.

Ngoài ra, môi trường điện toán có thể xác minh của Turnkey cho phép các nhóm triển khai tác nhân AI trong một môi trường mà bất kỳ ai cũng có thể xác minh mã đang chạy. Nội dung này sẽ được trình bày thêm ở phần sau.

Hãy cùng xem một ví dụ thực tế về cách cấp khóa API có quyền truy cập ví cho một bot đơn giản. Từ đó, nhà phát triển có thể thực hiện bước tiếp theo: phát triển bot thành tác nhân AI hoàn toàn tự động.

Cách tạo tác nhân AI trên Solana

Hãy xây dựng một bot giao dịch an toàn bằng Turnkey. Chúng ta sẽ tìm hiểu cách:

  • Thiết lập ví Solana với các biện pháp kiểm soát bằng chính sách 
  • Tạo người dùng chỉ sử dụng API cho bot 
  • Xác định chính sách để giới hạn hành vi của bot 
  • Triển khai một hàm giao dịch đơn giản bằng Jupiter Exchange

Điều kiện tiên quyết

Trước khi bắt đầu viết mã, bạn phải cài đặt Node.js và npm.

Bạn cũng cần có tài khoản Turnkey.

Tạo ví Solana trong Turnkey

Đăng nhập vào trang tổng quan Turnkey rồi thực hiện các bước sau:

  • Chuyển đến Wallets
  • Nhấp vào Create New Wallet
  • Chọn Solana và ED25519 làm thông số cài đặt ví
  • Nạp một ít SOL vào ví này để giao dịch

Tạo người dùng chỉ sử dụng API cho bot

Tiếp theo:

  • Chuyển đến tab Users
  • Nhấp vào Add User
  • Chọn API key trong phần loại quyền truy cập
  • Đặt tên cho người dùng này (ví dụ: "Trading Bot Alpha")

Ghi lại ID người dùng rồi nhấp vào phê duyệt. Bạn sẽ cần khóa này để cấu hình chính sách.

Giới hạn bot bằng chính sách

Trước tiên, chuyển đến tab Policies và nhấp vào Add new policy. Sau đó, cấu hình chính sách để giới hạn những thao tác bot có thể thực hiện. Hãy xác định một chính sách đảm bảo bot:

  • Chỉ có thể thực hiện chuyển token (không được thực hiện loại giao dịch nào khác)
  • Chỉ có thể giao dịch SOL và USDC
  • Không thể thực hiện giao dịch lớn hơn 1 SOL
Mã
{
  "policyName": "AI Trading Bot Policy",
  "effect": "EFFECT_ALLOW",
  "consensus": "approvers.any(user, user.id == '<BOT_USER_ID>')",
  "condition": "solana.tx.instructions.count() == solana.tx.spl_transfers.count() && solana.tx.spl_transfers.all(transfer, transfer.token_mint == '<USDC_MINT>' || transfer.token_mint == '<SOL_MINT>') && solana.tx.spl_transfers.all(transfer, transfer.amount < 1000000000)"
}

Thiết lập dự án

Tiếp theo, tạo dự án và cài đặt các dependency.

Mã
mkdir ai-trading-bot
cd ai-trading-bot
npm init -y
npm install @solana/web3.js @turnkey/sdk-server @turnkey/solana @jup-ag/api

Tạo tệp .env để lưu thông tin xác thực.

Mã
TURNKEY_API_PRIVATE_KEY="YOUR_API_PRIVATE_KEY_HERE"
TURNKEY_API_PUBLIC_KEY="YOUR_API_PUBLIC_KEY_HERE"
TURNKEY_ORGANIZATION_ID="YOUR_TURNKEY_ORGANIZATION_ID_HERE"

Tạo một bot đơn giản

Bây giờ, hãy viết mã. Tạo tệp index.js:

Mã
import process from "node:process";
import { Turnkey } from "@turnkey/sdk-server";
import { TurnkeySigner } from "@turnkey/solana";
import {
  Connection,
  clusterApiUrl,
  PublicKey,
  VersionedTransaction
} from "@solana/web3.js";
import { createJupiterApiClient } from "@jup-ag/api";

// Load environment variables
process.loadEnvFile(".env");

// Define token addresses
const USDC = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v";
const SOL = "So11111111111111111111111111111111111111112";
const BOT_ADDRESS = "YOUR_TURNKEY_WALLET_ADDRESS_HERE";
const BOT_PUBLIC_KEY = new PublicKey(BOT_ADDRESS);

async function main() {
  // Initialize Turnkey and Jupiter clients
  const turnkey = new Turnkey({
    apiBaseUrl: "https://api.turnkey.com",
    apiPrivateKey: process.env.TURNKEY_API_PRIVATE_KEY,
    apiPublicKey: process.env.TURNKEY_API_PUBLIC_KEY,
    defaultOrganizationId: process.env.TURNKEY_ORGANIZATION_ID,
  });

  const signer = new TurnkeySigner({
    organizationId: process.env.TURNKEY_ORGANIZATION_ID,
    client: turnkey.apiClient(),
  });

  const connection = new Connection(clusterApiUrl("mainnet-beta"), "confirmed");
  const jupiterClient = createJupiterApiClient();

Tạo thông tin xác thực được kiểm soát bằng chính sách

Đây là lúc mọi thứ trở nên thú vị. Thay vì cấp toàn quyền truy cập ví cho tác nhân AI, chúng ta sẽ tạo thông tin xác thực được kiểm soát bằng chính sách: 

Mã
const agentUSDCPolicy = {
  "policyName": "Require consensus on Solana transactions containing SPL token transfers of over 1000 USDC",
  "effect": "EFFECT_ALLOW",
  "consensus": "approvers.count() >= 2",
  "condition": "solana.tx.spl_transfers.all(transfer, transfer.token_mint == 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v') && solana.tx.spl_transfers.all(transfer, transfer.amount > 1000000000)",
  "notes": "",
}

const agentSOLPolicy = {
  "policyName": "Require consensus on Solana transactions containing SOL transfers over 1 SOL",
  "effect": "EFFECT_ALLOW",
  "consensus": "approvers.count() >= 2",
  "condition": "solana.tx.transfers.count == 1 && solana.tx.transfers[0].amount > 1000000000",
  "notes": "",
}

const createUSDCPolicyResponse = await turnkey.apiClient().createPolicy(agentUSDCPolicy);

const createSOLPolicyResponse = await turnkey.apiClient().createPolicy(agentSOLPolicy);

Triển khai hàm giao dịch của bot

Sau khi thiết lập các ràng buộc, bạn có thể triển khai hàm giao dịch: 

Mã
async function executeTrade(fromToken: string, toToken: string, amount: string) {
  // Get quote from Jupiter
  const quoteResponse = await jupiterClient.quoteGet({
    inputMint: fromToken,
    outputMint: toToken,
    amount: amount
  });

  // Create swap transaction
  const swapResponse = await jupiterClient.swapPost({
    swapRequest: {
      userPublicKey: BOT_PUBLIC_KEY,
      quoteResponse: quoteResponse,
    },
  });

  // Sign and submit transaction
  const transaction = VersionedTransaction.deserialize(
    Buffer.from(swapResponse.swapTransaction, "base64")
  );

  const signedTx = await signer.signTransaction(
    transaction,
    BOT_PUBLIC_KEY
  );

  const txid = await connection.sendRawTransaction(
    signedTx.serialize(),
    { skipPreflight: true, maxRetries: 5 }
  );

  await connection.confirmTransaction(txid);
  return txid;
}

main();

Vậy là xong!

Đây chưa phải là một tác nhân AI hoàn chỉnh, nhưng bot đơn giản được kiểm soát bằng chính sách này sẽ đặt nền móng cho nó. 

Từ đây, bạn có thể mở rộng khả năng tự chủ, thêm logic ra quyết định và phát triển bot thành một tác nhân tinh vi hơn.

Bạn cũng có thể tiếp tục tăng cường bảo mật bằng cách yêu cầu phê duyệt đa chữ ký cho các giao dịch có giá trị lớn hoặc cấp cho tác nhân quyền truy cập vào ví do người dùng cuối kiểm soát.

Không chỉ bảo mật ví: Môi trường có thể xác minh hỗ trợ tác nhân AI an toàn như thế nào

Đảm bảo tác nhân AI giao dịch an toàn không chỉ là bảo vệ quyền truy cập ví — mà còn phải xác minh rằng tác nhân đang chạy đúng mã mà nó tuyên bố.

Hãy hình dung một thế giới nơi các tác nhân AI giao dịch an toàn và hoạt động trong một môi trường hoàn toàn có thể xác minh. Trong môi trường này, bất kỳ ai cũng có thể xác nhận độc lập chính xác mã mà tác nhân đang chạy.

Cơ sở hạ tầng điện toán có thể xác minh của Turnkey cho phép bất kỳ ai xác minh phần mềm đang chạy bên trong enclave bảo mật — qua đó giải quyết một trong những thách thức lớn nhất của phần mềm đáng tin cậy hiện nay.

Về cốt lõi, Turnkey tận dụng Môi trường thực thi tin cậy (TEE), cụ thể là AWS Nitro Enclaves, để cung cấp môi trường chống can thiệp cho các thao tác nhạy cảm. Các enclave này hoạt động như những máy ảo biệt lập, không có bộ nhớ lưu trữ lâu dài, không thể truy cập mạng bên ngoài và không thể bị sửa đổi sau khi khởi chạy. Điều này đảm bảo rằng sau khi enclave được cấp phát, mã và dữ liệu của nó vẫn an toàn trước sự can thiệp từ bên ngoài — kể cả từ chính nhà cung cấp cơ sở hạ tầng.

Tuy nhiên, chỉ thực thi an toàn là chưa đủ — điều quan trọng là khả năng xác minh. Turnkey đạt được điều này thông qua ba đổi mới chính:

1. Chứng thực từ xa

Mỗi enclave của Turnkey tạo ra một bằng chứng mật mã xác nhận chính xác mã đang chạy. Chứng thực này bao gồm hàm băm của hệ điều hành và tệp nhị phân ứng dụng trong enclave, được ký bởi Nitro Secure Module (NSM) của AWS. Sắp tới, bất kỳ ai cũng có thể xác minh độc lập bằng chứng này để xác nhận enclave đang chạy đúng phần mềm dự kiến.

2. QuorumOS (QOS)

Một hệ điều hành mã nguồn mở, tối giản được thiết kế riêng cho khả năng xác minh. QOS đảm bảo mỗi enclave chỉ chạy mã đã được phê duyệt và có thể kiểm tra, đồng thời cung cấp QOS Manifests — các bằng chứng máy có thể đọc được, liên kết quá trình thực thi của enclave với dấu vân tay phần mềm có thể xác minh công khai.

3. StageX và các bản dựng có thể tái tạo

Để loại bỏ rủi ro tấn công chuỗi cung ứng, Turnkey áp dụng các bản dựng có thể tái tạo. Mọi tệp nhị phân chạy trong enclave đều có thể được biên dịch lại độc lập từ mã nguồn mà con người có thể đọc để xác minh rằng tệp chưa bị thay đổi. Điều này đảm bảo ánh xạ 1:1 giữa mã được nhà phát triển xem xét và phần mềm chạy trong môi trường an toàn.

Bằng cách kết hợp TEE, chứng thực từ xa và các bản dựng có thể tái tạo, Turnkey giúp ứng dụng có thể chạy với khả năng xác minh tuyệt đối — dù là để bảo mật ví, ký bằng mật mã hay thực thi tác nhân AI. Kiến trúc này vượt qua các mô hình bảo mật đám mây truyền thống vốn mặc nhiên giả định sự tin cậy, hướng đến một mô hình mới nơi tính bảo mật có thể được chứng minh, minh bạch và phi tập trung.

Tại sao điều này quan trọng với tác nhân AI

Môi trường thực thi có thể xác minh giúp cải thiện bảo mật và mở rộng không gian thiết kế cho các hệ thống tự động, ứng dụng tài chính và mọi dịch vụ cần niềm tin có thể chứng minh. 

Khi người dùng có thể xác minh độc lập phần mềm chạy trong enclave, nhiều khả năng mới sẽ xuất hiện — chẳng hạn như thực thi AI không cần niềm tin, giúp nhà phát triển và người dùng tự tin tránh các tác nhân “Wizard of OZ” (tức con người giả danh tác nhân AI thực sự).

Ngoài AI có thể xác minh, các nhóm có thể triển khai mọi thứ, từ bộ đồng xử lý ngoài chuỗi đến oracle tin cậy và công cụ suy luận AI. Tất cả đều có bằng chứng mật mã rằng chúng thực thi chính xác như cam kết và không thể được cập nhật đơn phương. Bảng dưới đây trình bày một số ví dụ về khối lượng công việc nhạy cảm có thể hưởng lợi khi chuyển sang môi trường có thể chứng thực:

Bạn muốn tham gia và chạy các ứng dụng trọng yếu của riêng mình theo cách có thể xác minh?

Đội ngũ Turnkey hiện đang hợp tác với một số nhóm được tuyển chọn để triển khai tác nhân AI và các ứng dụng khác trong môi trường thực thi hoàn toàn có thể xác minh — nơi bất kỳ ai cũng có thể xác thực chính xác mã đang chạy phía sau.

Tài nguyên bổ sung

  1. CoinGecko — Vốn hóa thị trường tác nhân AI
  2. QZ — Bot thực hiện 90% giao dịch stablecoin
  3. Sách trắng mới của Turnkey
  4. Trang web chính thức của Turnkey
  5. Liên hệ để tìm hiểu cách triển khai AI có thể xác minh

Đăng ký nhận tin từ Helius

Luôn cập nhật những thông tin mới nhất về phát triển Solana và nhận thông báo khi chúng tôi đăng bài

Hình ảnh phóng to