Никаких адресов в контрактах нет. Должно быть что-то типа такого:
биткоин заберет тот, кто
ИЛИ
подпишется как Алиса
ИЛИ
подпишется как Алиса И как Боб
Устал к вечеру, почти всё пришлось переписать
It was the Bitcointalk forum that inspired us to create Bitcointalksearch.org - Bitcointalk is an excellent site that should be the default page for anybody dealing in cryptocurrency, since it is a virtual gold-mine of data. However, our experience and user feedback led us create our site; Bitcointalk's search is slow, and difficult to get the results you need, because you need to log in first to find anything useful - furthermore, there are rate limiters for their search functionality.
The aim of our project is to create a faster website that yields more results and faster without having to create an account and eliminate the need to log in - your personal data, therefore, will never be in jeopardy since we are not asking for any of your data and you don't need to provide them to use our site with all of its capabilities.
We created this website with the sole purpose of users being able to search quickly and efficiently in the field of cryptocurrency so they will have access to the latest and most accurate information and thereby assisting the crypto-community at large.
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 в сети и продолжают взаимодействие...
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_HASH160OP_EQUAL
OP_IF
OP_CHECKSIG
OP_ELSE
OP_SWAP OP_SIZE 32 OP_EQUAL
OP_NOTIF
# To local node via HTLC-timeout transaction (timelocked).
OP_DROP 2 OP_SWAP2 OP_CHECKMULTISIG
OP_ELSE
# To remote node with preimage.
OP_HASH160OP_EQUALVERIFY
OP_CHECKSIG
OP_ENDIF
OP_ENDIF
The remote node can redeem the HTLC with the witness:
If a revoked commitment transaction is published, the remote node can spend this output immediately with the following witness:
The sending node can use the HTLC-timeout transaction to timeout the HTLC once the HTLC is expired, as shown below.