BARU: Helius mengakuisisi Light Protocol
tutorial cara membuat bot AI Solana
Blog/Pengembangan

Cara Membangun Agen AI yang Aman di Solana

Insinyur Staf, TurnkeyAndrew Min di XAndrew Min di LinkedIn
Bacaan 8 menit

Lonjakan agen AI yang melakukan perdagangan di Solana telah memicu spekulasi besar tentang agen otonom yang menjalankan transaksi keuangan.

Gelombang token AI saat ini menghasilkan volume perdagangan lebih dari $1 miliar dalam 24 jam dan mewakili kapitalisasi pasar lebih dari $9,5 miliar.[1]

Namun, di luar pasar spekulatif ini, pergeseran yang lebih mendalam telah berlangsung di dunia kripto—dibangun di atas otomatisasi yang terus meningkat selama bertahun-tahun.

Bot telah menggerakkan sebagian besar transaksi kripto, bahkan hingga 90% di beberapa segmen kripto.[2]

Bot tersebut belum menjadi agen AI yang sepenuhnya otonom—setidaknya untuk saat ini. Namun, bot ini jelas merupakan pendahulunya dan terus berkembang menjadi lebih serbaguna serta mandiri.

Penggunaannya yang luas menegaskan satu hal penting: infrastruktur kripto sangat sesuai untuk transaksi terprogram dan otonom.

Tantangan Keamanan: Bagaimana Agen AI dapat mengakses dompet Solana dengan aman?

Seiring meningkatnya penggunaan agen AI di Solana dan ekosistem lainnya, muncul tantangan keamanan besar: bagaimana sistem otonom dapat mengakses dompet tanpa mengorbankan keamanan? 

Untuk menjalankan tindakan onchain, agen AI memerlukan akses ke dompet. Namun, private key yang disimpan dalam kode menciptakan kerentanan besar: 

  • Menjadi sasaran utama penyerang
  • Rentan terhadap kesalahan kode yang dapat menyebabkan hilangnya dana 
  • Developer jarang menyusunnya dengan cara yang memisahkan dana
  • Dapat membuka peluang bagi perilaku AI yang menyimpang

Contoh nyata risiko ini terjadi pada September 2024, ketika penyerang mengeksploitasi kerentanan di Banana Gun, bot perdagangan berbasis Telegram. Celah pada oracle pesannya memungkinkan peretas menguras $3 juta dari dompet pengguna.

Bot atau agen dengan akses langsung ke dompet dapat membuat transaksi yang tidak disengaja dan tidak dapat dibatalkan, baik akibat eksploitasi, bug, maupun loop pengambilan keputusan yang tidak diawasi.

Menyeimbangkan Keamanan dan Otonomi 

Solusi tradisional memaksa developer memilih antara keamanan dan otonomi agen yang sesungguhnya. Pendekatan tradisional mengekspos private key atau mewajibkan kustodi terpusat. Keduanya tidak dapat diterima untuk sistem produksi.

Salah satu solusi ditawarkan oleh Turnkey, infrastruktur pengelolaan kunci yang sangat fleksibel dan dirancang khusus untuk keamanan, skala, serta otomatisasi. Alih-alih mengekspos private key, Turnkey memungkinkan agen AI berinteraksi dengan dompet melalui akses API terbatas yang dikendalikan oleh kebijakan.

Berikut cara kerjanya: 

Kunci API dengan cakupan terbatas

Agen AI menerima kredensial API terbatas yang terikat pada dompet dan tindakan tertentu.

Kebijakan terperinci

Developer dapat menentukan secara tepat tindakan yang boleh dilakukan agen AI—baik menandatangani transaksi dalam kondisi tertentu, berinteraksi dengan kontrak pintar tertentu, maupun menerapkan batas laju.

Kontrol pengguna

Pengguna akhir atau developer dapat mempertahankan kendali penuh atas dompet sambil mendelegasikan tindakan tertentu kepada agen AI.

Mengapa Cara Ini Berhasil:

Pendekatan ini memastikan agen AI dapat berinteraksi secara otonom dengan aset onchain tanpa pernah memegang private key mentah. Dengan demikian, masalah keamanan dapat diatasi sekaligus mempertahankan sifat kripto yang trustless dan permissionless.

Selain itu, lingkungan komputasi yang dapat diverifikasi dari Turnkey memungkinkan tim menerapkan agen AI di lingkungan tempat siapa pun dapat memverifikasi kode yang dijalankan. Hal ini akan dibahas lebih lanjut nanti.

Mari lihat contoh praktis penyediaan kunci API dengan izin dompet untuk bot sederhana. Setelah itu, developer dapat mengambil langkah berikutnya: mengembangkan bot tersebut menjadi agen AI yang sepenuhnya otonom.

Cara Membuat Agen AI Solana

Mari buat bot perdagangan yang aman menggunakan Turnkey. Kita akan membahas:

  • Menyiapkan dompet Solana dengan kontrol kebijakan 
  • Membuat pengguna khusus API untuk bot 
  • Menentukan kebijakan untuk membatasi perilaku bot 
  • Menerapkan fungsi perdagangan sederhana menggunakan Jupiter Exchange

Prasyarat

Sebelum mulai menulis kode, Anda harus menginstal Node.js dan npm.

Anda juga memerlukan akun Turnkey.

Membuat Dompet Solana di Turnkey

Masuk ke dashboard Turnkey Anda, lalu:

  • Buka Wallets
  • Klik Create New Wallet
  • Pilih Solana dan ED25519 sebagai pengaturan dompet Anda
  • Isi dompet ini dengan sejumlah SOL untuk perdagangan

Membuat Pengguna Khusus API untuk Bot Anda

Berikutnya:

  • Buka tab Users
  • Klik Add User
  • Pilih API key pada jenis akses
  • Beri nama (misalnya, "Trading Bot Alpha")

Catat ID pengguna, lalu klik setujui. Anda akan memerlukan kunci ini untuk konfigurasi kebijakan.

Membatasi Bot Anda melalui Kebijakan

Pertama, buka tab Policies dan klik Add new policy. Kemudian, konfigurasikan kebijakan untuk membatasi tindakan yang dapat dilakukan bot. Mari tentukan kebijakan yang memastikan bot:

  • Hanya dapat menjalankan transfer token (tanpa jenis transaksi lain)
  • Hanya dapat memperdagangkan SOL dan USDC
  • Tidak dapat menjalankan transaksi yang lebih besar dari 1 SOL
Kode
{
  "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)"
}

Menyiapkan Proyek Anda

Berikutnya, buat proyek Anda dan instal dependensinya.

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

Buat file .env untuk menyimpan kredensial Anda.

Kode
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"

Membuat Bot Sederhana

Sekarang, mari tulis kodenya. Buat file index.js:

Kode
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();

Membuat Kredensial yang Dikendalikan oleh Kebijakan

Sekarang kita sampai pada bagian yang menarik. Alih-alih memberikan akses penuh ke dompet kepada agen AI, kita akan membuat kredensial yang dikendalikan oleh kebijakan: 

Kode
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);

Menerapkan Fungsi Perdagangan Bot

Setelah batasan diterapkan, Anda dapat mengimplementasikan fungsi perdagangan: 

Kode
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();

Selesai!

Bot ini memang belum menjadi agen AI yang lengkap, tetapi bot sederhana yang dikendalikan oleh kebijakan ini menjadi landasan awal. 

Dari sini, Anda dapat memperluas otonominya, menambahkan logika pengambilan keputusan, dan mengembangkannya menjadi agen yang lebih canggih.

Anda juga dapat terus meningkatkan keamanan dengan mewajibkan persetujuan multi-sig untuk transaksi bernilai tinggi atau memberikan akses kepada agen ke dompet yang dikendalikan oleh pengguna akhir.

Lebih dari Sekadar Dompet Aman: Cara Lingkungan yang Dapat Diverifikasi Memungkinkan Agen AI yang Aman

Memastikan agen AI bertransaksi dengan aman bukan sekadar melindungi akses dompet—Anda juga perlu memverifikasi bahwa agen menjalankan kode yang diklaimnya.

Bayangkan dunia tempat agen AI bertransaksi dengan aman dan beroperasi dalam lingkungan yang sepenuhnya dapat diverifikasi. Dalam lingkungan ini, siapa pun dapat mengonfirmasi secara independen kode persis yang dijalankan agen.

Infrastruktur komputasi yang dapat diverifikasi dari Turnkey memungkinkan siapa pun memverifikasi perangkat lunak yang berjalan di dalam enclave aman—mengatasi salah satu tantangan terbesar dalam perangkat lunak tepercaya saat ini.

Pada intinya, Turnkey memanfaatkan Trusted Execution Environments (TEE), khususnya AWS Nitro Enclaves, untuk menyediakan lingkungan antirusak bagi operasi sensitif. Enclave ini beroperasi sebagai mesin virtual terisolasi tanpa penyimpanan persisten, akses jaringan eksternal, atau kemampuan untuk dimodifikasi setelah diluncurkan. Hal ini menjamin bahwa setelah enclave disediakan, kode dan datanya tetap aman dari gangguan eksternal—termasuk dari penyedia infrastrukturnya sendiri.

Namun, eksekusi yang aman saja tidak cukup—yang terpenting adalah kemampuan untuk diverifikasi. Turnkey mewujudkannya melalui tiga inovasi utama:

1. Atestasi Jarak Jauh

Setiap enclave Turnkey menghasilkan bukti kriptografis yang menyatakan secara tepat kode yang dijalankannya. Atestasi ini mencakup hash sistem operasi dan biner aplikasi enclave, yang ditandatangani oleh Nitro Secure Module (NSM) milik AWS. Dalam waktu dekat, siapa pun dapat memverifikasi bukti ini secara independen untuk memastikan enclave menjalankan perangkat lunak yang diharapkan.

2. QuorumOS (QOS)

Sistem operasi sumber terbuka dan minimal yang dirancang khusus agar dapat diverifikasi. QOS memastikan setiap enclave hanya menjalankan kode yang disetujui dan dapat diaudit, serta menyediakan Manifes QOS—bukti yang dapat dibaca mesin dan menghubungkan eksekusi enclave dengan sidik jari perangkat lunak yang dapat diverifikasi secara publik.

3. StageX & Build yang Dapat Direproduksi

Untuk menghilangkan risiko serangan rantai pasok, Turnkey menerapkan build yang dapat direproduksi. Setiap biner yang berjalan di dalam enclave dapat dikompilasi ulang secara independen dari kode sumber yang dapat dibaca manusia untuk memastikan biner tersebut belum diubah. Hal ini memastikan pemetaan 1:1 antara kode yang ditinjau developer dan perangkat lunak yang berjalan di dalam lingkungan aman.

Dengan menggabungkan TEE, atestasi jarak jauh, dan build yang dapat direproduksi, Turnkey memungkinkan aplikasi dijalankan dengan kemampuan verifikasi mutlak—baik untuk keamanan dompet, penandatanganan kriptografis, maupun eksekusi agen AI. Arsitektur ini melampaui model keamanan cloud tradisional yang mengasumsikan adanya kepercayaan, menuju paradigma baru tempat keamanan dapat dibuktikan, transparan, dan terdesentralisasi.

Mengapa Hal Ini Penting bagi Agen AI

Lingkungan eksekusi yang dapat diverifikasi meningkatkan keamanan dan memperluas ruang desain untuk sistem otonom, aplikasi keuangan, serta layanan apa pun yang memerlukan kepercayaan yang dapat dibuktikan. 

Ketika pengguna dapat memverifikasi secara independen perangkat lunak yang berjalan di dalam enclave, muncul berbagai kemungkinan baru—seperti eksekusi AI yang trustless, sehingga developer dan pengguna dapat dengan yakin menghindari agen “Wizard of OZ” (yaitu manusia yang berpura-pura menjadi agen AI sungguhan).

Selain AI yang dapat diverifikasi, tim dapat menerapkan berbagai hal, mulai dari koprosesor offchain hingga oracle tepercaya dan mesin inferensi AI. Semuanya dilengkapi bukti kriptografis bahwa sistem tersebut berjalan tepat seperti yang dijanjikan dan tidak dapat diperbarui secara sepihak. Beberapa contoh beban kerja sensitif yang dapat memperoleh manfaat dari perpindahan ke lingkungan yang dapat diatestasi tercantum dalam tabel di bawah ini:

Ingin terlibat dan menjalankan aplikasi penting Anda sendiri dengan cara yang dapat diverifikasi?

Tim Turnkey kini bermitra dengan sejumlah tim terpilih untuk menerapkan agen AI dan aplikasi lainnya dalam lingkungan eksekusi yang sepenuhnya dapat diverifikasi—tempat siapa pun dapat memvalidasi kode persis yang berjalan di balik layar.

Referensi Tambahan

  1. CoinGecko — Kapitalisasi Pasar Agen AI
  2. QZ — Bot menjalankan 90% transaksi stablecoin
  3. Whitepaper baru Turnkey
  4. Situs Resmi Turnkey
  5. Hubungi kami untuk menjajaki penerapan AI yang dapat diverifikasi

Berlangganan Helius

Ikuti perkembangan terbaru dalam pengembangan Solana dan dapatkan pembaruan saat kami memublikasikan postingan

Gambar diperbesar