Block storage is the typical native storage interface of most storage media at the driver level. A hard disk driver, for example, writes out and reads in blocks by their block address on the formatted disk.
Many applications also use block storage for their persistent I/O operations. A notable example is most of the RDBMS (relational database management system) applications, such as Oracle, DB2, etc. Applications that use other storage means, such as file systems, delegate the native block storage I/O to the underlying file system that mediates between the underlying block storage interface and the file I/O operations issued by the application (for example, HDFS, NFS, etc.).
Storage area networks (SAN) always expose block storage interface to the client applications. In many cases, depending on HW support, block size can be configured as well as various parameters, such as block placements on the actual media. It is the role of the client application to map between its own storage formats and the underlying block storage system.