Здравствуйте, Khimik, Вы писали:
K>Здравствуйте, samius, Вы писали:
S>>Собственно, шифрование тут для того и есть, что бы отличить владельца кошелька от того, кто им не владеет. А блокчейн к шифрованию имеет мало отношения. Это просто цепочка блоков, связанных хэшами, так что, изменить блок из цепочки не получится таким образом, что бы это не было заметно.
K>Я давно рефлексирую по поводу следующей возможности. Чтобы получить доступ к вашему биткоин кошельку, нужен файл wallet.dat, и если кто-нибудь его украдёт (например через какой-нибудь teamviewer), он поставит клиент на своём компьютере и переведёт куда-то ваши биткоины. Когда вы подключаете свой клиент с файлом wallet.dat в сеть, информация из этого файла посылается в сеть наружу; и если хакер это перехватит, то он аналогично получит доступ к wallet.dat и к вашим деньгам. В реальности такой сценарий осуществим только с квантовым дешифрованием?
Нет, зачем же? Имея квантовый взломщик, можно просто выбирать в блокчейне кошелек пожирнее, не разбираясь, чей он, начать можно с адреса 00000000..00. Так, конечно, не следует делать, т.к. это обвалит биткойн. Но ничто не мешает начать с каких-нибудь не самых жирных кошельков.
K>>>А майнеры как-то помогают алгоритмам шифрования. S>>Нет, вообще не связано с шифрованием. Майнеры решают задачу консенсуса, который нацелен на то, что бы предотвратить атаки перезаписи блоков. Истинной считается та цепочка блоков, которая длинее, поэтому есть техническая возможность дважды потратить деньги. Что бы это предотвратить, блок становится подтвержденным после решения очень сложной, но абсолютно бесполезной математической задачи. Настолько сложной, что бы сделать ее экономически нецелесообразной и практически недостижимой без владения 51% вычислительной мощности сети.
K>Я скриплю мозгами и пытаюсь понять как этот выглядит, пока не очень получается. Предположим, есть 1000 компьютеров с клиентами, со схемой которую я описал — не блокчейн, а просто полный список всех клиентов/кошельков на каждом клиенте/кошельке. В идеале они все постоянно подключены в интернет, и когда пара клиентов проводят транзакцию, одновременно все клиенты обновляют базу. Теперь предположим, что в сети только два клиента; от A к B перешли монеты, дальше подключается C, и как дальше убедить C, что у A ещё ничего не потрачено? C же считывает базу от A и B, как только войдёт в сеть, и узнаёт что транзакция A->B осуществлена.
Одновременно все клиенты — уже звучит страшно. Обновляют базу. А где база в децентрализованном хранилище? У кого надо спрашивать-то, тем более одновременно?
В том и дело, что блоки могут дописывать разные клиенты. Тогда как разобраться, чей блок правильный, а чей — нет? В классическом блокчейне принято, что правильнее та цепочка блоков, которая длинее. Но тогда надо ограничить скорость создания блоков, что бы клиенты не могли рождать блоки пачками лишь для того, что бы показать, что их цепочка длинее, значит, правильнее. Вот для этого и используется proof of work.