2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу 1, 2  След.
 
 Блокчейн
Сообщение10.10.2017, 03:00 
Аватара пользователя
Не знал куда задать вопросы, которые у меня возникли в ходе изучения, решил сюда закинуть, вдруг кто-нибудь в курсе технических подробностей:
1. Во-первых вопрос про архитектуру блокчейна, как распределенной БД. Насколько я понял, каждый компьютер, находящийся в сетке блокчейна хранит копию нашей БД. Когда А решил перевести деньги B, то все компьютеры должны свериться - сверить свои БД. У меня вопрос, а каким образом такая огромная сеть делает это так быстро? БД же огромная, два то компьютера будут долго сравнивать, а тут столько...
2. БД наверняка занимает много места на Жестком диске, неужели пользователи позволяют сжирать много ГБ на своем диске?
3. Опять же, если А решил перевести деньги B, то все компьютеры в сети должны свериться - чтобы подтвердить перевод. Но если какой-то компьютер выключен или вовсе сломался, то что тогда? Перевод просто не пройдет?
4. Про Хэш-функцию. При переводе компьютеры сравнивают хэши, если равны, то ок. Но а если возникнет коллизия, то как решают этот вопрос? Таким же образом можно себе присвоить миллионы биткоинов.. От этого как защищаются?

 
 
 
 Re: Блокчейн
Сообщение10.10.2017, 03:59 
Вообще говоря все ответы есть всего в двух статьях вики: Блокчейн и Биткойн. Предлагаю ознакомиться с ними и если вопросы останутся, то вернуться.

PS. Могу сразу успокоить, чтобы "присвоить миллионы биткоинов" надо владеть вычислительными мощностями не менее половины всей сети. Уже при небольшом распространении сети это нереально.

 
 
 
 Re: Блокчейн
Сообщение10.10.2017, 05:41 
Такая задача решается с помощю блокчейна.

Блокчейн в принципе не нужен :mrgreen: , есть идеи интереснее
Adaptive group consensus in uncertain networked Euler–Lagrange systems under directed topology

 
 
 
 Re: Блокчейн
Сообщение10.10.2017, 09:51 
1. Надо просто проверить подпись, потом вычесть сумму в кошельке A и добавить сумму в кошельке Б. Откуда сложность? База хранит текущее состояние кошельков и бэклог операций.
2. Есть варианты, когда храниться усечённая информация — текущий слепок базы плюс кусок бэклога. Ну а так да, надо хранить всё.
3. Надо 51%
4. Если два разный майнера нашли новый блокчейн? Будут жить оба. Всё решает длина цепочки. Так что к какому блоку найдут следующий блокчейн быстрее, того и деньги.

 
 
 
 Re: Блокчейн
Сообщение11.10.2017, 15:32 
Аватара пользователя
mustitz
1) А, то есть они сверяют не всю БД, а только транзакции, которые связаны с А и B? Если так, то согласен
3) 51% - как простое большинство? То есть как критерий принятия решения? А если в сети 100 компьютеров, при этом 99% подтвердили транзакцию, а 1% не подтвердил (он был включен, просто хеш не совпал), то тогда отклоняется транзакция?

 
 
 
 Re: Блокчейн
Сообщение11.10.2017, 16:22 
MestnyBomzh в сообщении #1254796 писал(а):
51% - как простое большинство? То есть как критерий принятия решения? А если в сети 100 компьютеров, при этом 99% подтвердили транзакцию, а 1% не подтвердил (он был включен, просто хеш не совпал), то тогда отклоняется транзакция?
Проверяют транзакции не "большинство", а майнеры, тяжко намайнивая свой очередной блок. Если в блоке будут противоречия, то другие майнеры этот блок отвергнут, и будут пытаться продолжить старый блок. Неправильный блок не выживет. Если большинство других майнеров решат, что новый блок правильный, они переключаются на продолжение майнинга нового блока, и эта цепочка продолжается с зацементированным в ней промежуточным блоком.

 
 
 
 Re: Блокчейн
Сообщение11.10.2017, 17:04 
MestnyBomzh
Вики писал(а):
Транзакции, вошедшие только в отвергнутую ветку (в том числе по выплате вознаграждения), теряют статус подтверждённых. Если это транзакция по передаче биткойнов, то она будет поставлена в очередь и затем включена в очередной блок.
Вики писал(а):
Распределенная база данных Blockchain формируется как непрерывно растущая цепочка блоков с записями обо всех транзакциях. Копии базы или её части одновременно хранятся на множестве компьютеров и синхронизируются согласно формальным правилам построения цепочки блоков. Информация в блоках не шифрована и доступна в открытом виде, но отсутствие изменений удостоверяется криптографически через хэш-цепочки (элемент цифровой подписи).
База публично хранит в незашифрованном виде информацию о всех транзакциях, подписываемых с помощью асимметричного шифрования. Для предотвращения многократной траты одной и той же суммы используются метки времени[8], реализованные путём разбиения БД на цепочку специальных блоков, каждый из которых, в числе прочего, содержит в себе хеш предыдущего блока и свой порядковый номер. Каждый новый блок осуществляет подтверждение транзакций, информацию о которых содержит и дополнительное подтверждение транзакций во всех предыдущих блоках цепочки. Изменять информацию в блоке, который уже находится в цепи, не практично, так как в таком случае пришлось бы редактировать информацию во всех последующих блоках. Благодаря этому успешная double-spending атака (повторная трата ранее израсходованных средств) на практике крайне маловероятна[9].
Вики писал(а):
Если контролировать более 50 % суммарной вычислительной мощности сети, то существует теоретическая возможность при любом пороге подтверждений одни и те же биткойны передать два раза разным получателям[14] — одна из транзакций будет публичной и подтверждаться в общем порядке, а вторая не будет афишироваться, её подтверждения будут происходить блоками скрытой параллельной ветви. Лишь через некоторое время сеть получит сведения о второй транзакции, она станет подтверждённой, а первая утратит подтверждения и будет игнорироваться. В результате не произойдёт удвоения биткойнов[15], но изменится их текущий владелец, при этом первый получатель утратит биткойны без каких-либо компенсаций.
Открытость цепочки блоков позволяет внести в произвольный блок изменения. Но тогда потребуется пересчёт хеша не только изменённого блока, но и всех последующих. Фактически, для такой операции потребуется мощность не меньше той, которая была использована для создания изменённого и последующих блоков (то есть всей текущей мощности), что делает такую возможность крайне маловероятной.

Так что если 51% компьютеров в сети подтвердили блок, то подтверждёнными будут и все предыдущие блоки с переводами денег. И деньги уйдут. Осталось лишь добыть >50% мощности сети и вуаля.

 
 
 
 Posted automatically
Сообщение11.10.2017, 18:43 
 i  Тема перемещена из форума «Помогите решить / разобраться (М)» в форум «Computer Science»

 
 
 
 Re: Блокчейн
Сообщение24.05.2018, 21:00 
Аватара пользователя
Dmitriy40 в сообщении #1254849 писал(а):
Так что если 51% компьютеров в сети подтвердили блок, то подтверждёнными будут и все предыдущие блоки с переводами денег. И деньги уйдут. Осталось лишь добыть >50% мощности сети и вуаля.


Сделано:

http://www.opennet.ru/opennews/art.shtml?num=48653

 
 
 
 Re: Блокчейн
Сообщение24.05.2018, 21:10 
Зашибись.
Отсюда мораль: нефик пользоваться недостаточно крупными валютами; и стоит защищать свои фермы от взлома.

 
 
 
 Re: Блокчейн
Сообщение25.05.2018, 16:51 
Аватара пользователя
Dan B-Yallay в сообщении #1314714 писал(а):

А можно для человека довольно далекого от этой всей темы пояснить, к чему в конечном итоге приведет эта атака. Понятно, что тот, кто атаку провел что-то выигрывает, а кто, что и как теряет?

 
 
 
 Re: Блокчейн
Сообщение25.05.2018, 16:52 
photon в сообщении #1314890 писал(а):
что и как теряет?

Деньги, которые он попытался перевести другому.

 
 
 
 Re: Блокчейн
Сообщение25.05.2018, 17:27 
photon в сообщении #1314890 писал(а):
А можно для человека довольно далекого от этой всей темы пояснить, к чему в конечном итоге приведет эта атака. Понятно, что тот, кто атаку провел что-то выигрывает, а кто, что и как теряет?
Смысл атаки в том, что атакующий за одни и те же деньги покупает две услуги. Атакующий делает платеж, получает товар. В системе фиксируется транзакция, продавец имеет на счету сколько-то денег. Потом атакующий генерирует альтернативную транзакцию, в этой "альтернативной вселенной" продавец никаких денег не получал, на счету у него ноль. А товар он уже отдал.
В данном случае альтернативной транзакцией стал перевод денег самому себе.

 
 
 
 Re: Блокчейн
Сообщение25.05.2018, 17:31 
Аватара пользователя
photon
Честно говоря, я не специалист и имею весьма поверхностное понимание. Поэтому мне тоже было бы интересно обстоятельное объяснение. Я только лишь понял из анонса по ссылке, что криптоденьги теряет либо покупатель какого-то товара, либо продавец. Злодей перехватил транзакцию и вписал в получатели денег себя, а не продавца товара.

Если продавец успел выслать товар, то тогда в пролёте он. А если обнаружил откат или подлог, тогда пострадает покупатель, у которого деньги сняты.

-- Пт май 25, 2018 08:33:24 --

rockclimber в сообщении #1314897 писал(а):
В данном случае альтернативной транзакцией стал перевод денег самому себе.

А это даже ещё интересней.

 
 
 
 Re: Блокчейн
Сообщение25.05.2018, 17:45 
Аватара пользователя
То есть, потеряет какое-то конкретное лицо (покупатель/продавец чего-то) - участник перехваченной транзакции, а остальные майнеры/криптовалютовладельцы и др. ничего не теряют даже косвенно? Или, вероятно, все-таки теряют из-за последующего снижения курса этой валюты(и будет ли оно это снижение)?

 
 
 [ Сообщений: 17 ]  На страницу 1, 2  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group