Source: https://raincode.com/pub/SLE_paper_on_Raincode_ASM_370.pdf