apxu
Member
Offline
Activity: 229
Merit: 13
|
|
March 20, 2019, 09:47:37 AM |
|
П.С. Когда я писал ранее, что "опубликует более новую транзакцию", это я делал для упрощения. На самом деле, Боб публикует этот специальный ключ который означает следующее: существует более свежая транзакция, а опубликованная является устаревшей. Если с помощью этого "ключа" можно создать транзакцию и остановить мошенничество - можно считать, что Боб публикует транзакцию. Если нельзя - то что толку, даже если вся сеть будет орать, что Алиса обманывает Боба? Всем пофиг на это. Никого взаиморасчеты Алиса и Боба не касаются.
|
|
|
|
|
QWeB
|
|
March 20, 2019, 10:22:17 AM |
|
П.С. Когда я писал ранее, что "опубликует более новую транзакцию", это я делал для упрощения. На самом деле, Боб публикует этот специальный ключ который означает следующее: существует более свежая транзакция, а опубликованная является устаревшей. Если с помощью этого "ключа" можно создать транзакцию и остановить мошенничество - можно считать, что Боб публикует транзакцию. Если нельзя - то что толку, даже если вся сеть будет орать, что Алиса обманывает Боба? Всем пофиг на это. Никого взаиморасчеты Алиса и Боба не касаются. Я не знаю, как ещё можно предъявить специальный ключ, кроме как сделать транзакцию с использованием этого ключа. Может, можно как-то по другому, нигде явно не видел описания. Можт кто объяснит? This output sends funds to either an HTLC-timeout transaction after the HTLC-timeout or to the remote node using the payment preimage or the revocation key. The output is a P2WSH, with a witness script: # To remote node with revocation key OP_DUP OP_HASH160 <RIPEMD160(SHA256(revocationpubkey))> OP_EQUAL OP_IF OP_CHECKSIG OP_ELSE <remote_htlcpubkey> OP_SWAP OP_SIZE 32 OP_EQUAL OP_NOTIF # To local node via HTLC-timeout transaction (timelocked). OP_DROP 2 OP_SWAP <local_htlcpubkey> 2 OP_CHECKMULTISIG OP_ELSE # To remote node with preimage. OP_HASH160 <RIPEMD160(payment_hash)> OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF OP_ENDIF The remote node can redeem the HTLC with the witness: <remotehtlcsig> <payment_preimage> If a revoked commitment transaction is published, the remote node can spend this output immediately with the following witness: <revocation_sig> <revocationpubkey> The sending node can use the HTLC-timeout transaction to timeout the HTLC once the HTLC is expired, as shown below.
|
|
|
|
kzv
Legendary
Offline
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
|
|
March 20, 2019, 11:42:54 AM Last edit: March 20, 2019, 01:11:53 PM by kzv Merited by chimk (5), QWeB (1) |
|
Давайте вместе попробуем сделать описание LN так, чтобы домохозяйкам понятно было? Я попробовал тут немного из общих соображений набросать, как это вроде бы выглядит. Если где-то ошибся - поправляйте. У Алисы есть кот и собака, имена которых знает только она. У Боба есть хомяк, имя которого знает только Боб Алиса создает в блокчейне контракт, открытие канала: биткоин заберет тот кто: ИЛИ знает как зовут всех животных: кота, собаку и хомяка ИЛИ знает как зовут хомяка И кота И прошло полгода ИЛИ знает как зовут собаку И прошел год При таком раскладе: 1. пока не пройдет полгода биткоин можно забрать только с согласия Алисы и Боба 2. в интервале между 0.5 года и 1 год, биткоин можно забрать без согласия Алисы, если ранее Алиса сказала один из своих секретов 3. через год Алиса может все забрать себе без всяких согласований. Это случай когда Боб умер и не отдал ключи наследникам. Чтобы сделать лайтинг транзакцию, Алисе надо создать частично заполненный контракт: Кота зовут Васька, 0.1 биткоина из самой первой транзакции может забрать тот, кто знает имя хомяка Сдачу заберет тот, кто ИЛИ знает как зовут других животных: другого_кота_Алисы, собаку и другого_хомяка_Боба ИЛИ знает как зовут другого_хомяка_Боба И другого_кота_Алисы И прошло полгода ИЛИ знает как зовут собаку И прошел год Теперь Боб знает имя кота и может забрать хоть 0.1 биткоина, хоть весь биткоин из транзакции открытия канала. Допустим Боб решил забрать 1 биткоин, он должен написать контракт: Хомяка зовут Тэймос, кота зовут Васька, жду полгода и беру из самой первой транзакции 1 биткоин.
В этот момент Алиса видит, что Боб ее решил наебать, но Алиса уже знает как зовут всех животных (имя хомяка Боб написал в мошенническом контракте). Поэтому Алиса немедленно сделает контракт: Животных зовут Жучка, Васька, Теймос, я забираю все биткоины из самой первой транзакции себе немедленно. Как видим, Бобу нет никакого смысла обманывать Алису. Поэтому вместо мошеннической транзакции он вынужден действовать по правилам и написать контракт: Хомяка зовут Тэймос, кота зовут Васька, жду полгода и беру из самой первой транзакции 0.1 биткоин. Сдачу заберет тот, кто ИЛИ знает как зовут других животных: другого_кота_Алисы, собаку и другого_хомяка_Боба ИЛИ знает как зовут другого_хомяка_Боба И другого_кота_Алисы И прошло полгода ИЛИ знает как зовут собаку И прошел год
|
|
|
|
QWeB
|
|
March 20, 2019, 11:51:21 AM Last edit: March 20, 2019, 12:30:53 PM by QWeB |
|
Давайте вместе попробуем сделать описание LN так, чтобы домохозяйкам понятно было?
Давайте, но даже на таких простых примерах простому человеку очень сложно врубиться. Как я только не пытался объяснить своим знакомым в реальной жизни на пальцах, ничего не получалось... Бросил это дело... И, наверное, в тексте следует разделить как-то понятия контракт/транзакция, ончейн/офчейн. И написать, по какому принципу появляются другие животные (их имена). ... но Алиса уже знает как зовут всех животных. Поэтому Алиса немедленно сделает контракт:
Не написано, когда Алиса узнала имя хомяка Боба. Она его берёт из транзакции, которую опубликовал Боб.
|
|
|
|
kzv
Legendary
Offline
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
|
|
March 20, 2019, 12:34:20 PM |
|
следует разделить как-то понятия контракт/транзакция, ончейн/офчейн. И написать, по какому принципу появляются другие животные (их имена).
Думаю не стоит загромождать. Контракт и транзакция это по сути одно и то же. В том, что я написал, вообще можно без оффчейна обойтись. Подозреваю, что у меня где-то ошибка... Возможно цепочка транзакций не нужна, а каждая новая просто перезаписывает старую. Но тогда контракты надо видоизменить. ... но Алиса уже знает как зовут всех животных. Поэтому Алиса немедленно сделает контракт:
Не написано, когда Алиса узнала имя хомяка Боба. Она его берёт из транзакции, которую опубликовал Боб. Выделил жирным
|
|
|
|
QWeB
|
|
March 20, 2019, 12:39:17 PM Last edit: March 20, 2019, 01:01:36 PM by QWeB |
|
Возможно цепочка транзакций не нужна, а каждая новая просто перезаписывает старую. Но тогда контракты надо видоизменить.
А что значит "перезаписывает старую"? Получается, какая-то цепочка связанных транзакций: Транзакция №1 (использует выход с кошелька создателя канала) биткоин заберет тот кто: ИЛИ знает как зовут всех животных: кота, собаку и хомяка (образует выход 1.1.) ИЛИ знает как зовут хомяка И кота И прошло полгода (образует выход 1.2.) ИЛИ знает как зовут собаку И прошел год (образует выход 1.3.)
Транзакция 2 (использует выход 1.2.) Кота зовут Васька, 0.1 биткоина из предыдущей транзакции может забрать тот, кто знает имя хомяка (образует выход 2.1.) Сдачу заберет тот, кто ИЛИ знает как зовут других животных: другого_кота_Алисы, собаку и другого_хомяка_Боба (образует выход 2.2.) ИЛИ знает как зовут другого_хомяка_Боба И другого_кота_Алисы И прошло полгода (образует выход 2.3.) ИЛИ знает как зовут собаку И прошел год (образует выход 2.4.) Транзакция 3 (использует выход 2.1.) Хомяка зовут Тэймос, кота зовут Васька, жду полгода и беру из предыдущей транзакции 0.1 биткоин. Сдачу заберет тот, кто ИЛИ знает как зовут других животных: другого_кота_Алисы, собаку и другого_хомяка_Боба ИЛИ знает как зовут другого_хомяка_Боба И другого_кота_Алисы И прошло полгода ИЛИ знает как зовут собаку И прошел год И это по вашему всё публикуется при закрытии канала? На сколько я знаю, длина скрипта ограничена и в него все платежи внутри LN не влезут. Сейчас, по-моему, может публиковаться только три транзакции: 1) транзакция открытия канала, 2) транзакция закрыти канала, 3) транзакция при мошенничестве revoked commitment transaction (опционно)
|
|
|
|
kzv
Legendary
Offline
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
|
|
March 20, 2019, 01:06:43 PM |
|
Один скрипт образует один выход. То, что вы назвали транзакциями 2 и 3 это должна быть одна и та же транзакция 2. Только сначала в скрипте не хватает данных, чтобы его потратить Боб должен туда эти данные подставить. По поводу длины скрипта вы правы: значит внутри LN должна храниться только одна последняя транзакция 2. Контракт Боба: Хомяка зовут Тэймос, кота зовут Васька, жду полгода и беру из первой транзакции 0.1 биткоин. Сдачу заберет тот, кто ИЛИ знает как зовут других животных: другого_кота_Алисы, собаку и другого_хомяка_Боба ИЛИ знает как зовут другого_хомяка_Боба И другого_кота_Алисы И прошло полгода ИЛИ знает как зовут собаку И прошел год
|
|
|
|
QWeB
|
|
March 20, 2019, 01:10:28 PM |
|
Один скрипт образует один выход. То, что вы назвали транзакциями 2 и 3 это должна быть одна и та же транзакция 2. Только сначала в скрипте не хватает данных, чтобы его потратить Боб должен туда эти данные подставить.
По поводу длины скрипта вы правы: значит внутри LN должна храниться только одна последняя транзакция 2.
Внутри LN нужно хранить все транзакции в связке с ключом отмены, на случай, если вторая сторона опубликует ее. Публикуются в сеть биткоина только те, что я описал выше.
|
|
|
|
kzv
Legendary
Offline
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
|
|
March 20, 2019, 01:24:15 PM |
|
Внутри LN нужно хранить все транзакции в связке с ключом отмены, на случай, если вторая сторона опубликует ее.
Логично. Я выделил жирным в контрактах то, что все транзакции тратят выход от самой первой (а не предыдущей как я написал сначала).
|
|
|
|
QWeB
|
|
March 20, 2019, 04:13:40 PM |
|
И всё таки, что то не так с животными в вашем мысленном эксперименте. Что мешает Алисе после публикации честной транзакции Бобом: Хомяка зовут Тэймос, кота зовут Васька, жду полгода и беру из самой первой транзакции 0.1 биткоин. Сдачу заберет тот, кто ИЛИ знает как зовут других животных: другого_кота_Алисы, собаку и другого_хомяка_Боба ИЛИ знает как зовут другого_хомяка_Боба И другого_кота_Алисы И прошло полгода ИЛИ знает как зовут собаку И прошел год [/quote] Послать в сеть: Животных зовут Жучка, Васька, Теймос, я забираю все биткоины из самой первой транзакции себе немедленно.
|
|
|
|
QWeB
|
|
March 20, 2019, 06:00:13 PM Last edit: March 20, 2019, 07:52:40 PM by QWeB |
|
Попробую изложить свой вариант, не для обычных людей, но для нашего с вами обсуждения: 1) Создание канала от Алисы к Бобу.
Алиса создала временный секрет АБ1 + Переводит 1BTC на кошелёк канала следующей транзакцией:
Контракт 1: Взять с такого то выхода кошелька Алисы 1 BTC и заблокировать его на адресе Лайтнинг канала.
Разблокировка:
Через пол года 1 BTC-> разблокируется, если предоставлена подпись Алисы Моментально 1 BTC-> разблокируется, если предоставлена подпись и Алисы, и Боба
или
Моментально 1 BTC-> Бобу, если предоставлена подпись Боба и временный секрет АБ1
Алиса публикует контракт в сеть BTC и дожидается подтверждения ------------------------------------------------------------------------------------- 2) Алиса совершает платёж в сети лайтнинг на сумму 0,3 BTC в сторону Боба, путём создания нового временного секрета АБ2 и нового контракта:
Контракт 2: Взять с выхода контракта канала 1BTC путём предоставления подписи и Алисы и Боба и заблокировать его на двух выходах Алисы и Боба:
Разблокировка выхода 1: Через пол года 0,7 BTC-> разблокируется, если предоставлена подпись Алисы и Боба
Разблокировка выхода 2 Через пол года 0,3 BTC-> разблокируется, если предоставлена подпись Алисы и Боба
или
Моментально 1 BTC-> разблокируется, если предоставлен временный секрет АБ2 и подпись Боба
или
Моментально 1 BTC-> разблокируется, если предоставлен временный секрет БА2 и подпись Алисы
Алиса подписывает Контракт 2 и передаёт подпись Контракта 2, сам Контракт 2 и временный секрет АБ1 Бобу.
Боб создаёт временный секрет БА2, подписывает Контракт 2 и возвращает подпись Контракта 2 Алисе, подпись Контракт 2 Алисой сохраняет у себя
И Алиса и Боб не публикуют Контракт 2 в сети и продолжают взаимодействие. --------------------------------------------------------------------------------------------- 3) Боб совершает платёж в сети лайтнинг на сумму 0,1 BTC в сторону Алисы, путём создания нового временного секрета БА3 и нового контракта:
Контракт 3: Взять с выхода контракта канала 1BTC путём предоставления подписи и Алисы и Боба и заблокировать его на двух выходах Алисы и Боба:
Разблокировка выхода 1: Через пол года 0,8 BTC-> разблокируется, если предоставлена подпись Алисы и Боба
Разблокировка выхода 2 Через пол года 0,2 BTC-> разблокируется, если предоставлена подпись Алисы и Боба
или
Моментально 1 BTC-> разблокируется, если предоставлен временный секрет АБ3 и подпись Боба
или
Моментально 1 BTC-> разблокируется, если предоставлен временный секрет БА3 и подпись Алисы
Боб подписывает Контракт 3 и передаёт подпись Контракта 3, сам Контракт 3 и временный секрет БА2 Алисе.
Алиса создаёт временный секрет АБ3, подписывает Контракт 3 и возвращает подпись Контракта 3 Алисе, подписанный Алисой Контракт 3 сохраняет у себя
И Алиса и Боб не публикуют Контракт 3 в сети и продолжают взаимодействие...
Поправил. Осталась не раскрыта тема моментального закрытия канала по согласию сторон. Вроде бы есть такая возможность.
|
|
|
|
kzv
Legendary
Offline
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
|
|
March 20, 2019, 06:23:55 PM |
|
И всё таки, что то не так с животными в вашем мысленном эксперименте. Что мешает Алисе после публикации честной транзакции Бобом: Хомяка зовут Тэймос, кота зовут Васька, жду полгода и беру из самой первой транзакции 0.1 биткоин. Сдачу заберет тот, кто ИЛИ знает как зовут других животных: другого_кота_Алисы, собаку и другого_хомяка_Боба ИЛИ знает как зовут другого_хомяка_Боба И другого_кота_Алисы И прошло полгода ИЛИ знает как зовут собаку И прошел год Послать в сеть: Животных зовут Жучка, Васька, Теймос, я забираю все биткоины из самой первой транзакции себе немедленно. Я думаю, что Боб никуда не публикует имя Теймоса и честную транзакцию. Он запоминает эту транзакцию у себя на ноде и опубликует ее через полгода если других транзакций от Алисы не поступит. А чтобы Алиса через полгода не смогла ничего сделать, надо в открывающую транзакцию дополнительное условие поставить биткоин заберет тот кто: ИЛИ знает как зовут всех животных: кота_Алисы, собаку_Алисы и хомяка_Боба И прошло меньше чем полгода ИЛИ знает как зовут хомяка_Боба И кота_Алисы И прошло полгода ИЛИ знает как зовут собаку_Алисы И прошел год
Транзакция внутри лайтинга от Алисы будет такая: кота зовут Васька, 0.1 биткоина из самой первой транзакции заберет тот кто назовет имя хомяка через полгода. Сдачу заберет тот, кто ИЛИ знает как зовут других животных: другого_кота_Алисы, собаку_Алисы и другого_хомяка_Боба И прошло меньше чем полгода ИЛИ знает как зовут другого_хомяка_Боба И другого_кота_Алисы И прошло полгода ИЛИ знает как зовут собаку_Алисы И прошел год
|
|
|
|
kzv
Legendary
Offline
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
|
|
March 20, 2019, 06:31:36 PM |
|
Попробую изложить свой вариант, не для обычных людей, но для нашего с вами обсуждения:
Через пол года 1 BTC-> на исходный адрес Алисы, если предоставлена подпись Алисы Моментально 1 BTC-> на исходный адрес Алисы, если предоставлена подпись Боба Моментально 1 BTC-> на любой адрес, если предоставлена подпись и Алисы, и Боба
Попробуйте в вашей формулировке убрать слово "адрес". Никаких адресов в контрактах нет. Должно быть что-то типа такого: биткоин заберет тот, кто ИЛИ подпишется как Алиса ИЛИ подпишется как Алиса И как Боб
|
|
|
|
amaclin1
|
|
March 20, 2019, 06:43:17 PM |
|
Попробую изложить свой вариант, не для обычных людей, но для нашего с вами обсуждения: Попробуйте в вашей формулировке убрать Ребят, а вы каналы сами открывали-закрывали? У меня складывается впечатление, что нет. Я-то не скрываю, что я "теоретик". Как говорилось в пошлом анекдоте "я не врач, но посмотреть могу" И по-моему, достаточно очевидно, что тут без практических навыков и примеров нам с этим не разобраться. Как оно работает - примерно понятно. А вот как точно - тут пока еще не наблюдается спецов.
|
|
|
|
QWeB
|
|
March 20, 2019, 07:37:56 PM |
|
Попробуйте в вашей формулировке убрать слово "адрес". Никаких адресов в контрактах нет. Должно быть что-то типа такого:
биткоин заберет тот, кто ИЛИ подпишется как Алиса ИЛИ подпишется как Алиса И как Боб
Устал к вечеру, почти всё пришлось переписать
|
|
|
|
kzv
Legendary
Offline
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
|
|
March 21, 2019, 02:02:23 AM |
|
Попробую изложить свой вариант, не для обычных людей, но для нашего с вами обсуждения: Попробуйте в вашей формулировке убрать Ребят, а вы каналы сами открывали-закрывали? У меня складывается впечатление, что нет. Я-то не скрываю, что я "теоретик". Как говорилось в пошлом анекдоте "я не врач, но посмотреть могу" И по-моему, достаточно очевидно, что тут без практических навыков и примеров нам с этим не разобраться. Как оно работает - примерно понятно. А вот как точно - тут пока еще не наблюдается спецов. Ну ты же понимаешь, что хэлло ворд на си можно написать бесконечным числом способов? С контрактами та же история. Читать чужой код для программиста это работа. Придумывать свой вариант это развлечение. Я на этом форуме не для работы )
|
|
|
|
FontSeli
|
|
March 21, 2019, 09:38:37 AM |
|
Щито? Вы хоть читаете что вы пишете? Вы цыганкам такое расскажите! Вот они уссутся! Это где же такую чушь про научную обоснованность вы вычитали? Или вам по РЕН-ТВ это рассказали?
В Университете изучал (не то, что нынче каждый второй университет)... ладно, сами с LN дальше разбирайтесь. так они этого целенаправленно и добиваются, вы думаете они сюда дискутировать ходят? для них любая активность вокруг BTC как красная тряпка. Тут вчера один из них вопрос задавал, зачем все это(LN) нужно не трукриптанам? не зачем им объяснять, зачем им это нужно. не тру криптаны могут строем идти на хер. Мне кажется разговоры вокруг LN да и BTC в целом, про масс адопшин, это ошибка в принципе. LN будет востребован настолько, насколько будет нужен сообществу BTC. Ровно то же можно сказать про BTC, на хер не трукриптанов. Кому надо тот подтянется, им и нужен ваш опыт. по факту популярность и востребованность растет. Например по LN регулярно статистка выходит - 1ML.com observed: 7,474 nodes (4,074 with active channels) 39,564 channels 1,071.015 BTC capacity ($4,315,814) median node capacity: 0.027 BTC ($107.48) past 24h: +23 nodes +546 channels +2.896 BTC ($11,668) https://twitter.com/LNstats/status/1108149033913253888Так вы слона не продадите. Если не будет притока новых людей, которым интересно использовать криптовалюты как платежное средство, то крипта навсегда останется местом для фриков и спекулянтов. Востребованность LN растет за счет тех, кто уже имеет опыт оплаты в Битках и решил опробовать, что же такое "молния", да и им не всегда понятно как все настроить и использовать. Например я ознакамливаюсь с LN только из-за любознательности и любопытства, потому что для русскоязычного комьюнити большой потребности в LN нет, т.к. у нас в странах практически отсутствуют магазины и сервисы, которые принимают оплату в криптовалютах и соответственно нет большой надобности в супер быстрых платежах. Естественно, принудительно тянуть никого в LN надобности нет, однако и не стоит из-за парочки троллей и дебилов отказываться помогать другим людям в познании новой технологии. Кому надо тот обязательно зайдет, почитает и будет благодарен за разъяснения.
|
Celebrate Julian's freedom!
|
|
|
QWeB
|
|
March 21, 2019, 10:20:30 AM |
|
Так вы слона не продадите. Если не будет притока новых людей, которым интересно использовать криптовалюты как платежное средство, то крипта навсегда останется местом для фриков и спекулянтов. Востребованность LN растет за счет тех, кто уже имеет опыт оплаты в Битках и решил опробовать, что же такое "молния", да и им не всегда понятно как все настроить и использовать.
Например я ознакамливаюсь с LN только из-за любознательности и любопытства, потому что для русскоязычного комьюнити большой потребности в LN нет, т.к. у нас в странах практически отсутствуют магазины и сервисы, которые принимают оплату в криптовалютах и соответственно нет большой надобности в супер быстрых платежах.
Естественно, принудительно тянуть никого в LN надобности нет, однако и не стоит из-за парочки троллей и дебилов отказываться помогать другим людям в познании новой технологии. Кому надо тот обязательно зайдет, почитает и будет благодарен за разъяснения.
Всё не совсем так Просто в русском языке уважительная форма и множественное число совпадают. Я имел ввиду конкретного автора, который, обладая неплохими знаниями в "mainnet", сам не хочет разобраться в смартконтрактах LN.
|
|
|
|
amaclin1
|
|
March 21, 2019, 10:38:27 AM |
|
Сейчас, по-моему, может публиковаться только три транзакции: 1) транзакция открытия канала, 2) транзакция закрыти канала, 3) транзакция при мошенничестве revoked commitment transaction (опционно) Окей. Давайте найдем эти примеры в блокчейне (по крайней мере 1-2 должно быть много, может где-то есть и 1-2-3 по этому списку). И уже на конкретных примерах обсуждать будем. По крайней мере будем видеть Алису и Боба.
|
|
|
|
|