Een block is niet alleen een opslagplaats voor data, maar werkt als een geverifieerd en manipulatiebestendig pakket: het bundelt een reeks transacties samen met metadata die bewijst waar die transacties precies passen in de geschiedenis van het grootboek. Elk block bestaat uit twee hoofdonderdelen: een header en een body. De header bevat de tijdstempel, een moeilijkheidsgraad, een nonce die tijdens het minen wordt gebruikt, en twee cruciale hashes: een die terugverwijst naar het vorige block en een die alle transacties in het huidige block samenvat via een Merkle root. De body bevat de daadwerkelijke transactiedata.
Omdat elke header verwijst naar de hash van het voorgaande block, zou het wijzigen van een transactie diep in de keten de hash van dat block veranderen en elke verbinding daarna verbreken, waardoor een aanvaller het werk voor elk volgend block opnieuw zou moeten doen. Deze aaneenschakeling geeft een blockchain zijn weerstand tegen manipulatie, niet het feit dat een enkel block op zichzelf bijzonder is.
Het ontwerp van blocks verschilt per netwerk. Bitcoin hanteerde oorspronkelijk een limiet van 1 megabyte per block; de SegWit-upgrade van 2017 verving die limiet door een cap van 4 miljoen weight units, wat in de praktijk neerkomt op ongeveer 1,5 tot 2 megabyte, gemiddeld elke 10 minuten geproduceerd. Ethereum bepaalt de grootte van een block juist op basis van het totale gasverbruik, met een streefwaarde van ongeveer elke 12 seconden een nieuw block. Grotere blocks bieden ruimte voor meer transacties, maar verhogen de opslag en bandbreedte die nodeoperators nodig hebben, een afweging die centraal staat in de aanhoudende discussie over decentralisatie versus doorvoersnelheid.
Soms lossen twee miners bijna gelijktijdig een block op, waardoor een tijdelijke vertakking ontstaat. Het netwerk kiest uiteindelijk voor de langere keten, en de blocks op de kortere tak worden "orphaned" (of "uncled" op sommige ketens) zodra ze geen deel meer uitmaken van de geaccepteerde geschiedenis.