Proxy Kontrat Nedir?
Proxy kontrat, akıllı sözleşmelerde kullanılan bir tasarım modelidir. Bu model, bir ana kontrata erişimi kolaylaştırmak veya ana kontrattaki fonksiyonları genişletmek için kullanılır.
Gerçek Hayattan Bir Örnek:
Diyelim ki bir şirketin, bir binaya girmek isteyen ziyaretçilerin önce güvenlik görevlisine kimliklerini göstermeleri gerekiyor. Ancak bu işlem, güvenlik görevlisinin çok fazla zaman harcamasına neden oluyor.
Bu durumda, şirket bir proxy görevlisi tayin edebilir. Ziyaretçiler artık doğrudan güvenlik görevlisine gitmek yerine, proxy görevlisine kimliklerini gösteriyorlar ve proxy görevlisi de güvenlik görevlisine ziyaretçilerin kimlik bilgilerini iletiyor.
Bu şekilde, güvenlik görevlisi daha az sayıda kişiyle ilgilenirken, proxy görevlisi de ziyaretçilerin trafiğini yönetiyor. Bu, sistemdeki yükü azaltıyor ve iş akışını hızlandırıyor.
Proxy Kontratın Çalışma Prensibi:
Akıllı sözleşmelerde proxy kontratlar benzer bir şekilde çalışır. Ana kontrata doğrudan erişmek yerine,.proxy kontratı kullanmak daha verimli olabilir. Proxy kontrat, ana kontrattaki fonksiyonlara erişim sağlar ve bu sayede ana kontratın yükü azaltılır.
Örneğin, bir ERC20 token standardında, ana kontratta tokenların transferini yöneten bir fonksiyon bulunabilir. Ancak bu fonksiyona doğrudan erişmek yerine, proxy kontratı kullanmak daha iyi olabilir.
Proxy kontrat, ana kontrattaki fonksiyona erişim sağlar ve token transferini gerçekleştirir. Bu sayede, ana kontrata doğrudan müdahale etmek gerekmez ve sistemdeki yük azaltılır.
Kod Örneği:
Aşağıdaki kod örneğinde, bir proxy kontratın nasıl çalışabileceğini görebilirsiniz:
Kod:
pragma solidity ^0.8.0;
contract AnaKontrat {
function transfer(address _to, uint256 _amount) public {
// Token transferi işlemleri
}
}
contract ProxyKontrat {
address public anaKontratAddress;
constructor() public {
anaKontratAddress = address(new AnaKontrat());
}
function transfer(address _to, uint256 _amount) public {
// Proxy kontratı vasıtasıyla ana kontrata erişim
AnaKontrat(anaKontratAddress).transfer(_to, _amount);
}
}
Bu örnekten de anlaşılacağı üzere, proxy kontratlar akıllı sözleşmelerde daha verimli ve esnek bir tasarım modeli sunar.