Пошаговая инструкция: залог для сделок в bitcoin

  • Tutorial
Bitcoin очень удобен и надёжен для хранения денег, но как проводить в нём сделки? Традиционные способы включают привлечение доверенной третьей стороны. Оказывается, bitcoin так могуч, что это вовсе не обязательно. Ниже я расскажу, как двум людям, не доверяющим друг другу, провернуть сделку в bitcoin без привлечения третьих сторон.

esrowbitcoin


Сначала рассмотрим существующие способы.

Перевод bitcoin в обычные деньги для покупки


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

Привлечение гаранта


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

Как провести сделку без участия третьей стороны


Я веду к тому, что третьим сторонам в сделке вообще не место. Есть покупатель и продавец, есть система bitcoin. На этой самодостаточной системе то и дело паразитируют банки, обменники, юристы, гаранты и т.д. А ведь в протоколе bitcoin всё необходимое для страхования сделок уже есть.

Алгоритм очень простой: обе стороны переводят деньги в залог. Если сделка проходит успешно, залог возвращается, иначе пропадает.

Для начала нам понадобится познакомиться с понятием multisig-адреса. Для списания денег с multisig-адреса требуется несколько подписей. Популярны multisig-адреса 2/2 и 2/3. В случае адреса 2/2 нужны две подписи из двух, в случае 2/3 — две подписи из трёх.

Покупатель и продавец создают multisig-адрес 2/2 и переводят туда залог. Ни один из них не сможет вернуть залог без согласия другого. После этого происходит собственно сделка (будем считать что это покупка товара или оказание услуги за bitcoin). Если сделка завершается успешно (покупатель получил товар, продавец получил оплату), то участники сделки забирают залог. Если во время сделки происходит конфликт или кто-то из участников пропадает, то оба теряют залог.

Участники сделки зависят друг от друга. Риск потерять залог — не менее сильный аргумент, чем закон, на котором держатся обычные сделки. Не каждый остановится перед нарушением закона, но никто не захочет потерять залог. По-моему, в экономике деньги — это самый весомый аргумент. Нет смысла жульничать, если это заведомо приводит к убыткам.

Чтобы эта схема работала, сумма залога должна превышать цену товара. Иначе та из сторон, которая первой получит товар или оплату, может махнуть рукой на залог и пропасть. Мне кажется, что сумма залога с каждой стороны должна быть в 2 раза больше цены товара.

Ещё один подводный камень: когда один участник перевёл залог на multisig-адрес 2/2, второй участник может пропасть. Получается некрасивая ситуация: с одной стороны убытки, с другой ничего. К счастью, bitcoin позволяет застраховаться от подобных недобросовестных клиентов или шутников — перевод денег на multisig-адрес 2/2 должен проходить единой транзакцией, подписываемой обоими участниками. Или оба внесут залог, или никто не внесёт.

Итоговая схема выглядит так:
esrow

Пусть товар стоит 1 BTC. Залог: по 2 BTC с каждой стороны.

  1. Алиса и Боб создают совместный multisig-адрес 2/2, который будет использоваться для хранения залога.
  2. Алиса и Боб вместе подписывают транзакцию, которая переводит 2 BTC из кошелька Алисы на multisig-адрес и 2 BTC из кошелька Боба на multisig-адрес.
  3. Собственно сделка:
    • Алиса оказывает Бобу услуги стоимостью 1 BTC.
    • Боб переводит Алисе 1 BTC.
  4. Алиса и Боб забирают залог с multisig-адреса на свои кошельки.

Эта схема с залогом — «обёртка» для любой сделки. Заметим, что все накладные расходы сводятся к двум транзакциям bitcoin (пополнение залога и возврат залога). Если учесть ещё две транзакции, пополняющие кошельки, участвующие в сделке (см. ниже раздел «Подготовка»), то все потери, связанные с залогом, равны 4-м комиссиям bitcoin, то есть 0.0004 BTC (примерно 8 рублей по нынешнему курсу). Если сделка требует личного присутствия участников, то действия, связанные с залогом, могут быть выполнены до и после личной встречи. Кроме того, участникам сделки будет комфортней на личной встрече, если они уже связаны залогом, а не просто посторонние люди. Описанный метод работает и тогда, когда сделка не требует личной встречи (пример: житель одной страны передаёт интеллектуальный продукт жителю другой страны). Несколько последовательных сделок можно защитить одним залогом.

Практическая реализация


Графические программы, которые я проверил, не предоставляют удобного интерфейса для проведения двух транзакций, описанных выше (программы bitcoin-qt и Electrum). Решил поискать веб-решения и практически сразу нашел веб-клиент coinbin, основанный на библиотеке BitcoinJS. Клиент не зависит от сервера разработчика и не хранит ключи удалённо. Кроме того, coinbin можно скачать и использовать локально или загрузить на свой сервер. E-mail и пароль используются как seed для генерации адреса и не запоминаются. Чтобы завести несколько адресов, надо использовать несколько пар (E-mail, пароль). Чтобы не потерять доступ к кошельку, надо делать резервную копию E-mail и пароля, например в KeePassX.

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

Подготовка


  1. Алиса и Боб заводят кошельки на coinbin
    register
  2. Смотрят ключи, записывают свои приватные ключи, говорят друг другу публичные ключи и адреса
    keys
  3. Вносят сумму залога на свои адреса coinbin (по 0.01 BTC с каждого)
    add money
  4. Алиса создаёт multisig 2/2 адрес
    • Выбирает в меню MultiSig Address
      menu-multisig-address
      Открывается такая форма:
      new-multisig-address
    • Заносит в форму публичные ключи себя и Боба
      new-multisig-address-2
    • Записывает полученный адрес и Redeem Script и передаёт их Бобу
      multisig address and redeem script
  5. Боб проверяет Redeem Script
    • Выбирает раздел Verify
      verify
    • Вводит Redeem Script и проверяет публичные ключи, адрес и Required Signatures = 2
      verify Redeem Script
      Пояснение: Боб знает свой публичный адрес, а публичный адрес Алисы получил на шаге 2. Адрес кошелька multisig Боб получает от Алисы одновременно с Redeem Script. Required Signatures — это число подписей, необходимое для совершения исходящей транзакции с адреса multisig. В данном случае это число равно 2 (участников сделки 2, нужны подписи обоих из них).

Помещение денег в залог


  1. Алиса подготавливает транзакцию на адрес multisig 2/2 (пополнение залога)
    • Выбирает в меню Transaction
      menu-transaction
    • Заходит в дополнительные опции, снимает галочку Clear existing inputs...
      transaction-clear-unchecked
    • Заносит в Inputs первый платящий адрес (Алисы)
      transaction-address-loaded
    • Заносит в Inputs второй платящий адрес (Боба)
      transaction-second-address-loaded
    • Заносит в Outputs адрес multisig 2/2 и общую сумму залога за вычетом комиссии bitcoin
      transaction-output-multisig-entered
    • Получает Transaction Script и передаёт его Бобу для проверки
      transaction-script
  2. Боб проверяет Transaction Script
    • Выбирает раздел Verify
      verify
    • Вводит Transaction Script и находит в Outputs адрес multisig и сумму
      verify Redeem Script
  3. Алиса и Боб по очереди подписывают Transaction Script
    • Алиса выбирает раздел Sign
      sign
    • Алиса вводит Transaction Script и свой приватный ключ
      sign by Alice
    • Алиса получает частично подписанную транзакцию и пересылает её Бобу
      sign by Alice script
    • Боб снова проверяет транзакцию и убеждается, что адрес назначения и сумма не изменились
    • Боб доподписывает транзакцию
      (действия аналогичны действиям Алисы, но вводит частично подписанную транзакцию)

      sign by Bob script
    • Боб снова проверяет транзакцию и убеждается, что колонка Signed везде отмечена
      verify tx 1 signed
    • Боб выбирает раздел Broadcast
      Broadcast
    • Боб вводит Transaction Script и нажимает Submit
      Broadcast

Теперь деньги помещены в залог и можно перейти к сделке как таковой.

Возвращение денег из залога


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

  1. Алиса подготавливает транзакцию с адреса multisig 2/2 (возврат залога)
    • Выбирает в меню Transaction
      menu-transaction
    • Удаляет все входы и выходы, оставшиеся от прошлой транзакции
      transaction-2-empty
    • Заносит в первое поле Redeem Script (см. раздел Подготовка)
      transaction 2 Redeem Script
    • Заносит в Outputs получающие адреса Алисы и Боба и суммы
      transaction 2 outputs
    • Получает Transaction Script и передаёт его Бобу для проверки
      transaction-script
  2. Боб проверяет Transaction Script (находит свой получающий адрес и сумму)
  3. Алиса подписывает Transaction Script и передаёт Бобу
  4. Боб снова проверяет Transaction Script (находит свой получающий адрес и сумму)
  5. Боб подписывает Transaction Script и результат транслирует (broadcast)

Деньги перемещены из залога на получающие адреса Алисы и Боба. Сделка завершена.

Выводы


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

Приветствуются предложения по улучшению алгоритма и ПО, автоматизирующее алгоритм в большей степени.

GitHub разработчика: github.com/OutCast3k/coinbin
Адрес Bitcoin разработчика: 1CWHWkTWaq1K5hevimJia3cyinQsrgXUvg
Мой адрес Bitcoin: 1CsfihQGy5kg3nnTJLzfmNDiPGqiQgdeMz

UPD. Перевод этой статьи на английский язык.
UPD2. Проект, реализующий обмен биткоинов P2P: www.coinffeine.com. Описание алгоритма работы. Как я понял, перевод расщепляется на много мелких частей, что снимает риск потери большого количества денег, но имеет свои недостатки. Статья о coinffeine на русском языке. Спасибо danaki за ссылку.
Share post

Comments 70

    –5
    За интересную статью спасибо! Но к сожалению в нашей стране Bitcoin вне закона…
      +13
      Во-первых, закон ещё не принят и не факт, что будет принят (это уже вторая попытка принять такой закон). Во-вторых, не все читатели хабра живут в этой замечательной стране.
      • UFO just landed and posted this here
        0
        По моему, этот запрет может распространяться на организации. Частным лицам запретить обмениваться байтиками по моему юридически невозможно, так как это ограничение на свободу слова.
          +2
          Как связано использование BitCoin и свобода слова?
            0
            Я передаю другим конкретным людям с их согласия какую-то информацию не предоставляя и не требуя каких-либо юридических гарантий.
            Информация не содержит персональных данных, гостайны, формально даже не комменческая информация. Это не публичная публикация.
            Как такой обмен можно запретить, не нарушая свободы слова?
              +5
              Предположим, что принимаемые законы РФ не противоречат конституции РФ. Но даже там сказано следующее: «Каждый имеет право свободно искать, получать, передавать, производить и распространять информацию любым законным способом.» Отсюда вывод: если способ распространения (например, протокол bitcoin) признать незаконным, то конституция больше не гарантирует право людей на распространение информации таким способом.

              К сожалению, в законодательстве не закреплены свободы ИТ: признание единства информационного пространства, свободный обмен любой информацией по сети, отсутствие цензуры сети, отказ от понятий «запрещённая информация» и «информационная война», право на шифрование и неприкосновенность ЖД пользователей и т.д. Свободы слова и права на тайну переписки явно недостаточно для настоящей свободы ИТ. Более того, усилиями борцов с пиратством и «незаконной информацией» свободы ИТ утрачиваются одна за одной.
                +2
                А еще там написано что свободы могут быть ограничены при необходимости :)
                  0
                  А если создавать кошелёк, наполнять его, а потом отдавать с ключём не по протоколу bitcoin (это вроде возможжно?), то незаконен только перевод из одного своего кошелька в другой? Правда без этой операции будет трудно обойтись, только если ручками ключи в одном файле стереть в другом добавить, перед этим расшифровав, а после зашифровав и хз поддерживается ли такое системой.
                    0
                    На coinb.in это совсем несложно: достаточно скопировать и передать e-mail и пароль, а ключи однозначно генерируются из них. Есть и другие программы, например, Electrum. В Electrum для передачи всего кошелька, в котором может быть сколько угодно адресов, надо передать только 12 слов, в которых закодирован seed. А можно передать Master Public Key и получатель будет видеть список адресов и операций по ним, но не сможет тратить эти деньги. Чудаса криптографии эллиптических кривых.
                  0
                  Кстати, действительно ли по нормам нашего законодательства номера электронных кошельков не являются персональными данными? В 261-ФЗ сказано, что «персональные данные — любая информация, относящаяся к прямо или косвенно определенному или определяемому физическому лицу (субъекту персональных данных);» Всевозможные идентификаторы (скайпа, аси, биткоина, вебмани) все же как минимум косвенно относятся к определенному физическому лицу.
                    0
                    Если адресом пользовались анонимно, то по нему нельзя даже косвенно определить, чей он, значит он в данном случае не является ПД. С другой стороны, скачивая к себе весь блокчейн, пользователь передаёт по сети в том числе и неанонимные адреса, которые вроде бы являются ПД. Но вот если пользоваться тонкими клиентами, то получаешь информацию только по своим адресам, значит закон вроде бы не нарушаешь.
                      0
                      В законодательстве не сказано, можно определить чей конкретно атрибут или нельзя. Там сказано, «относящийся прямо или косвенно к определенному лицу». Больно широкое определение законодатель установил. В этом смысле биткоин адрес относится к определенному лицу. Это лицо трудно установить, спору нет.
                        0
                        В этом смысле биткоин адрес относится к определенному лицу.

                        Так ведь любой поток данных, передаваемых по сети, относится к определённому лицу, если инициирован этим лицом.
                          0
                          Нет, главная страница условного хабра всем показывается одна. Не говоря о multicast.
              +2
              Вот не надо этого. В нашей стране он не запрещён.
                +1
                а bitcoin — вне стран.
                +3
                А что будет если одна из сторон не выполнит свои обязательства из-за непредвиденных обстоятельств? Например, после внесения залога сторонами, продавец отправил товар покупателю, и тот его получил. Но не успел рассчитаться и умер. В таком случаем продавец теряет и сам товар и залог превышающий в два раза стоимость товара. Покупатель тоже теряет залог, но ему уже всё равно так как он мёртв. Самое интересное, кому достаётся залог после таких несостоявшихся сделок?
                  +1
                  Да даже не в случае обычной мести: продавец хочет насолить покупателю, получает от него оплату, товар не высылает. У продавца убыток -1, у покупателя -3.
                  Самое интересное, кому достаётся залог после таких несостоявшихся сделок?

                  Теряется скорее всего. Как забытый кошелёк.
                    0
                    Какой смысл «солить» покупателю, если это влечёт собственные убытки, путь и меньшие?
                      0
                      Да дофига вариантов: разорить кого-то, обладая информацией, что залог жизненно важен для него. Шантажировать (ниже написали), да мало ли что…
                        0
                        Не надо отдавать в залог (и куда-либо) последние гроши. Да, для описанной схемы требуется в 3 раза больше денег, чем для незащищённой сделки, но это плата за страховку. В отличие от традиционных способов, эта схема не лишает людей анонимности и не включает накопление репутации, поэтому узнать, насколько важен для человека залог, и продать эту информацию довольно нелегко. Покупатель и продавец видят друг друга в первый и последний раз и не обмениваются информацией о прошлых сделках. Нет смысла мстить, шантажировать и мошенничать — в всех случаях это приведёт только к убыткам.
                          0
                          Вроде как биткоин не обеспечивает анонимности сам по себе
                          ru.bitcoinwiki.org
                          Если только как часть комплекса мер по сокрытию чего-то.
                            0
                            Согласен, это только часть мер по поддержанию анонимости сделки. Акцент был сделан не на том, что описанный алгоритм создаёт анонимность (что неверно), а на том, что он её не лишает, в отличие от классических способов.
                      +1
                      В моей версии было всё сложнее, так как на стандартных протоколах это пока не сделать, но надеюсь, что дойдёт и до дела:
                      — двойной залог вносит только продавец, покупатель вносит сумму платежа в залог;
                      — после удачного получения товара весь залог переходит продавцу.

                      В случае неудачной трансакции (по факту истечения срока давности) была идея автоматически переводить деньги в некий фонд, который бы поддерживал майнеров, например, или даже поддержку и разработку протокола и софта.
                      Фонд, конечно, сомнительная штука, хотелось бы его иметь автоматизированным или как-то «народно» управляемым. Но такое управление финансами похоже на прямую цифровую демократию, внедрение и эффективность которой — вопрос из немного другой области.
                        0
                        Так формально «продавец» ничем не отличается от «покупателя», то есть по умолчанию оба они считаются мошенниками. От этого и надо отталкиваться, что каждый из них хочет нае обмануть другого.
                          0
                          продавец — это тот, кто инициирует обмен, создаёт предложение.
                          покупатель — это тот, кто реагирует на предложением той суммой криптовалюты, что запрашивает продавец.

                          мошенники могут быть оба, не спорю.
                          покупатель подтверждает своё участие суммой равной покупке, продавец же имеет возможность размером залога (отношением к стоимости) убедить покупателя, что предложение серьёзное.
                          0
                          Мне кажется, что протокол биткоин поддерживает ровно то, что вы предлагаете. Для этого надо создать транзакцию с NLockTime. Эта транзакция будет переводить все средства залога в какой-нибудь фонд. Эта благотворительная транзакция подписывается сторонами ещё до перемещения средств в залог (точнее, до подписания транзакции, переводящей средства в залог, если быть точным).

                          В качестве благотворительной транзакции предлагаю использовать OnionTip, в котором средства сразу переводятся операторам торовских нод, указавшим адрес биткоин в описании ноды. Майнеры и так получают вознаграждение, а вот операторы торовских нод в качестве материального вознаграждения получают разве что футболку с логотипом Tor.

                          В то же время я против того, чтобы стороны вносили разный залог, так как каждый из них не доверяет другому, следовательно потери в случае мошенничества должны быть равными.
                      0
                      Залог теряется, так как для его использования нужны подписи обеих сторон, а одна из них умерла. Всё-таки смерть покупателя в момент между получением товара и оплатой — маловероятное событие, а вот если бы залога не было, то у покупателя был бы соблазн пропасть сразу после получения товара.
                        +1
                        Залог недостается никому, очевидно же. Однако, смерть контрагента — не настолько частое событие.

                        Хуже другое. Если одному из контрагентов деньги сильно нужнее, чем другому — открывается возможность для шантажа залогом вроде такого: «я-то без залога проживу, а вот тебе есть нечего. Так что давай ты мне 10% своего залога просто так отдаешь — а я наконец-то разрешу тебе остальные 90% забрать».
                          0
                          В таком случае оба останутся ни с чем.

                          Впрочем, надо подумать над схемой, где возвратный платёж фиксируется в момент создания адреса multisig. То есть, единственный способ возвращения залога — поровну. Если мне не изменяет память, биткоин это позволяет.
                            0
                            Тогда теряется смысл залога.
                              +1
                              Вы про первую часть моего комментария или про вторую? В обоих случаях смысл залога — сделать разрыв сделки и мошенничество невыгодным обеим сторонам. Обратная сторона медали — иногда происходит утрата залога. Но без этого схема бы не работала.
                        +5
                        Т.е. чтобы купить, допустим, машину за биткоин, мне надо иметь при себе 3х сумму? Отличный план.
                          –2
                          Если бы это был отличный план — он бы повсеместно применялся. Про этот способ все интересующиеся знали, но он имеет крупные недостатки, два из которых уже озвучили.
                            0
                            Похожей схемой пользуются при сделках через blockchain.info, но там используется multisig 2/3 и нет залога, то есть добавляется третья сторона — арбитр, которая вместе с одной из сторон может потратить залог в случае конфиктов. Мне эта схема не нравится из-за необходимости доверять арбитру (выше я писал про недостатки гарантов — они и к арбитрам относятся). Лучше пусть жулик знает, что его деньги пропадут в случае обмана, чем у него будет возможность договориться с арбитром и украсть деньги. Кроме того, с чисто технической точки зрения кошельки на blockchain.info мне нравятся меньше, так как приходится доверять серверу.
                              0
                              Я имел ввиду не сам механизм, а залог, при том значительный. Чем он больше — тем надёжнее, чем меньше — тем удобнее. В итоге это соотношение далеко от золотой середины, когда его можно использовать в отношении продавец-покупатель вообще не прибегая к доверию.
                                0
                                Если товар или услугу можно разделить на части, то можно и сделку разделить на части, размер которых каждый раз удваивается: 1 банан, 2 банана, 4 банана и т.д. Конфликты обычно проявляются на ранних стадиях и теряется небольшой залог. Залог тоже наращивается, а потом за 1 раз снимается, либо снимается после каждой итерации.
                              0
                              Это был сарказм.
                                0
                                Я понял :)
                              +11
                              А чтобы продать машину за биткоин, нужно иметь при себе 2х сумму. План еще отличнее, чем вы думали :)
                                0
                                Если Вы еще хотите при этом сохранить анонимность.
                                  0
                                  см. мой комментарий выше, где такая участь постигает лишь продавца.

                                  Плюс, коэффициент залога от продавца можно сделать гибким, чтобы пользователь по нему судил, доверять или нет такому продавцу.
                                  +2
                                  А как на счёт такого варианта…

                                  Продавец получает деньги 1х (один икс, считаем что залог 2х) и заявляет что товар он высылать и не собирался, а у покупателя теперь есть два варианта: а) «наказать» продавца при этом потеряв в деньгах 3х и б) проглотить обиду, подписать возврат залога чтобы получить обратно свои 2х и «попасть» только на 1х. Что — то мне подсказыват, что в реальной жизни выбравших вариант б) будет сильно много больше. В первом случае продавец теряет 1х, во втором получает 1х. Если вторых случаев больше, то схема будет работать, что сразу же поставит крест на Вашей системе с залогом.
                                  Подскажите, где я не прав?

                                  Видимо без арбитра никак.

                                  Не поймите меня неправильно, статья отличная, мне тоже хочется придумать схему без третьих лиц и Ваша идея изменила направление раздумий :)
                                    0
                                    Спасибо за комментарий! Меня тоже такие мысли посещали.

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

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

                                    В теории игр есть известная задача "Дилемма заключённого". Я думаю, как будет выглядеть матрица для описанного алгоритма. Есть идеи?
                                      0
                                      увеличить залог, чтобы снизить относительную прибыльность такого мошенничества

                                      Уже говорил — снизит удобство, так как чем надёжнее требуется сделка, тем большая сумма залога нужна. А она и так должна быть как минимум двухкратна по стоимости, и при крупных сделках могут возникнуть проблемы.
                                      после зачисления денег в залог кидать монетку

                                      Вариант, просто делящий вероятность мошенничества пополам. Хотя лучше, чем ничего :)
                                        0
                                        При купных сделках сложно остаться анонимным — покупка дома или авто требует договора и оформления докуменов в любом случае, так что отказ от гаранта не даст никакого выигрыша (кроме комиссионных). А для маленьких сделок x2 вполне приемлемо.
                                          0
                                          Ну почему сразу дом или авто, и обязательно с договором? Это может быть что-то нематериальное, например информация, тем более если очень серьёзная, то при сделке лучше оставаться анонимным.
                                            0
                                            Адепт Столлмана как то не подумал, что информацию можно продать :-).
                                            Информацию можно продавать частями, за несколько итераций (выше уже говорили об этом).
                                              +1
                                              — Я меееедненно отправляю вам файл for_wikileaks.rar.003… Ваши средства иссякли, продлевать будете?
                                      0
                                      А что если вот так?
                                      — двойной залог вносит только продавец, покупатель вносит сумму платежа в залог;
                                      — после удачного получения товара весь залог переходит продавцу.
                                      0
                                      А с чем связано правило «стоимость залога должна быть в два раза больше стоимости товара»? Ведь можно оставить залог в однократном размере. Просто продавец должен иметь сумму, равную стоимости товара.
                                      Если продавец не отправил товар, он просто не получит его стоимость из залога обратно.
                                      Если покупатель не завершает сделку, то он платит двойную цену за товар.
                                      В некоторых ситуациях сумму залога можно ещё уменьшить.
                                        +2
                                        Предположим, что залог 1X. Если покупатель платит за товар первым, то продавац получает сумму, равную сумме залога, и может пропасть, оставшись на нуле и оставив покупателя в убытках, равных 2X. Если продавец первым отправляет товар, то покупатель может пропасть, получив товар: в залог он заплатил как раз стоимость товара, а провадец получает двойной убыток.
                                        0
                                        А возможно ли сделать мультисиг с неравными долями, где доля покупателя равна 2х, а продавца 1х и чтобы после совершения сделки, участник получал залог контрагента? Тогда покупателю не надо платить отдельной транзакцией — цена товара уже в залоге.
                                          0
                                          На сколько понял это невозможно. А идеальным(почти) вариантом был бы, если покупатель скидывает например «2х», а продавец «х» на «обмен», при этом отменить (вернуть деньги покупателю и себе) может только продавец, а подтвердить перевод только покупатель. Или чтобы только покупатель скидывал «1х», а продавец ничего, но без подтверждения или отмены спустя определённое время у каждого берётся комиссия у покупателя, например, равная 100% «перевода», а у продавца 200%, чтобы всё поровну.
                                            0
                                            а у продавца 200%

                                            Откуда? Со счёта в банке?
                                              0
                                              С кошелька биткоин, вот только если «финансов» недостаточно, то минуса у биткоина быть не может, это да, косяк.
                                                +2
                                                Если бы минус был, то можно было бы делать деньги из воздуха, переводя с одного пустого кошелька на другой. Ведь нет средства принудить вернуть «долг». И это как раз и отличает биткоин от традиционных денег.
                                            0
                                            Очень интересный вариант. Вот только отмена и подтверждение будут 2 разные операции.
                                              0
                                              Адрес multisign может включать сколько угодно публичных ключей и для списаний можно потребовать любое количество из них. В статье использовались адреса 2/2, а можно сделать 3/3 или 2/3. Чтобы доля покупателя была 2x, в адрес multisign надо заложить два ключа, принадлежащих покупателю, а не один. Однако я не понял, как это поможет. Или контрагент — это тот же гарант?
                                              0
                                              Во-первых гарантов может быть больше одного (multisig теоретически не ограничивает количество подписантов www.coinside.ru/2014/03/02/multisig-tranzaktsii-ili-novye-vozmozhnosti-dlya-internet-torgovli/). Во-вторых, у вас всегда есть выбор между гарантом, который заслужил репутацию и берет больше и гарантом без репутации, который берет себе меньше комиссионных, так что про централизацию говорить также нельзя. В-третьих, я не знаю, согреет ли это кому душу, но в вашем примере никто в итоге не получит денег в случае диспута, а в случае с арбитром хоть кто-то. Но наличие выборв — это всегда хорошо, к сожалению multisig пока не слишком популярны даже в целях 2-ух факторной авторизации транзакций.
                                                0
                                                1. В случае конфликта у мошенников будет больше рычагов влияния на гаранта, чем у честного человека.
                                                2. Гарантов сильно меньше, чем участников рынка, но они участвуют во всех сделках — это и есть централизация. Преимущество получают крупные гаранты, из-за чего становятся ещё крупнее. Для гарантов выполняется правило пива: 20% гарантов контролируют 80% сделок.
                                                3. Кроме того, гарант — это ещё один человек, который может оказаться федералом, поэтому отказ от гарантов особенно актуален в отраслях экономики, притесняемых со стороны властей (как выше отмечали, в скором времени всё, что связано с биткоином, может оказаться под таким давлением). Властям достаточно завербовать те 20% гарантов, которые контролируют 80% сделок, чтобы поставить рынок на колени.

                                                Таким образом, гаранты — это временное решение, используемое до тех пор, пока нет хорошей p2p альтернативы. Мой алгоритм — не идеальное решение, наверняка можно лучше, и в комментариях уже предложили несколько улучшений.
                                                  0
                                                  1. Почему больше?
                                                  2. Про правило Паретто я знаю, но здесь оно не применимо, так как это голословные утверждения. Вот вам список эскроу www.bitrated.com/u и вы можете выбрать кого душе угодно, от настоящих лицензированных юристов с пруфами, до скромных программистов. Список состоит из опытных, авторитетных и новичков. Наличие профессиональных продавцов с тысячами сделок на eBay не отменяет длинный хвост из продавцов поменьше, у которых тоже покупают.
                                                  3. Гарант может оказаться федералом, ваш партнер может оказаться федералом, вы сами можете оказаться федералом. От подобного не застрахуешься. В случае с арбитром вы просто должны выбрать кого-то кто точно НЕ федерал, вдвоем с партнером акцептировать личность и не раскрывать ее, чтобы не дай Б-г и к нему не нагрянули федералы. Вобщем эта проблема может и существует на различных черных рынках вроде торговых площадок наркотических веществ, но на сколько это реально проблема, которую непременно так как предложено надо решать, мне не известно.

                                                  Гаранты не временное решение. То, что вы предлагаете — это аналогия тритейского суда. В то же время не всегда и не для всех сделок он подходит. Как и в случае с тритейскими судами мошенник может вам подсунуть своего судью до совершения сделки, но вас никто не заставляет соглашаться, а согласившись вы сами засовываете голову в петлю.

                                                  Когда вам придет пустая коробка без содержимого вместо посылки и никакого арбитра вами до этого выбрано не было, то вы потеряете зажатые деньги, а вот мошенник просто повеселится. Это будут совершенно глупо потерянные деньги без надежды вернуть. Но я повторюсь, что выбор — это хорошо.
                                                    0
                                                    Когда вам придет пустая коробка без содержимого вместо посылки и никакого арбитра вами до этого выбрано не было, то вы потеряете зажатые деньги, а вот мошенник просто повеселится.
                                                    В чем веселье-то? Он ведь тоже потеряет залог! Обе стороны засовывают свои головы в одну петлю, которую можно снять только одновременно с обоих.
                                                      0
                                                      Да, веселья мало, но в случае продавца я уже рискую послав вам вещь, а дополнительно еще и залогом. Вобщем все это скорее специфика и может и нужно когда совсем хочется обойтись без арбитра, но на практике не уверен что лучше.
                                                        0
                                                        Без арбитра риска не избежать, а единственное, что может его компенсировать — равный риск с другой стороны. Если оба участника честны, то бояться им нечего, а если один из них мошенник, то и с арбитром риск остаётся, но только с одной стороны. Вот только не сунется мошенник в мою схему, а в схему с арбитром — запросто. Сейчас объясню, почему.

                                                        Пример: допустим, вы хотите купить у меня принтер. Мы находим арбитра. Вы вносите деньги на счёт, с которого можно списать при согласии двух из троих (я, вы, арбитр). После этого я отправляю вам принтер почтой России, сообщаю арбитру трекинг-код. Вы забираете посылку, приносите домой, а там груда рухляди вместо принтера. Вы жалуетесь на меня арбитру, а он смотрит по трекинг-коду: посылку-то забрали. И принимает мою сторону. Наверняка мошенники придумывают что-нибудь ещё хитрее, чтобы запутать арбитра. А в моей схеме нет третьих сторон, поэтому запутать или обмануть не выйдет, а значит и поживиться за чужой счёт не выйдет, поэтому мошенников такая схема не привлекает.
                                                          0
                                                          Я соглашусь и спор не продолжу. Лично я как покупатель скорее бы подписался на схему с арбитром. В случае, если я продавец, то наверное тоже, с арбитром — не хватало мне потерять товар и еще и залог (если я правильно понимаю). Но это при условии, если я умею выбрать арбитра либо он был выбран нами действительно случайно и у арбитра есть некоторая репутация. Это при условии что мы занимаемся торговлей чем-то легальным, не дорогим и при этом я сам не мошенник.

                                                          Выбрал бы схему без арбитра, но с потерей залога я при условии, что мы занимаемся чем-то не в полне легальным и высокомаржинальным, чтобы продавец не очень страдал от потери залога, например торговлей веществами.
                                              • UFO just landed and posted this here
                                                  0
                                                  Это баг любой схемы, основанной на залоге. Если человек не боится потерять деньги, то залог — плохой рычаг воздействия на него. Но много ли таких людей и какие цели они преследуют? А ведь риск потерять залог окончательно потерять деньги при таком подходе есть, так как вторая сторона за эти годы тоже может куда-нибудь пропасть или умереть, например.

                                                Only users with full accounts can post comments. Log in, please.