Back to Home

Insurance

defi
0x38ac81460ae7...ae8f9722049b
FrontierContract #1,261Exact Bytecode MatchEdit this contract
Deployed September 18, 2015 (10 years ago)Block 253,556

Bertani's pre-hackathon prototype of InsurETH, deployed twelve hours before Hack The Block London opened.

Frontier EraVerified Source

Historical Significance

First on-chain deployment of the InsurETH design, by the founder of Oraclize, twelve hours before the team formally presented at Hack The Block London. Together with the September 20 hackathon deployment it forms the earliest peer-to-peer flight insurance product on Ethereum and one of the first production uses of Oraclize callbacks on mainnet.

Context

Deployed during Ethereum's Frontier era, six weeks after mainnet launch. The InsurETH project was widely covered in the wave of post-launch press as a demonstration of insurance primitives on smart contracts, and was the winning entry of the Programmable Assets track at Hack The Block.

Key Facts
Deployment Block
253,556
Deployment Date
Sep 18, 2015, 05:30 PM
Code Size
2.0 KB
Gas at Deploy
575,193
Transactions by Year
20155

Description

InsurETH v1 is the pre-hackathon prototype of the contract that would go on to win the Programmable Assets challenge at Hack The Block during London FinTech Week 2015. It was deployed by Thomas Bertani, founder of the Oraclize oracle service, on September 18, 2015 at block 253556, roughly twelve hours before the hackathon opened. Two days later the hackathon team of Francesco Canessa, Kristina Butkute, and Thomas Bertani deployed the polished v2 at 0x88d675e08b053404209e6b0461a1b648592cfbaa.

The contract implements a peer-to-peer flight-delay insurance market. Users pay a premium via register() to insure a specific flight, supplying an Oraclize formula that queries flight status at arrival time. If the Oraclize callback reports the flight as delayed, the contract pays the user five times the premium. Investors fund the payout pool via invest() and withdraw a proportional share of the pool surplus via deinvest(). The investment_ratio() view function reports investment coverage as a percentage of invested capital relative to the funds at risk, allowing prospective investors to gauge pool capitalization before contributing.

The pool holds at most five concurrent insured flights and reserves five times each user's premium against investor funds to guarantee solvency. The contract uses Oraclize at the hardcoded mainnet address 0x393519c01e80b188d326d461e4639bc0e3f62af0, paid out of the contract's own balance, with arrival-time queries scheduled three hours after the user-supplied scheduled arrival.

Source Verified

SolidityExact bytecode match(2,096 bytes)
Compiler: soljson

Exact creation-bytecode match (init + runtime). Runtime: 2077 bytes. Creation: 2096 bytes (19 bytes init, 0 bytes constructor args). Runtime SHA-256: 762d662dabb3493ca4832e0df558cdd60cf46fe4ed54f2aa88674d806d391272. Creation SHA-256: 61dae5357f55c84e07a4933a303582b66df32d94212d67525475ecec0dccb883. The crack hinged on identifying that the investment_ratio() formula divides invested_total by the at-risk balance (investment coverage ratio), not the inverse; this was diagnosed by symbolic stack analysis of a SWAP/DIV permutation that diverged from the candidate compile.

Heuristic Analysis

The following characteristics were detected through bytecode analysis and may not be accurate.

Detected Type: defi

Bytecode Overview

Opcodes2,096
Unique Opcodes150
Jump Instructions116
Storage Operations63

External Links