When Security Testing a Blockchain Application
Points to Look at at First Sight;
Here is an example with Bitcoin transaction tests:
1) Block Size: The maximum fixed limit of a block is 1 megabyte. For the first 18 months after the launch of Bitcoin, the average size of a block was under 30 KB. But in December 2017 it hovered around 1MB.
**What if the size of a block exceeds 1 MB?
2) Chain Size: There is no limitation on chain size. Therefore, it will be pleasant to test its function and performance.
**For example, the size of the Bitcoin chain continues to increase day by day.
3) Payload: Because so many people are using it on the blockchain, payload becomes an important parameter to test on the blockchain. Bitcoin currently has a maximum transaction volume of 3.3-7 per second.
**However, transaction/second Visa(2000), Paypal(193) etc. What happens if it increases as in cases? Load will continue to be a big issue on the blockchain as performance drops as the load increases.
4) Security: Ensuring security is a bit complicated as there are many miners involved in a transaction. A blockchain has a multi-layered security system. Snapshots cannot be stopped if one of the tiers has been hacked.
**Therefore, it should be tested that one security layer does not affect the other.
5) Transmission of Data: Encrypted and decrypted data is transferred from computer to computer, so it is necessary to test whether the transmission process works perfectly.
**Is the sent data received from the other end, or is there some occasional loss?
6) Adding blocks: After the validity of the transaction is verified, each new block is added to the chain.
**Therefore, the block adding system should be tested for any leaks and the block should be added after verification.
7) Cryptographic data: Cryptography is the backbone of blockchain technology.
**Therefore, it is necessary to ensure that data is properly encrypted and decrypted.
Tool Recommendation for Testing Blockchain Applications
–Gremlin
–MixBytes()Tank
–MADT
–Truffle
–Corda
–Whiteblock Genesis …
Reference url’s
https://github.com/saeidshirazi/Awesome-Smart-Contract-Security
https://github.com/jondot/rust-how-do-i-start
https://github.com/Quillhash/QuillAudit_Auditor_Roadmap
https://wooded-meter-1d8.notion.site/0e85e02c5ed34df3855ea9f3ca40f53b?v=22e5e2c506ef4caeb40b4f78e23517ee
https://www.bleepingcomputer.com/news/security/hacker-steals-566-million-worth-of-crypto-from-binance-bridge/
TR
Bir Blockchain Uygulamasına Güvenlik Testi Yapılırken
İlk Bakışta Bakılması Gereken Noktalar;
İşte Bitcoin işlem testleri ile bir örnek:
1) Blok Boyutu: Bir bloğun maksimum sabit limiti 1 megabayttır. Bitcoin’in piyasaya sürülmesinden sonra ilk 18 ay için bir bloğun ortalama boyutu 30 KB’ın altında çıktı. Ancak Aralık 2017’de 1 MB civarında seyir etti.
**Bir bloğun boyutu 1 MB’ı aşarsa ne olur?
2) Zincir Boyutu: Zincir boyutunda herhangi bir sınırlama yoktur. Bu nedenle, işlevini ve performansını test etmek keyifli olacaktır.
**Örneğin, Bitcoin zincirinin boyutu günden güne artmaya devam ediyor.
3) Yük: Blok zincirinde bu kadar çok insan kullandığı için yük, blok zincirinde test edilecek önemli bir parametre haline gelir. Bitcoin şu anda saniyede maksimum 3,3-7 işlem hacmine sahiptir.
**Ancak işlem/saniye Visa(2000), Paypal(193) vb. durumlarda olduğu gibi artarsa ne olur? Yük arttığında performans düştüğü için yük , blok zincirinde büyük bir sorun olmaya devam edecektir.
4) Güvenlik: Bir işlemle ilgili birçok madenci olduğundan, güvenliği sağlamak biraz karmaşıktır. Bir blok zincirinde çok katmanlı bir güvenlik sistemi vardır. Katmanlardan biri hack’lenmişse anlık işlemler durdurulamaz.
**Bu nedenle, bir güvenlik katmanının diğerini etkilemediği test edilmelidir.
5) Verilerin İletilmesi: Şifrelenmiş ve şifresi çözülmüş veriler bilgisayardan bilgisayara aktarılır, bu nedenle iletim işleminin kusursuz çalışıp çalışmadığının test edilmesi gerekir.
**Gönderilen veriler diğer uçtan mı alındı, yoksa arada bir kayıp var mı?
6) Blok ekleme: İşlemin geçerliliği doğrulandıktan sonra her yeni blok zincire eklenir.
**Bu nedenle blok ekleme sisteminde herhangi bir sızıntı olup olmadığı test edilmeli ve doğrulamadan sonra blok eklenmelidir.
7) Kriptografik veriler: Kriptografi, blok zinciri teknolojisinin bel kemiğidir.
**Bu nedenle, verilerin uygun şekilde şifrelendiğinden ve şifresinin çözüldüğünden emin olmak gerekir.
Blockchain Uygulamalarını Test Etmek İçin Araç Önerisi
–Gremlin
–MixBytes()Tank
–MADT
–Truffle
–Corda
–Whiteblock Genesis …
https://github.com/saeidshirazi/Awesome-Smart-Contract-Security
https://github.com/jondot/rust-how-do-i-start
https://github.com/Quillhash/QuillAudit_Auditor_Roadmap
https://wooded-meter-1d8.notion.site/0e85e02c5ed34df3855ea9f3ca40f53b?v=22e5e2c506ef4caeb40b4f78e23517ee
https://www.bleepingcomputer.com/news/security/hacker-steals-566-million-worth-of-crypto-from-binance-bridge/