Pull to refresh

Comments 70

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Articles