Disciple of Dawn


Posts

Pre-Print Saturday #2: 16 May 2020

Read more

Pre-Print Saturday #1: 9 May 2020

  • QuickSync: A Quickly Synchronizing PoS-Based Blockchain Protocol[Semion.io]

    The authors present QuickSync, a Proof-of-Stake blockchain consensus protocol based on Ouroboros[6]. The authors claim Byzantine resistance against an adversary with up to 50% stake and also performance improvements. The paper also contains proofs for both the liveness and persistence of this protocol.

  • Enabling Cross-chain Transactions: A Decentralized Cryptocurrency Exchange Protocol[Semion.io]

    The authors propose a decentralised cross-cryptocurrency exchange, motivated by trading Bitcoins for other cryptocurrencies. The authors implement a prototype as a DApp running on an Ethereum testnet.

    This paper is particularly interesting to me for two main reasons. Firstly, given my current research - both personal and coursework-related - into DExes and other DeFi platforms. Secondly, my interest in projects such as tBTC[7]

  • MemShield: GPU-assisted software memory encryption[Semion.io]

    The authors propose MemShield, a framework for transparently encrypting primary memory to resist cold boot attacks. MemShield is implemented as a C library that interacts with userfaultfd to monitor for page requests from userspace. This system allows page-level granularity for memory protection.

    Cold boot attacks have always fascinated me, so mitigations against them are of particular interest as well. I'm impressed by both the granularity and compatibility of this project: no changes to existing applications are required.

  • Formal Verification of Solidity contracts in Event-B[Semion.io]

    The authors define a subset of Solidity which can then be translated into Event-B - a modelling framework of which I have never heard of until discovering this paper. The authors assert that this greatly helps in the formal verification of Ethereum smart contracts.

    Recent coursework that I'm undertaking has required me to study different testing methodologies for Ethereum smart contracts. So far, this has only involved two categories: symbolic execution and fuzzing. This paper expands on the formal verification route - a category which I haven't covered in depth yet.

  • Human Factors in Biocybersecurity Wargames[Semion.io]

    Admittedly, I included this simply due to the spectacular title. Doesn't it just sound cool?

  • JaxNet: Scalable Blockchain Network[Semion.io]

    The authors propose a novel design for a scalable, decentralised Proof-of-Work blockchain, called JaxNet. Their design uses a network of parallel chains that rewards miners for their computational effort in maintaining the network.

    This problem obviously garners an incredible amount of attention - both in academia and industry. Any new publications on the matter seem worthy of a mention.

Read more

Crackerjack - Introduction and Puzzle A Solution

As part of my journey into reverse engineering, I decided to create my own set of crackmes called Crackerjack. I will be doing a series of articles detailing solutions to each puzzle

Read more

Identifying Loops While Reverse Engineering

Often when reverse engineering a binary, it's useful to have some patterns to help identify higher-level code constructs. This post goes through the general structure of various loops in a higher-level language (C) and their corresponding assembly format

Read more

Writing a Simple Fuzzer in Python

I have had an interest in fuzzing for quite some time now, and had decided that it was time to start writing some of my own (very basic) fuzzing tools. In this post, we'll step through some of the basic things we might expect from a fuzzer and how we might achieve them using some of the code I have written

Read more

A Model For ADTs

For the past month or so I have concerned myself with the study of Abstract Data Types (ADTs), particularly the precise, abstract mathematical definition of them. This post reflects the current culmination of my efforts.

Read more