Vụ tấn công cầu nối từ Ronin network đến ETH mainchain xảy ra ngày 2024-08-06.
Nguyên nhân là do cầu nối Ronin thực hiện 2 bản cập nhật V3 và V4, source code, mà quên không khởi tạo giá trị biến được thêm vào ở bản V3.
Vụ tấn công cầu nối từ Ronin network đến ETH mainchain xảy ra ngày 2024-08-06.
Nguyên nhân là do cầu nối Ronin thực hiện 2 bản cập nhật V3 và V4, source code, mà quên không khởi tạo giá trị biến được thêm vào ở bản V3.
Compound là giao thức cho vay crypto được phát triển từ khá sớm (khoản 2017, 2018). Ở thời điểm hiện tại codebase của nó tiếp tục được sử dụng rộng rãi cho những dịch vụ lending khác nhau theo kiểu compound-fork.
Sonne Finance là 1 trong những dịch vụ fork từ Compound bị tấn công mới nhất ngày 2024-5-15, do chịu ảnh hưởng từ lỗi tính toán sai số trong giao thức compound đã từng bị khai thác một vài lần trước đây.
Vụ khai thác lỗ hổng contract ClaimCampaigns vào ngày 2024-04-19.
Code trên github ở thời điểm viết bài này là bản đã sửa lỗi, chúng ta có thể check contract nguyên bản chứa lỗ hổng trên etherscan.
Bài viết này trình bày chi tiết cách thức vụ hack PrismaFi diễn ra vào ngày 2024-03-28.
PrismaFi là ứng dụng tài chính phi tập trung (Decentralized Finance - Defi) cho phép user nạp tài sản thế chấp (Collateral - ETH hoặc những đồng token đại diện có giá trị tương đương) của mình vào và vay ra đồng tiền ổn định (tương đương USD). Mục đích của việc này là khi user muốn sử dụng tiền mặt nhưng ko muốn bán số ETH đang sở hữu vì thấy được tiềm năng tăng giá trong tương lai.
Uniswap là ứng dụng giao dịch phi tập trung phổ biến đầu tiên sử dụng Automated Market Maker (AMM) thay cho orderbook mà chúng ta thường thấy ở các sàn giao dịch tập trung hay chứng khoán truyền thống.
Orderbook là tập hợp các lệnh đặt mua và lệnh đặt bán từ tất cả người dùng muốn tham gia trao đổi 1 cặp tiền tệ hàng hóa, khi mà lệnh mua và lệnh bán khớp nhau thì giao dịch được thực hiện giữa 2 người.
Tuy nhiên để quản lý 1 orderbook với số lượng lớn các order tốn rất nhiều tài nguyên tính toán của máy tính. Trong bối cảnh Blockchain có khả năng tính toán xử lý giao dịch đầu tiên là Ethereum giai đoạn đầu thì việc xử lý lượng lớn các order update liên tục theo thời gian thực gần như là không thể.
Contract Solidity khi dịch ra bytecode không được quá 24kb nếu không giao dịch deploy contract sẽ bị reject.
EVM - Etherium Virtual Machine là chương trình thực thi bytecode (sau khi được dịch ra từ Solidity hay Rust).
Thư viện (Library) dùng trong contract sẽ đc compile và deploy ra 1 địa chỉ riêng khác với địa chỉ deploy contract. Sau đó trong contract bytecode, ở các vị trí gọi đến hàm public của thư viện sẽ được link đến địa chỉ deploy của thư viện và gọi hàm bằng cách sử dụng opcode delegatecall
của EVM.
Đối với các hàm internal của thư viện được dùng trong contract, bytecode của hàm sẽ được nhúng trực tiếp vào trong contract, và contract gọi đến hàm bằng cách dùng opcode JUMP
giống như gọi các hàm internal bên trong contract (khác với việc sử dụng delagatecall
đối với hàm public của thư viện). Lưu ý là chỉ những hàm internal được gọi mới được nhúng vào contract bytecode (maximum 24kb).
Selector
bytes4(keccak256('supportsInterface(bytes4)')) == 0x01ffc9a7
Smartcontract trên ETH hay các hệ tương thích EVM (Etherium Virtual Machine) như BSC hay Avax có tính chất immutable tức là code khi đã được deploy lên 1 địa chỉ xác định thì không thể thay đổi. Điều này giúp tăng tính minh bạch và việc audit hoạt động của smartcontract thuận tiện hơn cho người dùng. Tuy nhiên lại có 1 điểm bất lợi rõ ràng là code không thể thay đổi để sửa lỗi hay thêm tính năng mới cho smartcontract, mà đây lại là những công việc rất quan trọng và diễn ra liên tục trong quá trình phát triển sản phẩm.
ERC20 là chuẩn dành cho những đồng token có tính chất giống hệt nhau (fungible token), giống như 1 đồng USD có giá trị hoàn toàn tương đương với 1 đồng USD bất kỳ nào khác. Đối với các loại tài sản có tính chất riêng biệt độc nhất (Non Fungible Token - NFT) như mỗi mảnh đất, mỗi vật phẩm, nhân vật trong game..., chúng ta có chuẩn ERC721 để số hóa các loại tài sản như vậy trên Blockchain.
Token ERC20 là 1 trong những ứng dụng Blockchain cơ bản và phổ biến nhất hiện nay.
Để hiểu cách thức hoạt động và cài đặt 1 đồng token trên mạng lưới Blockchain trước hết ta nhắc lại sơ qua các khái niệm sau