# Bir yapay zekâ ajanı neden asla özel anahtar tutmamalı

> Anahtar sınırsız yetki verir; üstüne konan her sınır yazılımdır. Atama geri alınabilir, kopyalanmış anahtar geri alınamaz.

- Source: https://defiloops.com/tr/blog/why-an-ai-agent-should-never-hold-a-key
- Published: 2026-07-21
- Category: Security
- Tags: agentic-wallet, ai-agents, key-management, custody
- Author: DeFiLoops

---
Agentic cüzdan yapmanın en hızlı yolu, bir özel anahtar üretip ajana vermek ve onunla ne
yapabileceğine dair birkaç kural yazmaktır. Neredeyse bütün erken yapımlar böyle çalışır ve
sektör şimdi bu yoldan çıkmaya uğraşıyor — Coinbase savını açıkça yaptı ve gerekçe tek
cümleye sığıyor.

Özel anahtar bir izin değildir. İznin ta kendisidir. Üstüne koyduğunuz her şey bir ricadır.

## Anahtarın gerçekte verdiği yetki

<Compare left="Kuralların dediği" right="Anahtarın verdiği" verdict>
  <Fragment slot="left">
    Ayda en fazla 500 USDC harca. Yalnızca şu üç protokol. Listede olmayan bir adrese asla
    gönderme.
  </Fragment>
  <Fragment slot="right">
    Bu hesabın yapabileceği her işlemi, her tutarda, her adrese, her zincirde, sonsuza kadar
    imzala.
  </Fragment>
</Compare>

Soldaki sütunu, ajanla zincir arasında o an çalışan kod uygular. Sağdaki sütunu matematik
uygular. İkisi anlaşmazlığa düştüğünde — bir hata, bir ele geçirme, ikna edilmiş bir model
ya da yanlış yapılandırmayla yeniden başlatılmış bir süreç yüzünden — her seferinde sağdaki
kazanır.

<Callout type="danger" title="Anahtar üstündeki kurallar bir sınır değil, bir filtredir">
  Filtre, birinin önceden hayal ettiği saldırılara karşı sınanır. Hiç görmediği şeyleri,
  düşmanca baskı altında, makine hızında doğru biçimde reddetmesi gerekir. Bu zor bir iştir
  ve yalnızca anahtar onu gerekli kıldığı için vardır.
</Callout>

## Kimsenin planlamadığı asimetri

İşte yapılandırmayı değil mimariyi değiştiren kısım.

**Bir anahtarı kopyalanmamış hâle getiremezsiniz.**

Bir anahtar sızarsa — bir log satırı, bir bellek dökümü, ele geçirilmiş bir bağımlılık,
olmaması gereken bir yedek — kopyası olan herkes kalıcı olarak tam yetkilidir ve kaç kopya
olduğunu bilemezsiniz. Döndürmek, her varlığı yeni bir adrese taşımak demektir; bu da artık
güvenmek zorunda olduğunuz bir dizi işlemdir.

Atama bunun tersidir. Zincirde yaşar, her çağrıda denetlenir ve kimsenin iş birliğini
gerektirmeyen tek bir işlemle geri alınır.

<Spec title="Sızmış anahtara karşı geri alınmış atama" rows={[
  ['Kaç kopya var', 'Anahtar: bilinemez. Atama: kopyalanabilir bir şey değil'],
  ['Nasıl durdurursunuz', 'Anahtar: her varlığı taşıyarak. Atama: kendi cüzdanınızdan tek işlem'],
  ['Ne kadar çabuk etkili olur', 'Anahtar: son varlık taşındığında. Atama: bir sonraki çağrıda'],
  ['Kimin yardımı gerekir', 'Anahtar: her zincirde yeterli gas ve zaman. Atama: kimsenin'],
  ['İşletmeci düşmansa', 'Anahtar: zaten bir kopyası olabilir. Atama: kendilerine veremezler'],
]} />

## Anahtarın yerine ne geçer

Dolaşımda üç cevap var ve eşdeğer değiller.

<Steps>
  <Step title="Anahtarı bölün (MPC ya da çoklu imza)">
    Tek taraf yalnız imzalayamaz ve bir politika motoru neyin birlikte imzalanacağına karar
    verir. Baskın ticari cevap budur ve gerçek bir ilerlemedir: artık çalınması hikâyeyi
    bitiren tek bir nesne yoktur.

    Değiştirmediği şey ifade gücüdür. Birlikte imzalanan şey hâlâ rastgele bir işlemdir,
    yani politika motoru hâlâ bir hedef adresin kabul edilebilir olup olmadığına karar veren
    bir filtredir.
  </Step>
  <Step title="Anahtarı modelden uzak tutun">
    İmzalama anahtarını donanıma ya da modelin okuyamayacağı ayrı bir servise koyun; model
    yalnızca imza istesin. Yine daha iyi — ikna edilmiş bir model artık anahtarı dışarı
    sızdıramaz.

    Ama ikna edilmiş bir model hâlâ yanlış şeyi isteyebilir ve bir şeyin o isteği yargılaması
    gerekir.
  </Step>
  <Step title="Ajana ne anahtar ne de adres sözcüğü verin">
    Ajan, hesabınızın atadığı bir sözleşmedir. Gönderdiği şey, kapalı bir işlem listesinden
    alınmış etiketli kutulardan oluşan sabit bir formdur. Hedef için kutu yoktur, veri yükü
    için kutu yoktur; hedefler roldür ve adım çalışırken hesabınızdan çözümlenir.

    İkna edilmiş bir model "bana gönder" diyemez, dolayısıyla denediğini hiçbir şeyin
    saptaması gerekmez.
  </Step>
</Steps>

## Bizim elimizde ne var

Somut olmakta fayda var, çünkü "ajan bir sözleşmedir" demek bizim tarafımızda ne kaldığı
sorusunu davet ediyor.

<Spec rows={[
  ['Ajan', 'Bir sözleşme. Hesabınız onu atar. Düz bir anahtar hiç atanamaz'],
  ['Keeper', 'Bizim tuttuğumuz bir anahtar. Tek yapabildiği, o sözleşmeye bir çağrı yaptırmaktır'],
  ['Ücret ödeyici', 'Gas öder. Varlık tutmaz, hiçbir yerde sürekli harcama izni yoktur'],
]} />

Çalınmış bir keeper anahtarı hesabınızı alamaz. Sözleşme zincirde, çağrı gerçekleşmeden
reddeder: hesabınızı doğrudan hedef alamaz, izin kuran ya da sahipliği değiştiren talimatları
çalıştıramaz ve sizin açmadığınız bir işleme dokunamaz. Ayrıca hesabınızda sabitlenmiş, bizim
tarafımızdan yükseltilemeyen limitlerle sınırlıdır.

<Callout type="warn" title="Burasının sızdırmaz olmadığı yer, açıkça">
  Koruma, izin verilenlerin değil yasaklananların listesi olarak çalışır. Devralmayı tamamen
  engeller — ajan asla sahip olamaz, hesabınızı başkasına veremez — ama kimsenin yasaklamayı
  düşünmediği bir eylem üzerinden değerin hareket edebileceği her yolu engellemez. Kendimize
  karşı bu türden dört saldırı kanıtladık; gerçek Base ağının bir kopyasında. Dış denetim
  yoktur.

  Keeper anahtarını tutan servis, şu anda o anahtarı bellekte tuttuğu için üretim ayarında
  bilerek başlamayı reddediyor.
</Callout>

## Tek yönlü kapı

Bir özellik daha, çünkü "atama geri alınabilir"in diğer yarısı bu.

Hesabınız asla **farklı** bir ajana yönlendirilemez. İlk atama bağlar ve izin verilen tek
değişiklik hiçbirine dönmektir.

<Quote>
  Ajanı değiştirilebilen bir hesapta bir rol vardır — değişimi yapabilen kişi. O rol bir
  hedeftir ve sorun onun var olmasıdır.
</Quote>

Bu bizim için gerçek bir kısıt, keyfini sürdüğümüz bir özellik değil. Yayınlanmış bir ajanı
altınızdan yamalayamayız demek. Yeni bir ajan, yeni bir hesapla, bilerek geçtiğiniz bir
şeydir. Bizim için daha yavaş; mesele de bu.

## Bunu nasıl değerlendirirsiniz

Bir güvenlik sayfasına güvenmeniz gerekmiyor. Ajanın neyi yazabildiğini sorun.

Cevapta bir adres varsa, o sağlayıcının saydığı her kontrol, ikna edilebilir bir modelle
paranız arasında duran bir filtredir — ve filtreler birinin önceden düşündüğü saldırılara
göre yargılanır. Cevapta adres yoksa, harcama limitinin nerede uygulandığını ve sunucuları
kapalıyken ayrılıp ayrılamayacağınızı sorun.

Bu iki soru, tasarımları her türlü belgeden daha hızlı ayırır.