Bitcoin это не то, что вы можете узнать в течение нескольких часов. Практически все средства массовой информации имеет "объяснил" Bitcoin не так, и этот пост направлен на обеспечение некоторой степени технического чтения, как Bitcoin работ под капотом. Итак, давайте начнем!
Сделка
В своей основе, Bitcoin о сделках. Сделки просто отправить биткойны из входные в выходы. Какие входы и выходы? Скажем, у меня есть 5 биткойны. Я посылаю 4 BTC по адресу, 1GLadosEkeAsLReqS3yQ51E1R3wVtbJCDF.
Существует один вход. Это идентификатор транзакции моего 5 BTC вместе с подписью. Подпись, как ключевая фраза - только человек, который знает, Секретный ключ (Пароль, сгенерированы и сохранены автоматически в кошельке) на адрес может потратить. Это работает, потому что программное обеспечение Bitcoin проверяет, что подпись действительна до принятия сделки, в противном случае он идет прямо в / Dev / нуль.
Там же два выхода. А 4 Выход BTC к 1GLados [..] адрес ввода отправлен. Второй выход 0,9995 BTC, по другому адресу я только недавно сгенерированного - адрес изменения. Входы могут быть только полностью израсходованы, так что если я хочу провести 4 BTC, мне придется потратить свою полную 5 BTC и отправить остальное обратно ко мне.
Как насчет 0.0005 BTC? Разница между входным и выходным суммами есть плата за сделку. В этом случае 0,0005 BTC идет на шахтер, который чеканил этот блок.
Идентификатор транзакции? Это хэш всей транзакции. Хэш функция криптографии один путь - они эффективно случайная функция отображения. Две различные сделки никогда не будет иметь тот же идентификатор транзакции - на самом деле.
Какие входы? Они бывшие выходы! Если я хочу провести всю 0.9995 BTC я оставил, то мой вклад будет ИД транзакции моей первой транзакции, плюс выход ID 2. (В этом случае, ID 1 мой 4 BTC в 1Glados, ID 2 мое изменение).
Таким образом, вход направляется на выход, который затем позже упоминается как вход, если вы хотите потратить монеты.
Блоки
Блоки просто список операций. Шахтеры запускать программы, которая пытается создавать блоки. Они слушают сети, поставить новые сделки, которые они слышали о, и если они имеют плату они довольны, включить его в блок они работают. Теперь, чтобы успешно заминировать блок, хэш (помните, что хэш в основном случайны и непредсказуемы) блок должен начинаться с числом нулей. Как это: 0000000000efc2r [..]. Так шахтер просто повторяемость пытается сделать блок с хэш, который начинается с большим количеством нулей.
Сколько нулей? Это определяется трудность. Трудность определяется автоматически, и это, как быстро последние 2016 блоков, где добывается. Трудность убеждается, что есть в среднем, блок каждые 10 минут - независимо от того, сколько людей добывают по причинам стабильности. Как хеширования / добыча для блоков просто везение, иногда может быть четыре блока в минуту, иногда не может быть никаких блоков в течение часа.
Когда транзакция включается в блок, он получает 1 подтверждений. Шахтер также получает блок субсидию наградить их (и распределить оставшиеся биткойны), в настоящее время 25 BTC, который половинки каждые четыре года, пока не доберется до нуля. После того, как блок-чеканятся и объявил сеть, шахтеры будут теперь пытаться строить блоки от этого блока - обращаясь к предыдущему блоку. Это, как работает blockchain.
[Блок 22730] -> [Блок 22731] -> [Блок 22732] [ORPHANED БЛОК]
...............\ -> [Блок 22731] -> [Блок 22732] -> [Блок 22733] [Длинная цепочка]
А? Скажем, последний блок генерируемого 22730. Мы знаем это, не потому, что он имеет идентификатор, а потому, что он относится к предыдущему блоку (22729), который относится к предыдущему блоку, который относится к предыдущему блоку ... и если вы идете все пути назад - вы считаете 22731 блоков. Вот как блоки присваиваются номера.
Теперь, последний блок генерируемого 22730. шахтер генерирует 22731, с BTC субсидии 25 собирается на них и сделки они слышали. Еще один шахтер также генерирует блок со ссылкой на 22730, как это родитель, с их собственным адресом субсидий и собственных сделок они знают. Так что теперь у нас есть два блока на высоте 22731. blockchain теперь имеет вилку.
Некоторые клиенты слышали о первом блоке, в то время как некоторые клиенты слышали о втором блоке. Теперь, часть шахтеров строит на первый блок 22731, в то время как другая часть строит на (со ссылкой на) второй блок 22731. Транзакция, включенной в «первом 22731» не входят в другом блоке. Некоторые клиенты теперь видят, что сделка с 1 подтверждением, в то время как другие видят его как неподтвержденные (0 подтверждений).
Вскоре шахтер генерируется блок 22732 с его родителем является первым блоком! Сделка, включенная в этом раннем блоке теперь имеет 2 подтверждений некоторых пользователей и услуги. Теперь, так как это blockchain длиннее (22732 > 22731), клиенты теперь будут обновлять свой последний блок 22732. Однако - как раз тогда, другой шахтер был какой-то удачи и сгенерированных блоков 22732 (со ссылкой на второй блок) и 22733 в менее чем за секунду. Клиенты видеть, что 22733 > 22732, и перемещается во второе blockchain. То, что сейчас становится главным blockchain, с первым сиротства.
Так что же происходит? Эта сделка включены в один блок, но не другой? 2 подтверждений до 0 (не подтверждено). Предположим теперь, человек посылая TX вредоносным и получил двойную расходы (потратить те же входы, к другому выходу контролируемого атакующим) во второй блок, который в настоящее время является основной цепи. Услуги или пользователей, которые приняли "2 подтверждения" сделка .. просто потеряли эти монеты. Это опасность с принятием сделок с несколькими подтверждениями.
Вообще говоря, это безопасно принимать TXes по крайней мере 6 подтверждений. Конечно, если вы знаете кого-то лично или, если это от авторитетного сервиса, то вы можете принять его, даже если это не подтверждено.