Из-за высоких комиссий в блокчейне вопрос альтернатив становится всё более актуальным. Поэтому я хочу рассказать о решении под названием Mercury:
https://github.com/commerceblock/mercuryИдея такая. Для избежания комиссий мы передаём друг другу не сами монеты, а ключи от них. Чтобы это работало, нужен сторонний актор, следящий за тем, чтобы отправитель ключа сам впоследствии не воспользовался этим ключом. Таким актором является сервер Mercury. Но он не может ни забрать чьи-либо биткоины, ни запретить распоряжаться ими.
Реализовано это следующим образом.
1. Внутри Mercury циркулируют только монеты определённых номиналов. Например, таких: 0.001 BTC, 0.01 BTC, 0.05 BTC, 0.1 BTC, 0.5 BTC, 1 BTC. Эти монеты называются стейткоинами (statecoins).
2. Когда Алиса вносит 0.001 BTC в свой кошелёк Mercury, они поступают на адрес Mercury, часть ключей от которого есть у Алисы, а часть - у сервера Mercury. Одновременно с внесением этой суммы создаётся транзакция на основном слое Биткоина, которая переводит эту сумму обратно Алисе. Транзакция является отложенной. Её скрипт написан таким образом, что транзакция станет валидной только по прошествии указанного в ней времени (например, через два месяца). Таким образом, даже если сервер выключат, Алиса может быть уверена, что через два месяца она получит свои биткоины обратно на её личный адрес в блокчейне.
3. Когда Алиса отправляет этот стейткоин Бобу внутри Mercury, фактически она отправляет Бобу свою часть приватных ключей и сообщает серверу, что в дальнейшем ему следует принимать эти ключи только от Боба, а не от неё. Одновременно Алиса подписывает на первом слое транзакцию, отправляющую внесённые ею 0.001 BTC с адреса Mercury на адрес Боба, и сервер со своей стороны тоже подписывает её. Транзакция является отложенной, но срок у неё чуть меньше, чем у транзакции, отправляющей эти биткоины на адрес Алисы (например, 1 месяц и 29 дней). Таким образом, транзакция, отправляющая биткоины Алисе, становится невалидной.
4. Когда Боб передаёт стейткоин Васе, происходит всё то же самое. На первом слое создаётся транзакция, которая станет валидной через 1 месяц и 28 дней с момента внесения Алисой биткоинов на адрес Mercury. До тех пор, пока эти транзакции не попали в блок, платить комиссии за них не надо. Комиссию придётся заплатить один раз, когда срок наступит. И заплатит её тот, у кого на этот момент окажется стейткоин.
По-моему, в этом есть один минус. Стейткоины с бОльшим сроком хранения объективно оказываются более ценными, чем стейткоины с меньшим сроком.
Тем не менее, Mercury вполне годится как способ избежать лишних комиссий за переводы. Вот только эти стейткоины вообще нигде не принимаются, несмотря на то, что Mercury существует уже около трёх лет. Или, может быть, кто-нибудь видел сервисы, принимающие такой способ платежа?