· kaynak dev.to (home feed)
Rehber, agent'lere aktarılmış drand rastgeleliğini 30 satırda doğrulamayı gösteriyor
dev.to'da yayınlanan bir rehber, sabitlenmiş anahtarlar ve resmi istemciyle drand'ın quicknet beacon'ından aktarılan rastgeleliğin nasıl doğrulanacağını gösteriyor; böylece relay bir kolaylık haline geliyor, bir güven çapası değil.

drand neyi yayınlıyor
drand, League of Entropy adında bağımsız kuruluşlardan oluşan bir grup tarafından işletilen bir açık rastgelelik beacon'ıdır. dev.to yazısına göre quicknet zinciri her üç saniyede bir tur yayınlıyor. Her tur, tur numarası üzerine bir BLS imzasından oluşur ve rastgelelik değeri bu imzanın SHA-256 hash'idir. Bir turu doğrulamak yalnızca zincirin açık anahtarını gerektirdiğinden, herkes drand'dan izin istemeden, çevrimdışı olarak bir turu doğrulayabilir.
Güven boşluğu nerede ortaya çıkıyor
Çoğu agent drand'a doğrudan bağlanmaz; beacon verisini ileten bir HTTP relay'ını çağırır. Bu, beacon'ın ortadan kaldırmayı amaçladığı güven sorusunu yeniden gündeme getirir. Yazının yazarı bu relay'lardan birini işletiyor: Proof Random API. Hesap veya ödeme gerektirmeyen, ücretsiz bir prototip olan bu servis, en son quicknet turunu düz JSON olarak döndürüyor. Dikkat çekici bir ayrıntı, yanıtta verified: false alanının bulunması: relay imzaları doğrulamıyor ve bunu açıkça söylüyor. Yazara göre doğrulama, tüketicinin tarafında, tüketicinin önceden sabitlediği anahtarlara karşı yapılmalıdır.
Aktarılmış bir beacon'ı doğrulamak
Rehberin temel kuralı, açık anahtarı asla doğruladığınız tarafın verisinden okumamaktır. Bunun yerine, drand tarafından yayınlanan quicknet'in zincir hash'ini ve açık anahtarını koda sabit olarak yazın. Ardından npm'deki resmi drand-client paketini kullanarak, relay'ın döndürdüğü aynı tur numarasını, imza doğrulama etkin biçimde drand'ın kendi HTTP uç noktasından alın ve imza ile rastgelelik değerlerini karşılaştırın.
Relay yalan söylediyse, bir değere müdahale ettiyse veya yanlış turu yeniden oynattıysa, karşılaştırma başarısız olur ve kod bir hata fırlatır. Doğrulama geçtiğinde relay, bir güven çapası olmaktan çıkıp yalnızca bir teslimat kolaylığına indirgenir. Girdi denetimleri ve zaman aşımları dahil tam istemci, yazarın GitHub deposunda verified-client.mjs olarak yayınlanmıştır; yazar, relay'ı tamamen atlamak isteyenlerin fetchBeacon'ı doğrudan drand'a yönlendirebileceğini belirtiyor — doğrulama kodu aynı kalıyor.
Yansız bir tam sayı elde etmek
Naif bir şekilde randomness % 6 hesaplamak sonuçları düşük değerlere doğru yanlıştır. Rehber bunun yerine zincir hash'ini, tur numarasını, rastgeleliği, çağıranın sağladığı bir nonce'ı ve bir deneme sayacını SHA-256 ile hash'ler, özetten 32 bitlik bir tam sayı okur ve reddetme örneklemesi uygular: istenen aralığın en büyük katına eşit veya üzerindeki değerler atılır ve sayaç, 1000 deneme sınırına kadar artar. Hash'lenen tüm girdiler herkese açık olduğundan, tur numarasına ve nonce'a sahip herkes tam olarak aynı tam sayıyı yeniden hesaplayabilir — yazı bunu herkesin yeniden oynatabileceği bir zar atışı olarak çerçeveliyor.
Yaklaşımın sınırları
Doğrulama, sayının drand'dan geldiğini kanıtlar; çağıranın elverişli bir turu seçmediğini kanıtlamaz. Bir agent en son tur uç noktasını sorgulayabilir, sonucu beğenmeyebilir ve yeniden sorgulayabilir; bu uç noktası tasarımında bunu engelleyen bir şey yok. Kendi işletmecisine karşı bile adil olması gereken çekilişler için yazı, tüm tarafların o tur yayınlanmadan önce gelecekteki bir tur numarası ve nonce üzerinde anlaşmasını, sonra da o tur ortaya çıktığında söz konusu turu doğrulamasını öneriyor. Yazarın relay'ı bugün yalnızca en son turu sunduğundan, ödül dağıtımından çok örnekleme ve beraberlik bozmaya uygundur; yazı da relay'ın bir VRF olduğu iddiasında bulunmadığını açıkça belirtir.
Neden önemli
Agent'ler dışarıdan keyfi görünen daha fazla karar üstlendikçe — atama, sıralama, örnekleme, tahsis — bir seçimin gerçekten rastgele olduğunu kanıtlama sorunu bir nezaket değil, operasyonel bir gereksinim haline geliyor. drand'ın tasarımı bunu yeniden üretilebilir bir denetime dönüştürüyor: tur numarasına, nonce'a ve sabitlenmiş anahtarlara sahip bir üçüncü taraf sonucu yeniden türetebilir ve hiçbir şeyin sulandırılmadığını doğrulayabilir. Rehberin daha geniş dersi rastgeleliğin ötesine geneller: aracılar kolaylık için sorun değildir, ama size verdikleri her şey kendi belirlediğiniz parametrelere karşı doğrulanabilir olmalıdır. Belirtilen sınırlar — en son turu yeniden deneyebilme ve yüksek riskli çekilişler için gelecekteki turlara bağlanma gereksinimi — bu desenin tam olarak nerede güvenli olduğunu ve nerede daha güçlü taahhütler gerektiğini işaret ediyor.
- #drand
- #randomness
- #cryptography
- #ai-agents
- #verification
İlgili yazılar
- AI agent'larına root yerine typed tool'lar ve kapsamlı token'larla MCP üzerinden deploy izni vermek
- Perplexity 27 Eylül'de Sonar API'yi emekliye ayırıyor, Appsmith AI eklentisi 30 Eylül'de kapanıyor
- AIClaw ve Nabsun, yapay zeka ajanlarının gerçek tarayıcı sekmelerini indekslenmiş öğeler üzerinden kullanmasını sağlıyor