Posts

Showing posts with the label Security

Memory-Safe Until It Isn’t: The Rust Kernel Bug That Broke Linux

Image
The disclosure of CVE-2025-68260 , the first publicly assigned CVE affecting Rust code in the Linux kernel, triggered a disproportionate level of attention compared to its immediate technical impact.  Headlines framed it as a symbolic failure: “Rust breaks,” “memory safety promises collapse,” or “Linux’s Rust experiment backfires.” These interpretations obscure what actually happened and, more importantly, what the event teaches about systems programming, concurrency, and language guarantees. This article examines three tightly related topics: What CVE-2025-68260 actually was, technically The goals and constraints of the Rust-for-Linux initiative Why race conditions remain a hard problem even in Rust, especially in kernel code The goal is not to defend Rust, nor to criticize Linux developers, but to clarify where responsibility lies: in invariants, concurrency design, and the unavoidable complexity of kernel-level programming. Background: The Rust-for-Linux Initiative The Linux ker...

Real Chaos, Real Security: A Physical Approach to Blockchain Randomness

Image
Why Strong Randomness Matters Every secure cryptographic system relies on a single principle: some values must be impossible for an attacker to predict. Randomness matters because it prevents attackers from predicting secrets. Many cryptographic operations depend on values that must remain entirely unpredictable; even a slight bias shrinks the search space and makes attacks easier. A predictable random number generator functions like an unlocked door. Randomness also protects protocols from replay and forgery. Exchanging unpredictable nonces proves freshness.  If the “random” numbers behind keys, nonces, or challenges are even slightly predictable, attackers gain a dangerous advantage like to impersonate devices  (hm-hm PS3 hack), forge sessions, or inject replayed messages into secure channels. The challenge is that computers are inherently deterministic. Given the same input, they always produce the same output. That property is perfect for reproducible computation but ter...

Bitcoin Layer 2 Wars: Lightning, Liquid, and Stacks

Image
Introduction Bitcoin was designed as a secure, decentralized ledger for peer-to-peer value transfer. Its conservative approach to scalability and limited scripting language make it exceptionally secure, but also restrict throughput and programmability. To overcome these limits without changing Bitcoin’s base protocol, developers have built a growing ecosystem of Layer 2 (L2) solutions - protocols that extend Bitcoin’s functionality while inheriting its security. This first part of the Bitcoin L2 series provides a technical and economic overview of Lightning , Liquid , and Stacks  - three of the most established Bitcoin extensions. We will cover their underlying technologies, use cases, security models, protocol dependencies, tokenomics, and associated risks. 1. The Lightning Network Technology and architecture The Lightning Network is an off-chain payment network built on Bitcoin’s existing scripting capabilities. It uses hashed timelock contracts (HTLCs) to establish payme...

Understanding Pedersen and Kate Commitments

Image
Cryptographic commitments play a pivotal role in ensuring the integrity and security of digital transactions and communications. Among the myriad of commitment schemes available, Pedersen and Kate commitments stand out for their unique properties and applications. This article delves into the intricacies of both, drawing insights from a previous discussion on Kate commitments Kate Polynomial Commitments . What are Pedersen Commitments? Pedersen commitments are renowned for their simplicity and elegance in cryptographic circles. At its core, a Pedersen commitment allows one to commit to a chosen value while keeping it hidden, with the ability to reveal the committed value later. The magic lies in its two-fold assurance: it's both hiding (the value cannot be guessed) and binding (the committer can't change the value once committed). The Mechanism Select Parameters : Choose a large prime number p and a generator g of a group of order q (where q is also a large prime ...

Zero-Knowledge Proofs with Circom and Noir

Image
Zero-knowledge proofs (ZKPs) are a powerful cryptographic tool that allow you to prove that something is true without revealing any additional information. ZKPs are finding a wide range of applications in blockchain, including privacy-preserving transactions, scaling solutions, and decentralized gaming. In the previous article, we've discussed about some of the fundamentals behind SNARKs and STARKs , so make sure to read those if you want more details behind the tech. ZKP Languages One of the most important components of a ZKP is the circuit. A circuit is a mathematical representation of the computation that is being performed by the ZKP. Circuits are typically written in a specialized language, such as Circom or Noir. Circom is a circuit description language that is developed by the Zcash project. It is a powerful and flexible language that allows users to write circuits for a wide range of applications. However, Circom can be difficult to learn and use, and it requires a ...

Decoding the PlayStation 3 Hack: Unraveling the ECDSA Random Generator Flaw

Image
In 2006, Sony unleashed the PlayStation 3, a cutting-edge gaming console that quickly captivated the hearts of millions. However, behind its sleek design and powerful gaming capabilities lay an enticing challenge for hackers. Over the years, a myriad of attempts were made to crack the PS3's defenses, fueled by the desire to run homebrew software and pirate games. Amidst this pursuit, one group of hackers, FailOverflow, embarked on a groundbreaking mission that would send shockwaves through the cybersecurity world. In December 2010, at the Chaos Computer Congress in Germany, FailOverflow revealed a flaw that would become legendary in the annals of hacking history. Their presentation exposed a critical error in Sony's implementation of cryptographic algorithms, particularly the Elliptic Curve Digital Signature Algorithm (ECDSA) , responsible for creating signatures in the console. What they unveiled wasn't just a minor glitch—it was a seismic vulnerability. By exploiting ...

Proof of solvency and collateral

Image
Centralized exchanges (CEXs) are a critical part of the cryptocurrency ecosystem, but they also pose a significant risk to users. In the event of a hack or bankruptcy, users can lose all of their funds. One way to mitigate this risk is to require CEXs to provide regular proof of solvency. Proof of solvency is a way for CEXs to demonstrate that they have enough assets to cover all of their user deposits. There are a number of different ways to implement proof of solvency. One simple approach is for CEXs to simply publish a list of all of their addresses and the corresponding balances. This approach is transparent and easy to verify, but it does not provide any privacy for users. Zero-knowledge Proofs A more secure approach would be for CEXes to use zero-knowledge proofs (ZKPs) to prove their solvency. ZKPs allow exchanges to prove that they have a certain amount of assets without revealing any other information about their balance sheets. This would make it much more difficult fo...