Что такое транзакция — определение, виды и проверка транзакций
Здравствуйте, уважаемые читатели блога KtoNaNovenkogo.ru. Хочу продолжить тему толкования не всегда понятных «с ходу» терминов, которые довольно часто встречаются на просторах сети. Чуть ранее я пытался простыми словами рассказать про тренды, оферты, аутентификацию, ICO и токены. Как получилось — судить вам.
Сегодня у нас на очереди слово — транзакция. Что это такое? Как правильно писать это слово — транзакция или трансакция? К чему это понятие относится — к банковским операциям, к программированию баз данных, к области философии или же к области криптовалют?
Как видите, слово это многоплановое и значений у него как минимум несколько. Но все не так сложно, как кажется на первый взгляд. Я бы даже сказал — просто. Но все же несколько абзацев вам просмотреть придется, чтобы понять что к чему.
Про транзакции же в сети биткоин я расскажу намного подробнее, ибо понимая их суть вы сможете существенно сэкономить.
Определение термина транзакция — что это
Транзакция — это какой-то вид операции или сделки между двумя сторонами. Например, когда вы покупаете что-то в магазине, происходит транзакция между вами и продавцом.
Для начала давайте обратимся к корням, т.е. посмотрим на происхождение этого слова. К нам в язык оно пришло из английского и является приводным от transaction. Примечательно, что нет четких указаний какую букву использовать в середине в русской транскрипции («з» или «с»). Исторически так сложилось, что до начала нашего века говорили трансакция, а сейчас повсеместно употребляют — транзакция. В принципе, верны оба варианта.
В переводе слово transaction означает — сделка или договор, а скорее процесс проведения сделки или заключения договора. Само по себе оно происходит от латинского transactio, означающего в переводе — соглашение.
Самое главное при этом то, что транзакция не может быть выполненной наполовину или на четверть. У этого понятия есть только два состояния — либо выполнено, либо нет. Это как в компьютерной логике — 0 или 1. По сути, это логически завершенная операция, насколько бы длинной она не была и из скольких бы этапов не состояла.
Банковская транзакция
Банковская транзакция – это операция, связанная с движением денежных средств на банковском счете. Это может быть перевод средств, оплата счетов, пополнение баланса и другие действия, требующие участия банка в обработке и подтверждении операции.
Самым распространенным типом до недавнего времени была банковская транзакция. Этим замысловатым словом обозначают любое действие, повлекшее за собой изменение состояния счета клиента банка. Что это может быть? Ну, все что угодно. Это и простой перевод с одного счета на другой, это и снятие денег с карты в банкомате, это и оплата картой в магазине.
Сам процесс банковской транзакции может быть весьма сложен, и если его описывать, то нужно будет употреблять такие слова, как процесинговый сервис, банк-эмитенг (выпустивший карту), банк-эквайер (владелец банкомата или считывающего оборудования в магазине). Оно вам надо? Думаю, что нет. А вот говоря простыми словами — это обычное изменение состояние счета в результате действий, способных к этому привести, часть из которых описана выше.
В общем любая операция с банковским счетом или картой (в большинстве случаев карты тоже привязаны к счету, если только они не предоплаченные, как, например, Payoneer или ePayments) для простоты называется транзакцией. К примеру, оплачивая товар на кассе своей картой, вы можете увидеть сообщение на терминале об успешной или не успешной транзакции.
Кроме двух основных состояний (успешно и нет) есть и еще один вариант — отозванная транзакция. Наверное, вы тоже об этом слышали, что, например, платеж картой в интернет-магазине может быть отозван в течении некоторого времени, если у покупателя возникнут претензии к товару. Т.е. в банковской среде (в отличии от криптовалют, речь о которых пойдет ниже) транзакция может быть отозвана в случае форс-мажора (для защиты клиента от обмана).
Транзакции в базах данных
Это группа последовательных операций с базой данных, которая представляет собой логическую единицу работы с данными.
В программировании транзакцией называют доступ (внесение изменений) к базе данных, в результате которого она переходит в новое состояние. Базу данных можно представить себе в виде таблицы с данными, которая хранится в отдельной области памяти. В эту таблицу можно вносить новые данные или изменять старые.
Собственно, эти изменения и называют транзакциями, которые тоже могут иметь только два состояния — успешно или нет. Если система транзакцию не принимает, то база данных возвращается в исходное (предшедствующее) этому действию состояние.
Собственно, тут, как вы видите, нет абсолютно никаких расхождений с тем, о чем мы говорили выше. По сути, счета клиентов в банке — это ведь тоже база данных, а транзакции (изменение состояния счета) — это изменение этой базы и переход ее в новое состояние.
Другое дело, что база данных в банковском деле располагается на серверах банка, но бывают и распределенные базы данных, изменения в которых тоже называются транзакции. Именно к этому типу относятся базы данных биткоина и других криптовалют (так называемый блокчейн), о которых речь пойдет ниже.
Что такое биткоин-транзакции
Биткоин-транзакции ― это подтвержденные подписью секции данных, которые передаются в сети биткоина и собираются в блоки. Их можно рассматривать как перевод цифровой валюты с одного криптовалютного адреса на другой.
Как я уже упоминал выше, произнося это слово, люди раньше в большинстве случаев имели в виду именно банковские операции со счетами (ввод, вывод, переводы, оплату и т.п.). Но вот совсем недавно слово транзакция стала в большей степени ассоциироваться с криптовалютой (что это такое простыми словами) и в частности с биткоином — самой первой и до сих пор самой популярной из криптовалют.
Что такое биткоин транзакция? По сути, то же самое, что и банковская. Это любая операция, приводящая к изменениям счета клиента этой самопальной платежной системы. Она (трансакция) так же может иметь только два значения — прошла или не прошла (подтверждена или нет). Но все же есть ряд различий и обусловлены они тем, что в системе биткоина используется распределенная база данных.
Что такое распределенная база данных? Это когда она существует в виде огромного числа копий (в идеале, ее копии должны быть у всех владельцев «толстых» кошельков для криптовалюты) и новые записи в ней считаются достоверными, если только они совпадают во всех существующих копиях, ну, или хотя бы в большей части из них.
Такая распределенная база данных называется блокчейном и представляет она из себя полностью самоорганизующийся организм (ни кем, по сути, не управляемый). Есть специальный механизм (майнинг, алгоритмы консенсуса), которые позволяют избежать фейковых транзакций (переводов), и чем больше людей вовлечено в эту сеть, тем надежнее она работает.
Все новые транзакции в сети биткоин записываются в блокчейн (распределенную базу данных) не постоянно, а блоками через определенные промежутки времени (сейчас это примерно раз в 10 минут). Первым запись всех новых транзакций (переводов, т.е. информацию о всех новых платежах) проводит тот майнер, кто сумел добыть очередную монетку (кроме этого он еще получает за это и вознаграждение).
Сам процесс майнинга представляет из себя бессмысленный перебор чисел (аналог поиска иголки в стоге сена), и кто первым найдет нужное число определить заранее невозможно, что делает систему безопасной. Потом сделанные им записи дублируются по всей остальной сети блокчейн. Следующую запись сделает уже другой майнер, нашедший очередную иголку (число, точнее хеш).
Считается, что транзакция прошла, когда в системе наберется хотя бы 6 подтверждений (но чем больше, тем лучше). Большинство криптокошельков и обменных пунктов будут считать деньги переведенными именно после шести подтверждений. Следует это из обычной логики, по которой при таком числе подтверждений вероятность того, что данная транзакция была фейковой (по идее, биткоины можно отправить сразу по двум адресам), становится достаточно низкой.
Почему возникают неподтвержденные транзакции
К сожалению, далеко не все транзакции в биткоин-сети проходят успешно. Часть из них так и останется неподтвержденной. Дело в том, что в один блок можно записать только ограниченное число информации о проведенных в этот период операциях (трансакциях), а запись очередного блока придется ждать еще десять минут и не факт, что ваш перевод и туда попадет.
Так какие же транзакции будут включены в очередной блок, а какие нет? Кто это решает? Все очень просто, решает это ваша скупость или, наоборот, щедрость. Их отранжируют по степени комиссии, которую назначил человек делающий перевод.
Размер комиссии, по сути, произвольный и на ранней стадии существования сети биткоина платежи могли проходить и вовсе без нее. Но сейчас платеж без комиссии останется неподтвержденным, ибо слишком много людей пользуются сетью, а возможности ее ограничены.
Соответственно, если вы назначите при переводе биткоинов слишком маленькую комиссию, а сеть биткоина в это время будет сильно загружена, то вам подтверждения транзакции придется ждать очень долго (пока не спадет нагрузка на сеть), а при совсем низкой комиссии подтверждения транзакции можно и вовсе не дождаться.
Что же делать? Ну, я советую вам воспользоваться сервисом мониторинга состояния сети биткоин, который называет Blockchain.info и о котором я уже довольно подробно писал. В нем есть такая вот страница, где отображается график текущей нагрузки на сеть биткоина.
Например, в декабре 2017 года нагрузка на сеть была столь высокой, что комиссия за одну транзакцию (чтобы она прошла за обозримое количество времени) составляла несколько десятков долларов (до семидесяти, по-моему, доходило). Собственно, можете сами открутить приведенный график назад и оценить загруженность на тот момент.
Как узнать оптимальную комиссию для транзакции в сети биткоин
Если самим прикидывать не хочется, то воспользуйтесь этим сайтом, где можно увидеть рекомендуемую комиссию на текущий момент в сатошах (сколько сатоши в биткоине читайте по ссылке):
Учтите, что комиссия за одну транзакцию не зависит от суммы, которую вы отправляете (это не процент, а фиксированная сумма). Она зависит только от веса транзакции в байтах и загруженности сети на данный момент. Обычно размер одной транзакции не превышает один килобайт (чаще даже намного меньше), т.е. 1000 байт.
Если посмотреть на приведенный скриншот, то вам следует ставить комиссию в 50000 сатоши или 0.0005 BTC (BTC — это аббревиатура биткоина). По текущему курсу это менее пяти долларов. Т.е. сейчас комиссию можно ставить существенно ниже предновогодних уровней (порядка нескольких долларов или даже ниже) и ваши транзакции будут без проблем проходить. Все еще так же зависит от времени суток, ибо бывают пики и спады назгрузки, что тоже можно использовать для экономии на переводах биткоинов.
Если время перевода вам не важно, но вы хотите максимально сэкономить на комиссии, то зайдите на эту страницу сайта Blockchain, и если там увидите, что число неподтвержденных транзакций меньше десяти тысяч, то можете смело полученное выше число делить еще на десять. ИМХО.
Где можно проверить и отследить биткоин-транзакции
Есть специальные сервисы (сайты), которые позволяют в удобной форме посмотреть всю информацию по интересующей вас транзакции. Как вы понимаете, система биткоина устроена так, что вся ее подноготная доступна всем желающим. Другое дело, что для работы с этой информацией нужен софт или специализированные онлайн-сервисы, о коих мы сегодня и поговорим.
Чаще всего для этой цели используют следующие сайты:
Там прямо на главной странице вы найдете окно поиска, куда можно вставить адрес того кошелька, куда вы осуществляли перевод (или адрес своего кошелька, куда вам должен был перевод прийти). В принципе, сайт Blockchain переведен на русский язык и каких-либо проблем с его использованием быть не должно.
Комментарии и отзывы (2)
Значение слова транзакция я всегда воспринимал довольно смутно, так как никогда не имел дело ни с какими банковскими операциями. А то, что это подразумевается какая-то сделка, примерно представлял. Никогда не думал, что это слово еще может применяться к внесению изменений в базу данных. А тема биткоинов для меня еще более малопонятна, но расписано все-равно интересно.
Если что-то с банковской транзакцией пошло не так, то можно связаться с банком и разрулить ситуацию, а если что-то не так в блокчейне, тогда кому звонить?
Ваш комментарий или отзыв