1. Anasayfa
  2. 100 Günde Solidity

🧵 #100GündeSolidity 070 – Hacks : Özel Verilere Erişim

🧵 #100GündeSolidity 070 – Hacks : Özel Verilere Erişim
Özel Verilere Erişim
0

Özel Verilere Erişim

🧵 #100DaysOfSolidity 070 – Hacks : Solidity’de Özel Verilere Erişim

Solidity, Ethereum blok zinciri platformunda akıllı sözleşmelerin yazılması için kullanılan bir programlama dilidir. Bu dilde, sözleşmelerin içinde kullanılan verilerin gizli kalması gerekebilir. Bu nedenle, Solidity’de özel verilere erişim konusu oldukça önemlidir. Bu e-bültenimizde Solidity’de özel verilere erişim konusunu ele alacak ve farklı erişim yöntemlerini, korunma yöntemlerini ve güvenlik önlemlerini inceleneceğiz.

Solidity’de özel veriler nedir?

Solidity’de özel veriler, sadece belirli bir sözleşme tarafından erişilebilen ve diğer sözleşmeler ya da kullanıcılar tarafından erişilmesi engellenmiş olan verilerdir. Bu veriler, sözleşmenin işlevselliğini sağlamak için gerekli olan gizli bilgileri içerebilirler. Örneğin, bir banka hesap sözleşmesinde, müşteri hesap bilgileri özel veri olarak kabul edilebilir ve sadece müşterinin kendisi veya yetkili banka personeli tarafından erişilebilir olmalıdır.

Erişim belirleyicileri nelerdir?

Solidity’de erişim belirleyicileri, değişkenlerin ve fonksiyonların hangi koşullarda erişilebileceğini belirleyen anahtar kelimelerdir. Bu belirleyiciler, verilerin özel olup olmadığına veya hangi düzeyde erişilebileceğine karar vermede kullanılır. Solidity’de dört tane erişim belirleyicisi vardır:

  1. public: Herhangi bir yerden erişilebilir.
  2. private: Sadece tanımlandığı sözleşmeden erişilebilir.
  3. internal: Sadece tanımlandığı sözleşme ve miras alınan sözleşmelerden erişilebilir.
  4. external: Sadece diğer sözleşmelerde kullanılabilen fonksiyonlarla etkileşime geçebilir.

Erişim belirleyicileri, Solidity’de veri gizliliğini sağlamak ve güvenlik risklerini azaltmak için önemli bir role sahiptir.

Diğer akıllı sözleşmelerden özel verilere nasıl erişilir?

Diğer akıllı sözleşmelerden özel verilere erişmek, Solidity’de güvenlik açısından hassas bir konudur. Bu nedenle, bir sözleşmenin diğer sözleşmelere erişebilmesi için izin verilmesi gereken belirli koşullar vardır.

Bir sözleşmenin diğer sözleşmelere erişmesi için, erişim belirleyicileri kullanarak özel verilere erişim izni vermek gereklidir. Örneğin, bir sözleşmenin belirli bir değişkenine diğer bir sözleşmenin erişmesine izin vermek istiyorsak, değişkenin public olarak belirtilmesi gerekir.

Ayrıca, diğer sözleşmelerin özel verilere erişimini sınırlandırmak için, sözleşmeler arasında işlevsel bir kontrol mekanizması oluşturulması da önemlidir. Bu kontrol mekanizması, sözleşmelerin belirli işlevlerin yalnızca belirli koşullar altında kullanılmasını sağlar. Bu şekilde, özel verilerin istenmeyen bir şekilde erişilmesi önlenir.

Son olarak, sözleşmeler arasında veri paylaşımı yapılırken, verilerin doğru bir şekilde şifrelenmesi ve güvenli bir şekilde aktarılması da önemlidir.

Dış kaynaklı verileri nasıl güvenli bir şekilde kullanabilirsiniz?

Solidity’de dış kaynaklı veriler, genellikle oracles (veri kaynakları) tarafından sağlanır. Bu verilerin güvenli bir şekilde kullanılabilmesi için aşağıdaki önlemler alınabilir:

  1. Oracle Güvenliği: Oracle’ların güvenilirliği, verilerin doğruluğunu sağlamak için kritik önem taşır. Bu nedenle, oracle’ların güvenliğinden emin olmak için, güvenilir oracle’lar kullanılması gereklidir. Oracle’lar, örneğin Chainlink, Band Protocol, API3, The Graph gibi özel şirketler veya topluluklar tarafından sağlanabilir.
  2. Veri Şifreleme: Oracle’lar aracılığıyla sağlanan veriler, genellikle sözleşmelerin akıllı sözleşme kodları tarafından doğrudan kullanılabilir. Bu nedenle, verilerin doğruluğundan emin olmak için, sözleşme geliştiricileri, oracle tarafından sağlanan verilerin doğru olduğunu doğrulamak için verileri şifreleyebilirler.
  3. Veri Doğrulama: Oracle’lar tarafından sağlanan verilerin doğruluğu, doğrulama mekanizmaları kullanılarak sağlanabilir. Örneğin, Chainlink, birden fazla oracle kullanarak verilerin doğruluğunu doğrulamak için bir doğrulama mekanizması sağlar.
  4. Özel Veri Yönetimi: Oracle’lar aracılığıyla sağlanan verilerin, sözleşmenin diğer kullanıcıları tarafından erişilmesi istenmeyebilir. Bu nedenle, sözleşme geliştiricileri, özel verilere erişimi sınırlandırmak için erişim belirleyicileri kullanabilirler.
  5. Sınırlı Sözleşme Erişimi: Bazı durumlarda, sözleşmenin belirli bir veriye erişimi olmalıdır. Bu durumda, sözleşme geliştiricileri, sözleşmenin belirli bir veri kaynağına erişimini sınırlandırmak için bir API aracılığıyla erişim sağlayabilirler.

Bu önlemler, sözleşme geliştiricilerinin dış kaynaklı verileri güvenli bir şekilde kullanmalarına yardımcı olabilir ve akıllı sözleşmelerin daha güvenli hale getirilmesine katkıda bulunabilir.

Özel verilerin korunması için en iyi uygulama yöntemleri nelerdir?

Özel verilerin korunması için aşağıdaki en iyi uygulama yöntemleri önerilebilir:

  1. Erişim Kontrolü: Özel verilere erişimi kontrol etmek, verilerin güvenliğini sağlamak için kritik önem taşır. Bu nedenle, sözleşme geliştiricileri, erişim belirleyiciler kullanarak, özel verilere erişimi sınırlandırmalıdırlar. Bu yöntem, yalnızca yetkili kullanıcıların özel verilere erişebileceğini ve yetkisiz kullanıcıların verilere erişimini engelleyecektir.
  2. Şifreleme: Özel verilerin şifrelenmesi, verilerin yetkisiz erişime karşı korunmasını sağlayabilir. Bu yöntem, sözleşmenin dışarıdan gelebilecek herhangi bir saldırıya karşı korunmasına yardımcı olacaktır.
  3. Veri Saklama: Özel verilerin saklanması, verilerin güvenliğini sağlamak için önemlidir. Verilerin saklanması için, sözleşme geliştiricileri, verileri şifreli bir şekilde saklayacakları güvenli bir veritabanı kullanabilirler.
  4. Veri Doğrulama: Özel verilerin doğruluğunun doğrulanması, verilerin güvenilirliğini sağlamak için önemlidir. Bu nedenle, sözleşme geliştiricileri, verilerin doğruluğunu doğrulamak için doğrulama mekanizmaları kullanabilirler. Örneğin, Chainlink, birden fazla oracle kullanarak verilerin doğruluğunu doğrulamak için bir doğrulama mekanizması sağlar.
  5. Veri Güncellemesi: Özel verilerin güncellenmesi, verilerin doğruluğunu ve güvenliğini sağlamak için önemlidir. Bu nedenle, sözleşme geliştiricileri, verilerin güncellenmesini sağlamak için doğru prosedürleri kullanmalıdırlar.

Bu yöntemler, sözleşme geliştiricilerinin özel verilerin güvenliğini sağlamalarına yardımcı olabilir ve veri güvenliğine yönelik riskleri azaltabilir. Bununla birlikte, veri güvenliği, sürekli bir çabayı gerektiren bir konudur ve sözleşme geliştiricileri, güvenlik konusunda sürekli olarak bilgi sahibi olmalı ve veri güvenliği konusunda en son güvenlik uygulamalarını takip etmelidirler.

Solidity’de veri gizliliğinin önemi ve etkisi nedir?

Solidity, Ethereum blockchain üzerinde akıllı sözleşmeler oluşturmak için kullanılan bir programlama dilidir. Akıllı sözleşmeler, birçok farklı uygulama için kullanılabilecek programlardır ve veri gizliliği, bu sözleşmelerin güvenli ve doğru bir şekilde çalışmasını sağlamak için önemlidir.

Öncelikle, veri gizliliği, akıllı sözleşmelerin birçok uygulaması için kritik önem taşır. Örneğin, bir akıllı sözleşme, bir kullanıcının özel bilgilerini saklayabilir ve bu bilgilerin ifşa edilmesi, kullanıcının güvenliğini tehdit edebilir. Benzer şekilde, bir akıllı sözleşme, finansal verileri saklayabilir ve bu verilerin ele geçirilmesi, kullanıcıların maddi kayıplar yaşamasına neden olabilir.

Ayrıca, veri gizliliği, akıllı sözleşmelerin güvenliği ve doğruluğu için de kritik önem taşır. Eğer bir sözleşmenin verileri ele geçirilirse veya değiştirilirse, bu sözleşmenin doğruluğu ve güvenliği tehdit edilir. Bu nedenle, sözleşme geliştiricileri, veri gizliliği sağlamak için erişim belirleyicileri kullanarak, özel verilere sınırlı erişim sağlamalıdırlar.

Sonuç olarak, Solidity’de veri gizliliği, akıllı sözleşmelerin güvenli ve doğru bir şekilde çalışmasını sağlamak için önemlidir. Sözleşme geliştiricileri, veri gizliliğini sağlamak için en son güvenlik uygulamalarını takip etmeli ve veri gizliliği konusunda sürekli bir çaba göstermelidirler.

Özel verilerin hukuki yönleri nelerdir?

Özel verilerin hukuki yönleri, veri koruma ve gizlilik mevzuatı ile ilgilidir. Bu mevzuat, bireylerin kişisel verilerinin toplanması, işlenmesi ve kullanımı ile ilgili kuralları belirler. Solidity’de özel verilerin kullanımı, bu mevzuatlara uygun olarak yapılmalıdır.

Avrupa Birliği’nde, Genel Veri Koruma Yönetmeliği (GDPR) adı verilen bir mevzuat bulunmaktadır. GDPR, kişisel verilerin toplanması, işlenmesi ve kullanımı ile ilgili kuralları belirler ve Avrupa Birliği’nde faaliyet gösteren tüm işletmelerin bu kurallara uyması gerektiğini belirtir. GDPR, kullanıcılara, verilerinin nasıl toplandığını, neden kullanıldığını ve kimlerle paylaşıldığını bildirme hakkı verir. Ayrıca, GDPR, bireylerin verilerinin silinmesi veya düzeltilmesi taleplerini de içerir.

Benzer şekilde, Amerika Birleşik Devletleri’nde, Kişisel Bilgi Koruma ve Elektronik Belgelerin Gizliliği Yasası (PIPEDA) adı verilen bir mevzuat bulunmaktadır. PIPEDA, özel sektördeki işletmelerin, bireylerin kişisel bilgilerini nasıl topladıklarını, kullanacaklarını ve koruyacaklarını açıklamalarını zorunlu kılar. Ayrıca, PIPEDA, bireylerin kişisel bilgilerini nasıl kullanacaklarına ve kimlerle paylaşacaklarına dair açık bir onay vermesini gerektirir.

Özel verilerin hukuki yönleri, veri koruma ve gizlilik mevzuatı ile ilgili olduğu için, söz konusu mevzuatların yerel ve uluslararası düzeydeki farklı varyasyonlarına göre değişebilir. Bu nedenle, sözleşme geliştiricileri, özel verilerin toplanması, işlenmesi ve kullanımı ile ilgili mevzuata uygun olarak hareket etmek için ilgili mevzuatı iyi anlamalıdırlar.

Solidity’de özel verilere erişimi sağlamak için en yaygın kullanılan yöntemler nelerdir?

Solidity’de özel verilere erişim sağlamak için en yaygın kullanılan yöntemler şunlardır:

  1. Getter fonksiyonları: Bu fonksiyonlar, özel verilerin değerlerini okumak için kullanılır. Getter fonksiyonları, diğer akıllı sözleşmelerden veya dış kaynaklı uygulamalardan özel verileri okumak için de kullanılabilir.
  2. Events: Events, özel verilerin değişikliklerini takip etmek için kullanılır. Event’lar, özel verilerin güncellenmesi, silinmesi veya değiştirilmesi gibi eylemleri tetikler ve bu eylemlerin detaylarını bir log dosyasına kaydeder. Bu log dosyaları, diğer akıllı sözleşmeler ve dış kaynaklı uygulamalar tarafından okunabilir.
  3. Modifier’lar: Modifier’lar, özel verilerin değiştirilmesine veya silinmesine izin veren fonksiyonların sadece belirli kullanıcılar tarafından çağrılmasını sağlamak için kullanılabilir. Bu sayede, özel verilerin istenmeyen değişikliklere karşı korunması sağlanabilir.
  4. Kütüphane fonksiyonları: Kütüphane fonksiyonları, özel verilerin işlenmesi için kullanılabilir. Örneğin, kriptografik fonksiyonlar, özel verilerin güvenliği için kullanılabilir.
  5. Akıllı sözleşmeler arası iletişim (Inter-contract communication): Solidity, akıllı sözleşmeler arası iletişimi destekler. Bu sayede, özel veriler bir akıllı sözleşmede depolanabilir ve diğer akıllı sözleşmeler tarafından erişilebilir hale getirilebilir.

Bu yöntemler, Solidity’de özel verilere erişim sağlamak için kullanılan yaygın yöntemlerdir. Ancak, özel verilerin korunması ve güvenliği önemli olduğundan, söz konusu yöntemlerin güvenlik açıklarını ve potansiyel riskleri dikkate almak önemlidir.

Erişim kontrolü yöntemleri ve yönetimi nasıl yapılır?

Solidity’de erişim kontrolü yönetimi, özel verilerin güvenliği için kritik bir rol oynar. Erişim kontrolü, özel verilere sadece yetkili kullanıcıların erişebileceği şekilde yapılandırılmalıdır. İşte Solidity’de erişim kontrolü yöntemleri ve yönetimi:

  1. Erişim belirleyicileri (Access Modifiers): Solidity’de erişim belirleyicileri, fonksiyonların kimler tarafından çağrılabileceğini belirlemek için kullanılır. Erişim belirleyicileri, public, private, internal ve external olmak üzere dört farklı türde gelir. Bu belirleyiciler, fonksiyonların kimler tarafından çağrılabileceğini kontrol eder ve özel verilere erişim kontrolü sağlar.
  2. Özel değişkenler (Private Variables): Solidity’de, özel veriler private anahtar kelimesiyle tanımlanır ve sadece sözleşme içinde kullanılabilirler. Bu özel değişkenlere, diğer sözleşmeler veya kullanıcılar erişemezler.
  3. Modifier’lar: Modifier’lar, fonksiyonların kimler tarafından çağrılabileceğini kontrol etmek için kullanılabilir. Bu sayede, özel verilere sadece belirli kullanıcılar tarafından erişilebilir hale getirilebilir.
  4. İzin kontrollü fonksiyonlar (Permissioned Functions): İzin kontrollü fonksiyonlar, belirli kullanıcılara özel verilere erişim izni vermek için kullanılabilir. Bu sayede, özel veriler sadece yetkili kullanıcılar tarafından erişilebilir hale gelir.
  5. Event’lar: Event’lar, özel verilerin değişikliklerini takip etmek için kullanılabilir. Bu sayede, özel verilere yapılan değişikliklerin izlenmesi ve kontrol edilmesi mümkün olur.
  6. Role-Based Access Control (RBAC): Rol tabanlı erişim kontrolü, özel verilere erişim izni vermek için kullanılabilir. Bu yöntemde, farklı kullanıcılara farklı roller atanır ve özel verilere erişim izni bu roller tarafından belirlenir.

Erişim kontrolü yönetimi, özel verilerin güvenliği için önemlidir ve Solidity’de kullanılan yöntemlerle birlikte, özel verilere erişim ve kontrol yönetimi sağlanabilir.

Solidity’de özel verilerin erişimine ilişkin güncel güvenlik önlemleri nelerdir?

Solidity’de özel verilerin erişimine ilişkin güvenlik önlemleri sürekli olarak güncellenmektedir. Bu güvenlik önlemleri, özel verilerin korunması ve yetkisiz erişimlerin önlenmesi için tasarlanmıştır. İşte Solidity’de özel verilerin erişimine ilişkin güncel güvenlik önlemleri:

  1. Erişim belirleyicileri: Erişim belirleyicileri, fonksiyonların kimler tarafından çağrılabileceğini kontrol eder ve özel verilere erişimi sınırlandırır. Bu sayede, özel verilere sadece yetkili kullanıcılar tarafından erişilebilir hale gelir.
  2. Modifier’lar: Modifier’lar, fonksiyonların kimler tarafından çağrılabileceğini kontrol etmek için kullanılır. Bu sayede, özel verilere sadece belirli kullanıcılar tarafından erişilebilir hale getirilir.
  3. Keccak-256 Hash Fonksiyonu: Keccak-256 hash fonksiyonu, Solidity’de kullanılan bir hash fonksiyonudur ve özel verilerin güvenliği için kullanılır. Bu hash fonksiyonu, verilerin depolanmasından önce hash’lenerek güvenli hale getirilir.
  4. Akıllı sözleşmelerin sınırlandırılması: Akıllı sözleşmeler, özel verilerin güvenliği için sınırlandırılabilir. Bu sayede, akıllı sözleşmelerin sadece belirli işlemleri yapmasına izin verilir ve özel verilerin güvenliği sağlanır.
  5. Multi-Signature: Multi-Signature, özel verilere erişim izni vermek için kullanılan bir yöntemdir. Bu yöntemde, belirli kullanıcıların onayı gereklidir ve özel verilere erişim izni bu kullanıcılar tarafından belirlenir.
  6. Encrypt/Decrypt Yöntemi: Solidity’de, özel verilerin şifrelenmesi ve deşifre edilmesi için Encrypt/Decrypt yöntemi kullanılabilir. Bu yöntem, özel verilerin güvenliği için önemlidir ve yetkisiz erişimlerin önlenmesine yardımcı olur.

Solidity’de özel verilerin erişimine ilişkin güvenlik önlemleri sürekli olarak geliştirilmekte ve güncellenmektedir. Bu sayede, özel verilerin korunması ve yetkisiz erişimlerin önlenmesi sağlanır.

Akıllı Sözleşme Örneği İnceleme

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

/*
Note: cannot use web3 on JVM, so use the contract deployed on Goerli
Note: browser Web3 is old so use Web3 from truffle console

Contract deployed on Goerli
0x534E4Ce0ffF779513793cfd70308AF195827BD31
*/

/*
# Storage
- 2 ** 256 slots
- 32 bytes for each slot
- data is stored sequentially in the order of declaration
- storage is optimized to save space. If neighboring variables fit in a single
  32 bytes, then they are packed into the same slot, starting from the right
*/

contract Vault {
    // slot 0
    uint public count = 123;
    // slot 1
    address public owner = msg.sender;
    bool public isTrue = true;
    uint16 public u16 = 31;
    // slot 2
    bytes32 private password;

    // constants do not use storage
    uint public constant someConst = 123;

    // slot 3, 4, 5 (one for each array element)
    bytes32[3] public data;

    struct User {
        uint id;
        bytes32 password;
    }

    // slot 6 - length of array
    // starting from slot hash(6) - array elements
    // slot where array element is stored = keccak256(slot)) + (index * elementSize)
    // where slot = 6 and elementSize = 2 (1 (uint) +  1 (bytes32))
    User[] private users;

    // slot 7 - empty
    // entries are stored at hash(key, slot)
    // where slot = 7, key = map key
    mapping(uint => User) private idToUser;

    constructor(bytes32 _password) {
        password = _password;
    }

    function addUser(bytes32 _password) public {
        User memory user = User({id: users.length, password: _password});

        users.push(user);
        idToUser[user.id] = user;
    }

    function getArrayLocation(
        uint slot,
        uint index,
        uint elementSize
    ) public pure returns (uint) {
        return uint(keccak256(abi.encodePacked(slot))) + (index * elementSize);
    }

    function getMapLocation(uint slot, uint key) public pure returns (uint) {
        return uint(keccak256(abi.encodePacked(key, slot)));
    }
}

/*
slot 0 - count
web3.eth.getStorageAt("0x534E4Ce0ffF779513793cfd70308AF195827BD31", 0, console.log)
slot 1 - u16, isTrue, owner
web3.eth.getStorageAt("0x534E4Ce0ffF779513793cfd70308AF195827BD31", 1, console.log)
slot 2 - password
web3.eth.getStorageAt("0x534E4Ce0ffF779513793cfd70308AF195827BD31", 2, console.log)

slot 6 - array length
getArrayLocation(6, 0, 2)
web3.utils.numberToHex("111414077815863400510004064629973595961579173665589224203503662149373724986687")
Note: We can also use web3 to get data location
web3.utils.soliditySha3({ type: "uint", value: 6 })
1st user
web3.eth.getStorageAt("0x534E4Ce0ffF779513793cfd70308AF195827BD31", "0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f", console.log)
web3.eth.getStorageAt("0x534E4Ce0ffF779513793cfd70308AF195827BD31", "0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d40", console.log)
Note: use web3.toAscii to convert bytes32 to alphabet
2nd user
web3.eth.getStorageAt("0x534E4Ce0ffF779513793cfd70308AF195827BD31", "0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d41", console.log)
web3.eth.getStorageAt("0x534E4Ce0ffF779513793cfd70308AF195827BD31", "0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d42", console.log)

slot 7 - empty
getMapLocation(7, 1)
web3.utils.numberToHex("81222191986226809103279119994707868322855741819905904417953092666699096963112")
Note: We can also use web3 to get data location
web3.utils.soliditySha3({ type: "uint", value: 1 }, {type: "uint", value: 7})
user 1
web3.eth.getStorageAt("0x534E4Ce0ffF779513793cfd70308AF195827BD31", "0xb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b828", console.log)
web3.eth.getStorageAt("0x534E4Ce0ffF779513793cfd70308AF195827BD31", "0xb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b829", console.log)
*/

Bu akıllı sözleşme örneği bir Vault adlı kontratı içermektedir. Bu kontrat, bir şifreyi özel bir veri alanında saklar ve bu şifreye erişim izni olan kullanıcılara güvenilir bir şekilde depolama hizmeti sunmak için tasarlanmıştır. Ayrıca, kullanıcıların veri alanına kaydolmasına izin veren bir kullanıcı kayıt işlevi de içermektedir.

İşlev yönünden bakıldığında, bu kontrat, kullanıcıların şifrelerini güvenli bir şekilde saklamak için bir dizi işlev içerir. Bu, kullanıcının şifresini özel bir veri alanına kaydetmesini sağlayan addUser() işlevi ile yapılır.

Güvenlik yönünden bakıldığında, bu kontrat, özel veri alanlarının yanı sıra hesaplama gücü gerektiren bir dizi işlem içerir. Bu, bir güvenlik açığı yaratabilir. Örneğin, diğer kullanıcılar, Vault adlı kontrattaki özel veri alanlarına doğrudan erişemese de, doğru kodlamadan yoksun bir saldırgan, özel veri alanlarına erişebilir veya Vault’ı kendi amaçları için kullanabilir. Bu nedenle, bu tür kontratlar, kodlama konusunda uzman kişiler tarafından yazılmalı ve test edilmelidir.

Süreç yönünden bakıldığında, kontrat, bir kullanıcının Vault’a kaydolmasına izin veren addUser() işlevi içerir. Bu işlev, özel veri alanında kullanıcı verilerini depolar ve bu verilere erişim sağlamak için getArrayLocation() ve getMapLocation() işlevlerini kullanır.

Önleyici yöntemler yönünden bakıldığında, bu kontrat, özel veri alanının güvenliğini sağlamak için çeşitli yöntemler kullanır. Bunlar arasında, Vault’ın kullanıcılara özel şifrelerine erişim sağlama yeteneği, özel veri alanının kendi içinde nasıl depolandığına dair detaylı açıklama ve özel veri alanının güvenliği için yardımcı fonksiyonlar olan getArrayLocation() ve getMapLocation() işlevleri yer almaktadır.

Sonuç olarak, bu kontrat, bir veri depolama hizmeti sunarken, özel veri alanlarını ve kullanıcı verilerini güvende tutmak için bazı önlemler alınarak tasarlanmıştır. Ancak, güvenlik açıkları hala mümkün olduğundan, bu tür kontratlar yazılırken dikkatli bir yaklaşım benimsenmeli ve güvenlik testlerinden geçirilmelidir.

Solidity Programlama Dili Öğrenme yolculuğunuz hakkında daha iyi rehberlik almak için Solidity nedir? Ethereum Akıllı Sözleşmelerinin Dili Rehberi içeriğimize göz atın. Dilerseniz Yeni Başlayanlar için Solidity – Akıllı Sözleşme Geliştirme Hızlandırılmış Kursuna katılın.

Çalışmaya nereden başlayacağım diyenler için Blockchain ​​Developer Olmak İçin Yol Haritası içeriğine de muhakkak bakın.

Gelin aklınızdaki soruları SUPERPEER sohbetinde cevaplayalım.

Bu makaleyi okuduğunuz için teşekkürler! Bana destek olmak isterseniz;

Beni TwitterLinkedin ve YouTube‘da takip edin.

Kısa bir yorum bırakmayı UNUTMAYIN!

solidity101 - Solidity, 2015 yılında Christian Reitwiessner liderliğinde piyasaya sürülen, büyük harf kullanımına göre ikinci en büyük kripto para piyasası olan Ethereum tarafından oluşturulan yepyeni bir programlama dilidir.

Yazarın Profili

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir