Author

Topic: Ark — протокол второго уровня для биткойна (Read 231 times)

legendary
Activity: 1974
Merit: 3049
Практическое применение технологии сейчас я вижу лишь одно. Она пригодится там, где члены некой группы часто передают друг другу сатоши. Например, на бирже, где торгуются деривативы с расчётом в биткоинах. Вместо того, чтобы доверять бирже хранение биткоинов, можно организовать биржу как ASP (Ark Service Provider). У такой биржи будет меньше возможностей для экзит-скама. При самом худшем раскладе она сможет сбежать только с теми суммами, которые использовались для совершения сделок в течение последнего раунда.   

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

В итоге, выглядит менее интересно, чем казалось по изначальному представлению.
legendary
Activity: 1610
Merit: 2026
Первый провайдер Ark в мейннете Биткоина был запущен вчера. Пока только в демонстрационных целях. Проверили, как всё работает, и выключили.

Судя по описанию, за время, прошедшее с анонса протокола, он очень сильно изменился. Если раньше складывалось впечатление, что потребность в доверии не возникает ни в каких ситуациях, то теперь она появилась.

В описании мы видим новое понятие "раунд", которое означает финализацию всех транзакций, проведённых внутри провайдера. Каждый раунд длится час. Раз в час в основную сеть транслируется общая транзакция, фиксирующая итог всех изменений балансов пользователей провайдера за этот раунд. До того, как она попала в блок, теоретически возможна повторная трата тех VTXO которые в течение этого раунда были отправлены внутри Ark. Для двойной траты необходим сговор отправителя и провайдера.

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

Практическое применение технологии сейчас я вижу лишь одно. Она пригодится там, где члены некой группы часто передают друг другу сатоши. Например, на бирже, где торгуются деривативы с расчётом в биткоинах. Вместо того, чтобы доверять бирже хранение биткоинов, можно организовать биржу как ASP (Ark Service Provider). У такой биржи будет меньше возможностей для экзит-скама. При самом худшем раскладе она сможет сбежать только с теми суммами, которые использовались для совершения сделок в течение последнего раунда.   
legendary
Activity: 1610
Merit: 2026
klarki, а что это за нейросеть такая? Я погуглил - не нашёл.

Она в итоге что выдаёт: видео с переводом или текстовый транскрипт? Транскрипт этого видео неплохо бы получить. А то я как месяц назад не мог осилить это двухчасовое видео, так и до сих пор не могу. В текстовом формате можно было бы быстрее по нему пробежаться и найти то, что интересует.
legendary
Activity: 3262
Merit: 3675
Top Crypto Casino
Вот еще есть неплохое видео посвященной механике, преимуществам и компромиссам ARK.

Если есть проблемы с английским, то можете прогнать это видео через нейросеть яда (перевод займет минут десять).


legendary
Activity: 1610
Merit: 2026
Хотя, как я уже отметил, в нём также заложены риски, о которых пользователей придётся массово предупреждать, и всё равно кто-то да потеряет деньги из-за того, что недопоймёт про время жизни виртуальной UTXO.
А я как раз с этим проблем не вижу. Думаю, в кошельки для пользователей можно встроить скрипт, который позволит автоматически переводить самому себе VTXO с истекающим сроком действия.

У меня сейчас основные вопросы вызывает множество заменяющих друг друга транзакций в мемпуле. Да, блокчейн они забивать не будут, но мемпул будут забивать очень сильно. Пока одна транзакция расходится по сети, провайдер уже сгенерирует другую ей на смену, и так - каждые пять секунд. И ведь транзакции-то будут пакетные: со множеством входов и множеством выходов. И провайдер, наверняка, будет не один. Справится ли сеть с проверкой и упорядочиванием всех этих транзакций?
legendary
Activity: 1974
Merit: 3049
Классная штука. Наверно найдет отклик в сердце простого потребителя (что приведет к ускорению адопшена) если даже местные профи (относительно среднего уровня пользователей вне форума) обсуждают тему в основном с формулировками "не осилил/не понимаю/не знаю"  Grin

~
Идея любопытная. Посмотрим, насколько она приживётся и разовьётся.

Чет напоминает мне эта идея, даже не могу вспомнить что - может банковскую систему, только в более убогом варианте, с костылями там всякими  Roll Eyes

Вся крипта технически более убогая, чем банковская система, это довольно очевидно. Разница заключается в том, кто контролирует деньги. Децентрализованная система оставляет больше возможностей контроля за владельцами денег (вкупе с куда больше ответственностью). В банковской системе всё контролирует банк как централизованный оператор.

Что касается перспектив протокола в разрезе понимания технической стороны непрофессионалами, так я и принципов работы банковских карт не понимаю в достаточной мере, чтобы повторить систему, однако с лёгкостью ими пользуюсь. Понимание на уровне технической стороны и на уровне пользователя, — это два совершенно разных понимания. Для пользователя, если этот протокол заработает так, как это вижу я, он будет гораздо проще LN. Хотя, как я уже отметил, в нём также заложены риски, о которых пользователей придётся массово предупреждать, и всё равно кто-то да потеряет деньги из-за того, что недопоймёт про время жизни виртуальной UTXO.
legendary
Activity: 2478
Merit: 1951
Leading Crypto Sports Betting & Casino Platform
Классная штука. Наверно найдет отклик в сердце простого потребителя (что приведет к ускорению адопшена) если даже местные профи (относительно среднего уровня пользователей вне форума) обсуждают тему в основном с формулировками "не осилил/не понимаю/не знаю"  Grin

~
Идея любопытная. Посмотрим, насколько она приживётся и разовьётся.

Чет напоминает мне эта идея, даже не могу вспомнить что - может банковскую систему, только в более убогом варианте, с костылями там всякими  Roll Eyes
legendary
Activity: 1974
Merit: 3049
...
Итого в сеть Биткоина (в мемпулы полных нод) попадает «обезличенная» информация обо всех переводах внутри Ark. Но в цепь попадает информация только один раз за блок. Поэтому блокчейн не забивается.

Поправьте меня, если я что-то понял неправильно.

Я недостаточно полно понимаю конкретные шаги в их последовательности, но логики в записывании всех промежуточных транзакций в Ark в сеть биткойна, если нет транзакции вывода, нет, потому что блок биткойна ограничен по объёму. Даже если это будет одна транзакция со всеми данными, то она будет слишком тяжёлой. Если даже это немного и позволит снизить нагрузку на сеть, то незначительно, а избыточные комиссии за каждую запись сделают ещё и более дорогим удовольствием, поэтому это теряет смысл. Миксеры есть и без Ark. Смысл есть только тогда, когда в блокчейн заносятся только данные контрактов на вход и на выход, а промежуточные транзакции все идут только во втором слое. Потому что тогда множество мелких транзакций навсегда остаётся во втором слое, и в блокчейне проходит только контракт со вводом от одного человека и выводом от другого, который захотел вывести, может, через сотню промежуточных изменений контракта за полгода, и вся эта сотня изменений контракта прошла только по второму слою через последовательное изменение разных контрактов, по которым гуляли виртуальные UTXO.

Если Вы поняли всё правильно, то LN выглядит лучше и перспективнее, чем Ark (потому что промежуточные состояния контрактов LN в блокчейн не выносятся), и Ark нужно дорабатывать до исключения избыточных записей в блокчейн биткойна. С другой стороны, может, и я чего-нибудь недопонимаю. Grin
legendary
Activity: 1610
Merit: 2026
Также это противоречит заявленной словами идее разработчика о том, что монеты во втором слое создаются, живут и умирают вне сети, но могут быть в одностороннем порядке затребованы к выводу в сеть («Coins are created, live and die entirely off the chain yet can be unilaterally reverted to on-chain»).
Так, продолжаю разбираться. Похоже, тут речь идёт не про «вне сети», а про «вне цепи».

Пример (упрощённый-преупрощённый, без учёта разных номиналов VTXO, коннекторов и комиссий - исключительно для понимания того, что попадает в сеть и что остаётся в цепи).

Пусть есть Алиса (А), Боб (Б), Вася (В) и Галя (Г). А ещё есть провайдер (П).

Шаг 1.
А, Б, В и Г хотят переводить свои биткоины внутри протокола Ark. Для этого
А отправляет П 100 сатоши,
Б отправляет П 200 сатоши,
В отправляет П 300 сатоши,
Г отправляет П 400 сатоши.
Это ровно те суммы, которыми они хотят распоряжаться на втором слое.

Шаг 2.
П видит входящие транзакции и создаёт на их основе «транзакцию-пул №1», входами которой будут их выходы. У «транзакции-пула №1» будет 10 выходов по 100 сатоши каждый. «Транзакция-пул №1» транслируется в основную сеть.
Одновременно П сообщает А подписанную, но не транслированную транзакцию, расходующую один из выходов «транзакции-пула №1» (100 сатоши).
Одновременно П сообщает Б подписанные, но не транслированные транзакции, расходующие два из выходов «транзакции-пула №1» (200 сатоши).
Одновременно П сообщает В подписанные, но не транслированные транзакции, расходующие три из выходов «транзакции-пула №1» (300 сатоши).
Одновременно П сообщает Г подписанные, но не транслированные транзакции, расходующие четыре из выходов «транзакции-пула №1» (400 сатоши).
Таким образом, каждый из участников имеет возможность в любой момент транслировать в основную сеть транзакции, расходующие ровно ту сумму, которую он внёс. До тех пор, пока транзакция не транслирована, мы говорим, что эти деньги существуют на втором слое в виде виртуальных выходов (VTXO). Как только кто-то транслирует транзакцию, VTXO на втором слое исчезает, а на первом появляется соответствующий UTXO.

Шаг 3.
Проходит минут десять (в основной цепи появляется новый блок), и А решает передать Б 100 сатоши, а В решает передать Г 100 сатоши.
Они оба сообщают об этом П.
П создаёт «транзакцию-пул №2», входами которой будут выходы «транзакции-пула №1». У неё будет 10 выходов по 100 сатоши каждый. «Транзакция-пул №2» транслируется в основную сеть.
Одновременно П сообщает Б подписанные, но не транслированные транзакции, расходующие три из выходов «транзакции-пула №2» (300 сатоши).
Одновременно П сообщает В подписанные, но не транслированные транзакции, расходующие два из выходов «транзакции-пула №2» (200 сатоши).
Одновременно П сообщает Г подписанные, но не транслированные транзакции, расходующие пять из выходов «транзакции-пула №2» (500 сатоши).
Таким образом, у А и В становится на 100 сатоши меньше, а у Б и Г - на 100 сатоши больше.

Шаг 4.
Проходит пара секунд (в цепи не появляется нового блока), и Б решает передать В 200 сатоши, а Г решает передать А 200 сатоши.
Они оба сообщают об этом П.
П создаёт «транзакцию-пул №3», которая через механизм RBF заменяет собой в мемпуле «транзакцию-пул №2». Её входы будут те же, что и у «транзакции-пула №2». И у неё будет 10 выходов по 100 сатоши каждый. «Транзакция-пул №3» транслируется в основную сеть.
Одновременно П сообщает А подписанные, но не транслированные транзакции, расходующие два из выходов «транзакции-пула №3» (200 сатоши).
Одновременно П сообщает Б подписанную, но не транслированную транзакцию, расходующую один из выходов «транзакции-пула №3» (100 сатоши).
Одновременно П сообщает В подписанные, но не транслированные транзакции, расходующие четыре из выходов «транзакции-пула №3» (400 сатоши).
Одновременно П сообщает Г подписанные, но не транслированные транзакции, расходующие три из выходов «транзакции-пула №3» (300 сатоши).
Таким образом, у А и В становится на 200 сатоши больше, а у Б и Г - на 200 сатоши меньше.

Шаги 5, 6 и т.д.
Ещё через пять секунд П создаёт «транзакцию-пул №4», которая заменит собой в мемпуле «транзакцию-пул №3».
Потом - «транзакцию-пул №5», которая заменит «транзакцию-пул №4».
И так продолжается, пока в цепи не появится новый блок, после чего мы возвращаемся к шагу 3.

Итого в сеть Биткоина (в мемпулы полных нод) попадает «обезличенная» информация обо всех переводах внутри Ark. Но в цепь попадает информация только один раз за блок. Поэтому блокчейн не забивается.

Поправьте меня, если я что-то понял неправильно.
legendary
Activity: 1610
Merit: 2026
Это не имеет смысла: если есть сеть промежуточных серверов ASP, если во втором слое переписываются контракты так, чтобы получатель в итоге мог вывести свои виртуальные UTXO в реальную сеть в любой момент по собственному желанию, то запись промежуточных транзакций в основную сеть по своей концепции избыточна и нелепа.
В такой схеме смысл тоже есть: переводы биткоинов внутри системы за пять секунд. Но другие плюшки, заявленные разработчиком, в ней отсутствуют.

Вот есть ещё двухчасовое видео, в котором разработчик объясняет принципы протокола: https://www.youtube.com/watch?v=EocWax43QgQ

Но я его не осилил.
legendary
Activity: 1974
Merit: 3049
Согласно этому объяснению тоже получается, что внутренний перевод требует наличия транзакции на первом слое.

Так что если исходить из пропускной способности Биткоина в семь транзакций в секунду, то 35 провайдеров Ark будут полностью забивать своими транзакциями все блоки.

Это не имеет смысла: если есть сеть промежуточных серверов ASP, если во втором слое переписываются контракты так, чтобы получатель в итоге мог вывести свои виртуальные UTXO в реальную сеть в любой момент по собственному желанию, то запись промежуточных транзакций в основную сеть по своей концепции избыточна и нелепа. Также это противоречит заявленной словами идее разработчика о том, что монеты во втором слое создаются, живут и умирают вне сети, но могут быть в одностороннем порядке затребованы к выводу в сеть («Coins are created, live and die entirely off the chain yet can be unilaterally reverted to on-chain»).

Если по какой-то причине у него и правда все промежуточные транзакции записываются в основной блокчейн биткойна, то ИМХО это просто вопрос времени на исправление подобного бага. LN же такого не делает, так что явно это не необходимая процедура.

Потому что в целом же, если представить модель работы второго слоя Ark, как протокол заявлен, то он обеспечивает через цепочку изменяющихся контрактов передачу монет от случайно выбранной точки ввода до случайной точки вывода из второго слоя по требования выводящего, который получает права на вывод через текущий контракт. Стороны контракта определяются через подписи кошельком, а не через открытие каналов, таким образом обеспечивая изменение контрактов прямо во втором слое без необходимости получателю вообще иметь хоть какие-то записи в основной сети, если потом он потратит свои виртуальные UTXO и передаст средства кому-то другому. Встраивать сюда промежуточные записи в блокчейн биткойна это рубить всю идею на корню, потому что, помимо прочего, это не сократит комиссии, а резко из повысит за счёт никому не нужных третьих сторон.
legendary
Activity: 1610
Merit: 2026

Я тоже не разработчик, поэтому отвечаю в силу своего понимания принципов работы Ark.

Нет, блоки будут генериться внутри второго слоя Ark, в этом и смысл, чтобы отвязаться от основной сети и необходимости открывать-закрывать каналы. Т.е. получить сатошики можно будет от кого-то другого без открытия со своей стороны канала в основной сети, а потом отдать их кому-то другому, также без открытия канала, исключительно во втором слое. И пока срок жизни UTXO не превышает 4 недель, можно сохранять её во втором слое или тратить, а только при желании или необходимости выводить в основную сеть. Таким образом нагрузка на основной блокчейн как раз должна сильно снизиться даже по сравнению с LN.
Давайте разбираться вместе.

По сети гуляет такая картинка:

Из неё видно, что для ввода денег на второй слой Боб создаёт в основной цепи транзакцию peg-in tx. А провайдер при этом создаёт на втором слое транзакцию pool tx#0, в которой формирует виртуальные выходы, сумма которых равна выходу транзакции peg-in tx. Транзакции pool tx могут создаваться каждые пять секунд.

Что ж, вероятно, я понял неправильно. Правильнее сказать так: вводить биткоины на второй слой через одного провайдера можно не чаще, чем раз в пять секунд. Если за пять секунд никто не перевёл ничего на второй слой через данного провайдера, то никакая транзакция на основном слое не создаётся.  

Но, если опираться на эту картинку, то получается, что для внутреннего перевода (внутри протокола Ark) создаётся транзакция pool tx#1, у которой тоже есть ончейн-составляющая. Более того, ончейн-составляющая есть и у транзакции pool tx#0. Но это, скорее всего, просто неудачная картинка. Да и вообще, непонятно, насколько она «официальная».

Добавлено:
Оказывается, это вполне «официальная» картинка. Вот оригинал: https://twitter.com/ogw_yuya/status/1665190665112764419
И её ретвитнул сам разработчик протокола. Следовательно, он с ней согласен.
Кроме того, вот здесь тоже люди пытаются разобраться, как происходят переводы внутри Ark, и приводят такое объяснение:
Краткий перевод-пересказ:
У Алисы есть виртуальный выход стоимостью 500 000 сатоши в транзакции “aaa” внутри второго слоя. Алиса хочет 250 000 сатоши передать Бобу, а 250 000 сатоши - себе. Она подаёт провайдеру соответствующий запрос. На основании этого запроса и других подобных запросов провайдер составляет транзакцию “bbb”. Алиса её подписывает, это же делают все остальные, кто посылал провайдеру запросы на внутренние переводы. Получив все подписи, провайдер транслирует транзакцию “bbb”.

По-моему, слова “publishes bbb on chain” означают, что транзакция транслируется в основную сеть - на первый уровень. То есть для валидации внутренних переводов всё-таки нужны ончейн-транзакции. И они, похоже, могут инициироваться раз в пять секунд. Если запросов на внутренние переводы не было, то и транзакции не будет. А если такие запросы были, то и транзакция нужна. Всё-таки иначе без доверия проблему двойной траты вряд ли удалось бы решить.

P.S. Я нашёл ещё одно объяснение принципа работы Ark: https://gist.github.com/RubenSomsen/a394beb1dea9e47e981216768e007454
И там написано вот что:
Quote
Alice (A) holds coins with Server (S) that she can trustlessly redeem

On-chain UTXO_1 looks as follows:
A+S || S in 1 month

A has an off-chain REDEEM_TX (signed by S) that spends from UTXO_1 with the following output:
A+S || A in 1 month



Now A wants to send her coins to Bob (B)

S promises to fund and create new on-chain UTXO_2 that will look as follows:
B+S || S in 1 month

B receives an off-chain REDEEM_TX (signed by S) that spends from UTXO_2 with the following output:
B+S || B in 1 month



Алиса (А) совместно с провайдером (П) владеет ключами от выхода UTXO_1 в основной цепи, который она может потратить без необходимости доверять провайдеру:
- UTXO_1 может быть израсходован совместным решением А и П (нужны обе их подписи). По прошествии месяца для расходования UTXO_1 будет достаточно подписи П.
- В распоряжении А есть не транслированная в основную сеть транзакция, входом которой является UTXO_1, с подписью П. Для расходования выхода этой транзакции нужны обе подписи А и П, а по прошествии месяца достаточно будет только подписи А. 

А хочет отправить монеты Бобу (Б).

П формирует в основной цепи транзакцию с выходом UTXO_2.
UTXO_2 может быть израсходован совместным решением Б и П (нужны обе их подписи). По прошествии месяца для расходования UTXO_2 будет достаточно подписи П.
В то же время Б получает не транслированную в основную сеть транзакцию, входом которой является UTXO_2, с подписью П. Для расходования выхода этой транзакции нужны обе подписи Б и П, а по прошествии месяца достаточно будет только подписи Б.
Согласно этому объяснению тоже получается, что внутренний перевод требует наличия транзакции на первом слое.

Так что если исходить из пропускной способности Биткоина в семь транзакций в секунду, то 35 провайдеров Ark будут полностью забивать своими транзакциями все блоки.
legendary
Activity: 1974
Merit: 3049
Правильно ли я понимаю, что каждый провайдер создаёт транзакцию для ввода денег в систему раз в пять секунд? То есть, если во всей системе будет всего пять провайдеров, протокол Ark будет потреблять в среднем одну транзакцию в секунду? А если провайдеров будет 35, то для работы протокола нужно будет 7 транзакций в секунду? На это же не хватит пропускной способности основной цепи!

Я тоже не разработчик, поэтому отвечаю в силу своего понимания принципов работы Ark.

Нет, блоки будут генериться внутри второго слоя Ark, в этом и смысл, чтобы отвязаться от основной сети и необходимости открывать-закрывать каналы. Т.е. получить сатошики можно будет от кого-то другого без открытия со своей стороны канала в основной сети, а потом отдать их кому-то другому, также без открытия канала, исключительно во втором слое. И пока срок жизни UTXO не превышает 4 недель, можно сохранять её во втором слое или тратить, а только при желании или необходимости выводить в основную сеть. Таким образом нагрузка на основной блокчейн как раз должна сильно снизиться даже по сравнению с LN.
legendary
Activity: 1610
Merit: 2026
Правильно ли я понимаю, что каждый провайдер создаёт транзакцию для ввода денег в систему раз в пять секунд? То есть, если во всей системе будет всего пять провайдеров, протокол Ark будет потреблять в среднем одну транзакцию в секунду? А если провайдеров будет 35, то для работы протокола нужно будет 7 транзакций в секунду? На это же не хватит пропускной способности основной цепи!
legendary
Activity: 1974
Merit: 3049
24 мая Бурак Кечели опубликовал статью с презентацией нового решения второго уровня для биткойна, которое он разработал в ходе попыток улучшить Lightning Network, так что Ark, по словам разработчика, совместим с LN.

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

По аналогии с LN в Ark предусмотрены не требующие доверия промежуточные серверы Ark Service Provider (ASP), которые и обеспечивают проведение транзакций во втором слое без записи в блокчейн биткойна каждый раз. В Ark формируются виртуальные UTXO, а блоки создаются каждые 5 секунд, однако срок жизни каждой UTXO не превышает четырёх недель, поэтому пользователь должен успеть их использовать в течение этого времени.

Для повышения анонимности пользователей Ark использует CoinJoin для всех проходящих через него платежей.

Подробнее с идеей можно ознакомиться на сайте протокола https://www.arkpill.me/



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

Идея любопытная. Посмотрим, насколько она приживётся и разовьётся.
Jump to: