Bitcoin Forum
June 29, 2024, 04:38:25 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 »  All
  Print  
Author Topic: Проверка подписи, а не хешей блоков  (Read 380 times)
lapitsky (OP)
Member
**
Offline Offline

Activity: 202
Merit: 27

Atom foundation


View Profile
May 09, 2018, 04:59:30 PM
 #1

Всем привет!
Какой смысл соединять блоки предыдущим хешом, когда у нас в каждой траназкции есть подпись подтверждающая эту транзакцию?
Можно же отдельно записывать транзакции с timestamp и потом проверять все транзакции на валидность просто проверкой подписи каждого сообщения. Где здесь я ошибаюсь?

⚡⚡⚡
Atom - пишу свою крипту, присоединяйся в ополчение - https://bitcointalk.org/index.php?topic=3428149.0
⚡⚡⚡
Vtools
Full Member
***
Offline Offline

Activity: 411
Merit: 135


View Profile WWW
May 09, 2018, 06:23:49 PM
 #2

Всем привет!
Какой смысл соединять блоки предыдущим хешом, когда у нас в каждой траназкции есть подпись подтверждающая эту транзакцию?
Можно же отдельно записывать транзакции с timestamp и потом проверять все транзакции на валидность просто проверкой подписи каждого сообщения. Где здесь я ошибаюсь?

timestamp

Restart of the TERA project in 2022
Web ܀ ANN ܀ Discord ܀ Telegram ܀ Twitter
A-Bolt
Legendary
*
Offline Offline

Activity: 2318
Merit: 2333


View Profile
May 09, 2018, 06:41:01 PM
 #3

Подпись транзакции удостоверяет право владельца приватного ключа на трату средств в рамках этой транзакции.
Криптографическая связь блоков обеспечивает целостность базы данных транзакций, защиту от удаления/добавления транзакций задним числом.
Vladie
Newbie
*
Offline Offline

Activity: 42
Merit: 0


View Profile
May 09, 2018, 07:39:18 PM
 #4

Всем привет!
Какой смысл соединять блоки предыдущим хешом, когда у нас в каждой траназкции есть подпись подтверждающая эту транзакцию?
Можно же отдельно записывать транзакции с timestamp и потом проверять все транзакции на валидность просто проверкой подписи каждого сообщения. Где здесь я ошибаюсь?

timestamp

Таймспемп не всегда идёт
Vladie
Newbie
*
Offline Offline

Activity: 42
Merit: 0


View Profile
May 09, 2018, 07:46:48 PM
 #5

Подпись транзакции удостоверяет право владельца приватного ключа на трату средств в рамках этой транзакции.
Криптографическая связь блоков обеспечивает целостность базы данных транзакций, защиту от удаления/добавления транзакций задним числом.

Сколькими ключами можно пользоваться?
lapitsky (OP)
Member
**
Offline Offline

Activity: 202
Merit: 27

Atom foundation


View Profile
May 09, 2018, 09:04:23 PM
 #6

Всем привет!
Какой смысл соединять блоки предыдущим хешом, когда у нас в каждой траназкции есть подпись подтверждающая эту транзакцию?
Можно же отдельно записывать транзакции с timestamp и потом проверять все транзакции на валидность просто проверкой подписи каждого сообщения. Где здесь я ошибаюсь?

timestamp

нет, поскольку таймстамп может быть только временем для статистики, а не способом сортировки транзакций.

Подпись транзакции удостоверяет право владельца приватного ключа на трату средств в рамках этой транзакции.
Криптографическая связь блоков обеспечивает целостность базы данных транзакций, защиту от удаления/добавления транзакций задним числом.

пока 51% нод хранит правильные данные (проверенные), это не проблема.

Сколькими ключами можно пользоваться?

в каком смысле? Huh

⚡⚡⚡
Atom - пишу свою крипту, присоединяйся в ополчение - https://bitcointalk.org/index.php?topic=3428149.0
⚡⚡⚡
Vtools
Full Member
***
Offline Offline

Activity: 411
Merit: 135


View Profile WWW
May 09, 2018, 10:12:40 PM
 #7

Всем привет!
Какой смысл соединять блоки предыдущим хешом, когда у нас в каждой траназкции есть подпись подтверждающая эту транзакцию?
Можно же отдельно записывать транзакции с timestamp и потом проверять все транзакции на валидность просто проверкой подписи каждого сообщения. Где здесь я ошибаюсь?

timestamp

нет, поскольку таймстамп может быть только временем для статистики, а не способом сортировки транзакций.


Это было место с ошибкой в рассуждении. Сейчас ты правильно написал в чем именно была эта ошибка...

Restart of the TERA project in 2022
Web ܀ ANN ܀ Discord ܀ Telegram ܀ Twitter
A-Bolt
Legendary
*
Offline Offline

Activity: 2318
Merit: 2333


View Profile
May 09, 2018, 10:14:19 PM
 #8

пока 51% нод хранит правильные данные (проверенные), это не проблема.

Вася создал транзакцию 1, в которой 10 монет отправляются Пете, Васина нода отправила эту транзакцию на ноду A.
Вася создал транзакцию 2, в которой эти же 10 монет отправляются Толику, Васина  нода отправила эту транзакцию на ноду B.

Обе транзакции валидны, так как подписаны приватным ключом Васи, но тратят одни и те же 10 монет, что недопустимо.

Нода A пока ещё не знает о существовании транзакции на ноде B и наоборот. Остальные ноды пока вообще не знают о существовании этих двух транзакций.

Нода C получает обе этих транзакции: одну от ноды A, другую от ноды B. И теперь ноде C нужно принять решение о том, какая из этих транзакций правильная. Спросить не у кого. 51% нод не в курсе по поводу этих транзакций. Что делать ноде C?  
DevilOper
Member
**
Offline Offline

Activity: 280
Merit: 26


View Profile
May 09, 2018, 11:05:43 PM
 #9

пока 51% нод хранит правильные данные (проверенные), это не проблема.

Вася создал транзакцию 1, в которой 10 монет отправляются Пете, Васина нода отправила эту транзакцию на ноду A.
Вася создал транзакцию 2, в которой эти же 10 монет отправляются Толику, Васина  нода отправила эту транзакцию на ноду B.

Обе транзакции валидны, так как подписаны приватным ключом Васи, но тратят одни и те же 10 монет, что недопустимо.

Нода A пока ещё не знает о существовании транзакции на ноде B и наоборот. Остальные ноды пока вообще не знают о существовании этих двух транзакций.

Нода C получает обе этих транзакции: одну от ноды A, другую от ноды B. И теперь ноде C нужно принять решение о том, какая из этих транзакций правильная. Спросить не у кого. 51% нод не в курсе по поводу этих транзакций. Что делать ноде C?  

И что же делает биткойновая нода в подобном случае?
lapitsky (OP)
Member
**
Offline Offline

Activity: 202
Merit: 27

Atom foundation


View Profile
May 10, 2018, 12:11:24 AM
 #10

пока 51% нод хранит правильные данные (проверенные), это не проблема.

Вася создал транзакцию 1, в которой 10 монет отправляются Пете, Васина нода отправила эту транзакцию на ноду A.
Вася создал транзакцию 2, в которой эти же 10 монет отправляются Толику, Васина  нода отправила эту транзакцию на ноду B.

Обе транзакции валидны, так как подписаны приватным ключом Васи, но тратят одни и те же 10 монет, что недопустимо.

Нода A пока ещё не знает о существовании транзакции на ноде B и наоборот. Остальные ноды пока вообще не знают о существовании этих двух транзакций.

Нода C получает обе этих транзакции: одну от ноды A, другую от ноды B. И теперь ноде C нужно принять решение о том, какая из этих транзакций правильная. Спросить не у кого. 51% нод не в курсе по поводу этих транзакций. Что делать ноде C?  
Ты описал проблему двойной траты. А причем тут блокчейн? Эту проблему решает консенсус, например POW, а не блокчейн.
После того, как Вася отправил Пете, Васина нода должна достингуть консенсуса с остальными нодами. И тогда вася обломается с double spending

нет, поскольку таймстамп может быть только временем для статистики, а не способом сортировки транзакций.

Это было место с ошибкой в рассуждении. Сейчас ты правильно написал в чем именно была эта ошибка...

хорошо, тогда просто будем каждый следующий блок транзакций называть i++, разница не поменялась и пока блокчейн не нужен.


⚡⚡⚡
Atom - пишу свою крипту, присоединяйся в ополчение - https://bitcointalk.org/index.php?topic=3428149.0
⚡⚡⚡
A-Bolt
Legendary
*
Offline Offline

Activity: 2318
Merit: 2333


View Profile
May 10, 2018, 08:53:30 AM
 #11

Ты описал проблему двойной траты. А причем тут блокчейн? Эту проблему решает консенсус, например POW, а не блокчейн.
После того, как Вася отправил Пете, Васина нода должна достингуть консенсуса с остальными нодами. И тогда вася обломается с double spending

Консенсус в криптовалютах - это набор правил, на соответствие которым каждая нода проверяет блоки и отдельные транзакции. PoW в криптовалютах нужен для создания защищённого от перезаписи блокчейна. Защищённый от перезаписи блокчейн нужен для защиты от двойной траты.  

Зачем нужен PoW без блокчейна? Вы произнесли слово консенсус, но не объяснили, как он у вас реализован, что же всё-таки делать ноде С в описанной выше ситуации, чтобы не допустить двойную трату.
 
хорошо, тогда просто будем каждый следующий блок транзакций называть i++, разница не поменялась и пока блокчейн не нужен.

Ага. Цепочку блоков вы уже придумали, правда, блоки у вас пока ещё не связаны друг с другом криптографически. В реальных криптовалютных сетях блоки распространяются не мгновенно. И может случиться так, что какое-то время в сети могут существовать две цепочки, одну из которых придётся впоследствии отбросить.

То есть, майнящая нода A создаёт свою цепочку блоков с номерами 100, 101, 102, и майнящая нода B создаёт свою цепочку 100, 101, 102. При этом блок 100 одинаковый для обеих цепочек, а блоки 101 и 102 - разные.

Нода C, принявшая блоки 101 и 102 из этих разных цепочек должна как-то понять, какие блоки к какой цепочке относятся, а номера-то у них одинаковые. Как же без криптографической связи блоков понять где какая цепочка?

Более подробно эта ситуация описана здесь в главе Форки блокчейна.
DevilOper
Member
**
Offline Offline

Activity: 280
Merit: 26


View Profile
May 10, 2018, 12:07:04 PM
 #12

Очевидно, поциент сам не знает ответа на свой вопрос "ноде C нужно принять решение о том, какая из этих транзакций правильная. Спросить не у кого. 51% нод не в курсе по поводу этих транзакций." применительно к блохчейну, но продолжает упорно твердить: блохчейн, потому что блохчейн, блохченом, блохчейну!!11
Консенсус в криптовалютах - это набор правил, на соответствие которым каждая нода проверяет блоки и отдельные транзакции. PoW в криптовалютах нужен для создания защищённого от перезаписи блокчейна.
Зачем нужна ещё какая-то защита от перезаписи, если и без того каждая нода проверяет блоки и отдельные транзакции ... на соответствие правилам? Делаем правило "нельзя перезаписывать транзакции". Ну, если верить поциенту.
Quote
Защищённый от перезаписи блокчейн нужен для защиты от двойной траты.
И при этом - блоки постоянно перезаписываются (орфанятся), ага.
lapitsky (OP)
Member
**
Offline Offline

Activity: 202
Merit: 27

Atom foundation


View Profile
May 10, 2018, 11:24:37 PM
Last edit: May 11, 2018, 01:06:52 AM by lapitsky
 #13


Консенсус в криптовалютах - это набор правил, на соответствие которым каждая нода проверяет блоки и отдельные транзакции. PoW в криптовалютах нужен для создания защищённого от перезаписи блокчейна. Защищённый от перезаписи блокчейн нужен для защиты от двойной траты.  

POW это алгоритм консенсуса, нужен он для того, чтобы нода поняла, что именно этот блок подходит, а не какой-то другой, плюс дает возможность всем выкачать данные за те 10 минут, пока ищется нужный хеш. Да алгоритм защищает от подделки блока. А что мешает проверят не pow, а просто проверить подписи и принять блок? (другой вопрос, что блокчейн, пакует конкретные транзакции, но можно же выкачивать просто транзакции и проверять сколько влезет)

Зачем нужен PoW без блокчейна? Вы произнесли слово консенсус, но не объяснили, как он у вас реализован, что же всё-таки делать ноде С в описанной выше ситуации, чтобы не допустить двойную трату.

нода С ничего не может сделать, потому что в описанной ситуации нет алгоритма консенсуса. если вы намекаете на блокчейн, тогда его надо еще скачать ноде С с ноды А и с Ноды Б, а это уже консенсус, так можно тогда выкачивать не блоки, а просто транзакции и проверять подписи.


хорошо, тогда просто будем каждый следующий блок транзакций называть i++, разница не поменялась и пока блокчейн не нужен.

Ага. Цепочку блоков вы уже придумали, правда, блоки у вас пока ещё не связаны друг с другом криптографически. В реальных криптовалютных сетях блоки распространяются не мгновенно. И может случиться так, что какое-то время в сети могут существовать две цепочки, одну из которых придётся впоследствии отбросить.

То есть, майнящая нода A создаёт свою цепочку блоков с номерами 100, 101, 102, и майнящая нода B создаёт свою цепочку 100, 101, 102. При этом блок 100 одинаковый для обеих цепочек, а блоки 101 и 102 - разные.

Нода C, принявшая блоки 101 и 102 из этих разных цепочек должна как-то понять, какие блоки к какой цепочке относятся, а номера-то у них одинаковые. Как же без криптографической связи блоков понять где какая цепочка?

Более подробно эта ситуация описана здесь в главе Форки блокчейна.

Да, вы описали ситуацию rollback в распределенной системе, в которой определенный алгоритм определят при каких условиях будет откат цепочки или записи в журнал.
Я вам про другое говорю - есть транзакция, она одна, в ней подпись. ее выкачивает вся сеть. что отбрасывать? проверили подпись, значит она валидная. rollback не нужен.


⚡⚡⚡
Atom - пишу свою крипту, присоединяйся в ополчение - https://bitcointalk.org/index.php?topic=3428149.0
⚡⚡⚡
lapitsky (OP)
Member
**
Offline Offline

Activity: 202
Merit: 27

Atom foundation


View Profile
May 11, 2018, 01:34:47 AM
Last edit: May 11, 2018, 01:55:46 AM by lapitsky
 #14

Ну, если верить поциенту.
поциенты в больницы, а у нас тут дискуссия и как мне кажется довольно интересная

⚡⚡⚡
Atom - пишу свою крипту, присоединяйся в ополчение - https://bitcointalk.org/index.php?topic=3428149.0
⚡⚡⚡
A-Bolt
Legendary
*
Offline Offline

Activity: 2318
Merit: 2333


View Profile
May 11, 2018, 08:53:32 AM
 #15

Я вам про другое говорю - есть транзакция, она одна, в ней подпись. ее выкачивает вся сеть. что отбрасывать? проверили подпись, значит она валидная. rollback не нужен.

Я не понимаю, как в вашей сети защищаться от двух таких валидных транзакций, тратящих один и тот же выход.
lapitsky (OP)
Member
**
Offline Offline

Activity: 202
Merit: 27

Atom foundation


View Profile
May 11, 2018, 06:26:07 PM
 #16

Ну, если верить поциенту.
поциенты в больницы, а у нас тут дискуссия и как мне кажется довольно интересная

Когда поциент пейсатель слов руками задаёт вопросы, на которые сам же не в состоянии ответить - то уж не знаю, какой интерес в подобной дискуссии, кроме медицинского.

А вы смешной

⚡⚡⚡
Atom - пишу свою крипту, присоединяйся в ополчение - https://bitcointalk.org/index.php?topic=3428149.0
⚡⚡⚡
lapitsky (OP)
Member
**
Offline Offline

Activity: 202
Merit: 27

Atom foundation


View Profile
May 11, 2018, 06:49:46 PM
 #17

Я вам про другое говорю - есть транзакция, она одна, в ней подпись. ее выкачивает вся сеть. что отбрасывать? проверили подпись, значит она валидная. rollback не нужен.

Я не понимаю, как в вашей сети защищаться от двух таких валидных транзакций, тратящих один и тот же выход.

например тем же POW. пакуем транзакции в блок. майнер проделывает работу с nonce и предлагает системе решение. все. блок все выкачивают, дают ему следующий номер.

⚡⚡⚡
Atom - пишу свою крипту, присоединяйся в ополчение - https://bitcointalk.org/index.php?topic=3428149.0
⚡⚡⚡
A-Bolt
Legendary
*
Offline Offline

Activity: 2318
Merit: 2333


View Profile
May 11, 2018, 08:14:11 PM
 #18

например тем же POW. пакуем транзакции в блок. майнер проделывает работу с nonce и предлагает системе решение. все. блок все выкачивают, дают ему следующий номер.

И тут я понимаю, что мы ходим по кругу. В случае возникновения двух альтернативных цепочек, непонятно, как определить какой блок из какой цепочки. Если нода получит два блока с номером 101 и два блока с номером 102, как понять, какой блок с каким связан?
lapitsky (OP)
Member
**
Offline Offline

Activity: 202
Merit: 27

Atom foundation


View Profile
May 11, 2018, 10:22:59 PM
Last edit: May 11, 2018, 10:37:14 PM by lapitsky
 #19

А вы смешной
Ну я натурально рад, что поделал вам смешно - а то, вы какой-то грустный.

Не хочу говорить, что вы странный и если вам грустно, не значит, что грустно всем.

например тем же POW. пакуем транзакции в блок. майнер проделывает работу с nonce и предлагает системе решение. все. блок все выкачивают, дают ему следующий номер.

И тут я понимаю, что мы ходим по кругу. В случае возникновения двух альтернативных цепочек, непонятно, как определить какой блок из какой цепочки. Если нода получит два блока с номером 101 и два блока с номером 102, как понять, какой блок с каким связан?


в данном случае, мы получаем блок с pow (который содержит nonce в этом блоке, который допустим создает хеш с 5 нулями). все. если кто-то выкачивает хоть сто блоков 101, то проверив nonce и если хеш с 5 нулями, добавляем его к себе под номером 101. если кто-то имеет более длинную цепочку и верные nonce, то принимаем его цепочку

⚡⚡⚡
Atom - пишу свою крипту, присоединяйся в ополчение - https://bitcointalk.org/index.php?topic=3428149.0
⚡⚡⚡
A-Bolt
Legendary
*
Offline Offline

Activity: 2318
Merit: 2333


View Profile
May 12, 2018, 10:08:17 AM
Last edit: May 12, 2018, 10:45:24 AM by A-Bolt
 #20

если кто-то имеет более длинную цепочку и верные nonce, то принимаем его цепочку

Не, я всё равно не понимаю, как определить, с какого блока начинается альтернативная цепочка.

Рассмотрим ситуацию. Китайцы решили добывать кальмаров, путём подрыва глубоководных ядерных фугасов. Капитан рыболовецкого судна "Хуй На Буй" перепутал координаты сброса фугаса, в результате чего, взрывом был повреждён подводный кабель, соединяющий Азию с Северной и Южной Америками.

Связь Азии с Америками была прервана на 26 минут, столько времени понадобилось для создания альтернативного маршрута через Австралию. Кроме того, канал Европа - Азия оказался перегружен, из-за попыток перенаправить траффик из Азии в Америку через Европу. Связь между Европой Азией в это время была неустойчивой.

До момента разрыва связи нода колумбийского председателя колхоза, занимающегося выращиванием коки, Педро Хуэреса, и нода его японского контрагента Тамо Херовато содержат одинаковые цепочки с последним блоком №100.  

За эти 26 минут китайский пул viabtc.com сгенерировал 2 блока - 101 и 102. В то же время, европейский пул slushpool.com, не получив блоки от viabtc.com из-за плохой связи, сгенерировал свои блоки 101 и 102. Блоки 101 и 102 от этих двух пулов разные, они содержат как общие транзакции, так и отличающиеся.

У Педро Хуэреса связь с Европой есть, он принял блоки 101 и 102 от slushpool.com. Тамо Херовато, наоборот, принял блоки 101 и 102 от viabtc.com. И тут связь Азия - Америка восстанавливается, а Европа - Азия нормализуется.

Педро Хуэрес получает блоки 101 и 102 от viabtc.com, но отбрасывает их, ведь блоки с этими номерами у него уже есть. Тамо Херовато делает то же самое с блоками от slushpool.com. Тем временем, пул viabtc.com создаёт блок 103 и все его принимают.

Теперь получается, что и у Педро Хуэреса есть цепочка 100 - 101 - 102 - 103 и у Тамо Херовато есть цепочка 100 - 101 - 102 - 103, в которой блоки 100 и 103 - одинаковые, а блоки 101 и 102 - разные.

Это какая-то лажа получается. Что делать? Связывать блоки друг с другом криптографически при помощи PoW.
Pages: [1] 2 3 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!