Logo

Web3 İlişkilendirme Takibi için Zincir İçi Yönlendirme Sistemleri

December 3, 2023

Gelişen dijital ortamda, işletmeler ve geliştiriciler sürekli olarak verileri izlemek ve analiz etmek için en etkili araçları aramaktadır. Origin'de, web tabanlı etkileşimleri izlemek için Google Analytics'i çözüm olarak kullanıyorduk, ancak blockchain teknolojisi cazip bir alternatif sunuyor: zincir üzerindeki işlemleri izlemek. Bu yaklaşım, özellikle doğruluk ve şeffaflık konusunda benzersiz avantajlar sunuyor.

Yönlendirmeleri zincir üzerinde izlemenin arkasındaki temel dayanak noktası, kontrol ettiğiniz merkezi olmayan bir uygulamadan (dapp) kaynaklanan herhangi bir işlemin çağrı verilerine bazı ekstra baytlar eklemektir. Ekstra baytlar genellikle sözleşme çağrısına müdahale etmez (istisnalar olsa da), ancak işlemin gaz maliyetini çok küçük bir miktar artırır.

Bu ekstra baytlar zincir üzerinde saklanır ve Etherscan ya da diğer indeksleyicilerde görülebilir. Origin'in durumunda, bilinen bir bayt dizisi ile biten calldata'ya sahip işlemleri etiketlemek için Subsquid'i kullanıyoruz, böylece hangi işlemlerin dapp'ımızdan kaynaklandığını biliyoruz.

Bu teknik bir süredir NFT pazarları tarafından kullanılıyor ve işlem hacminin Blur veya Gem gibi toplayıcılara nasıl atfedilebileceğini gösteriyor. Reservoir gibi NFT altyapı projeleri bu işlevi doğrudan SDK'larına eklemiş olsa da bu teknik henüz DeFi içinde yaygın değildir.

Zincir üzerinde bir yönlendirici sistemi uygulamak nispeten basit bir süreçtir, ancak birkaç önemli husus vardır. Ne tür bir ilişkilendirme yapacağınıza karar vermeniz gerekir

Baştan sona nasıl çalıştığını aşağıda bulabilirsiniz:

1. Bir dizeyi hashleyerek 4 baytlık bir kod oluşturun, örneğin bytes4(keccak256("oeth.com")).
2.   Daha sonra başvurulabilmesi için hash'i bir kod deposu veya elektronik tablo gibi bir yerde saklayın.
3.   Dapp'inizi URL paramları aracılığıyla yönlendirme kodlarını kabul edecek şekilde değiştirin, örneğin mydapp.com/?code=abc12345 ve bu kodu localStorage'da saklayın
 4.  Dapp'iniz bir işlem gönderirken, yönlendirme kodunu calldata'ya ekleyin
 5.  İşlem çıkarıldıktan sonra, yönlendirme kodunun calldata'ya eklendiğini ve Etherscan'da veya eth_getTransactionByHash RPC çağrısı aracılığıyla görülebildiğini göreceksiniz.

Zincirleme Takibin Avantajları

  • Değişmez Kayıtlar: Blok zincirinin değişmez yapısı, yönlendirme kodlarının süresiz olarak kaydedilmesini ve herkes tarafından erişilebilir olmasını sağlar.
  • Bağımsız Doğrulanabilirlik. Üçüncü taraflar, kısıtlı verilere erişime ihtiyaç duymadan yönlendirme özelliğinin işlevselliğini bağımsız olarak doğrulayabilir.
  • Doğruluk. Geleneksel izleme yöntemlerinin aksine, bu yaklaşım reklam engelleyicilerden ve tarayıcı çerezlerinden etkilenmez.
  • Alanlar arası. Yöntem farklı merkezi olmayan uygulamalarda uygulanabilir.
  • Açık standart. Üçüncü taraf indeksleyiciler işlemleri toplayıcılara veya diğer üçüncü taraflara atfedebilir.

Potansiyel Sınırlamalar

  • Artan Gaz Maliyetleri. Fazladan bayt eklemek işlem maliyetlerini biraz artırır, bayt başına yaklaşık 16 gaz, 4 bayt için toplam 64 gaz.
  • Uyumsuz işlemler. Bazı durumlarda ekstra calldata üçüncü parti cüzdanların hatalı çalışmasına neden olabilir. Örneğin, ERC20 onayları gibi yaygın işlemler MetaMask gibi cüzdanlarda özel UX görüntülenmesine neden olabilir. Ekstra calldata bu durumlarda hatalara neden olabilir, bu nedenle bu tür sorunların ortaya çıkmadığından emin olmak için herhangi bir uygulamayı kapsamlı bir şekilde test etmek önemlidir.

Zincirleme yönlendirme takibi, geleneksel takip mekanizmalarına göre değişmezlik, şeffaflık ve yaygın web takibi sorunlarına karşı direnç gibi bazı cazip avantajlar sunar. Artan gaz maliyetleri ve potansiyel uyumsuzluklar gibi kendi zorluklarıyla birlikte gelse de, faydaları muhtemelen bu sınırlamalardan daha ağır basmaktadır ve teknik bir alternatif olarak değerlendirilmeye değerdir.

Farid
Farid
Origin
Stay in touch
Be the first to hear about important product updates. Your email will be kept private.
Originally released by Origin Protocol
Privacy policyTerms of service