1. Там не террабайты. За всю историю BTC его блокчейн весит всего ~365гб. К тому же размер блока ограничен 1мб. В более "толстых" блокчейнах применяются некоторые методы оптимизации. Но обычно размер блока ограничен, а главной проблемой является место на диске. В эфире это решается "подрезанием" старых блоков, так-как они нужны не всегда.
2. GPU более эффективны в математических рассчётах, чем CPU.
3. Задача определена алгоритмом, у каждого участника сети есть нода, где в коде прописано повышение сложности и критерии, по которым блок считается смайненым. В случае битка это поиск "красивых" хешей, где вначале хэша должно быть определённое кол-во нулей. Майнер, добавляя новые транзакции в блок и меняя определённое число в блоке, постоянно хэширует этот блок. И когда хэш блока получается "красивым", он сообщает сети, что смайнил блок. Блок включается в цепь, а майнер получает награду.
Поиграться в блокчейном в браузере можно в этой демке: https://andersbrownworth.com/blockchain/
В: То есть блокчейн целиком получают только новые майнеры?
О: Да, верно. Ноды получившие блокчейн полностью, лишь догоняют всю сеть, получая обновления по одному блоку.
В: А как работает программа определения очередности записи?
О: Перед тем как транзакция попадёт в блок, она попадает в mempool, который синхронизируется между всеми нодами. Это что-то вроде чана с транзакциями, откуда майнеры берут их, чтобы включить в блок. Очередность записи определяется блоком, в который включена транзакция. Во всех сервисах принимающих криптовалюты средства считаются зачисленными после включения блока с транзакцией в блокчейн, правда, с некоторыми оговорками, требуется ещё n-ое кол-во подтверждений, чтобы избежать двойной траты из-за возможности образования вилки в блокчейне, но это уже тянет на отдельную статью. То есть, если майнера удовлетворяет комиссия транзакции(выставляется отправителем транзакции), он включает транзакцию в блок и пытается смайнить блок со всеми удовлетворяющими по комиссии транзакциями. То есть, если Вася и Коля купили биткоин одновременно, не факт что их транзакции попадут в один блок. Возможно что Васину транзакцию возьмут первой, из-за того что Вася поставил более высокую комиссию, в таком случае Вася сможет распоряжаться своими средствами раньше Коли.
В: Где лежат эти алгоритмы, как они синхронизируются со всем миром?
О: Алгоритмы определены в коде биткоин-ноды. Скачать её можно здесь: https://bitcoin.org/en/download. Так же, можно написать и свою реализацию биткоин-ноды, но если её поведение будет отличатся от общепринятого сетью, такая нода попросту исключается из сети. Чтобы лучше понимать суть такого взаимодействия, рекомендую почитать про P2P сети.