Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
14 февраля 2016, 10:53:32 PM   # 1
 
 
Сообщения: 1162
Цитировать по имени
цитировать ответ
по умолчанию Re: Атомные свопы с помощью разреза и выберите

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
продолжается от как это кажется, что ОП запер по какой-то причине ...

Код:
   // Четыре начальные состояния BOB_sentoffer, ALICE_gotoffer, ALICE_sentoffer, BOB_gotoffer
    // инициатор включает в себя подписанный feetx и колоду 777 пары ключей
    // ответчик выбирает один из 777 и возвращает его "BTCchose" сообщение
    //
    // "BTC<тзд> являются событие сообщений от другой стороны (событие сообщений ограниченно в длине 8)
    // "lowercas" специальные мероприятия, <Техас> типы: <плата>, <отд>osit, <альт>оплата, это требование altcoin
    // "<Техас>найденный" означает, что другая сторона подтвердится на заданном пользователем уровне доверия
    // BTC_cleanup состояние только раскручивается незавершенным своп, как ничего не был совершен еще
   
    // состояния instantdex_statecreate (S, N,<Название государства>, HandlerFunc, ErrorHandler,<государство Тайм-аут>,<государство Ошибка>
    // данное состояние имеет несколько обработчиков и пользовательских событий, с таймаутов и ошибок, ссылающихся байпас
    s = instantdex_statecreate (с, п,"BTC_cleanup", BOB_processfunc, 0,0,0);
    s = instantdex_statecreate (с, п,"BOB_claimdeposit", BOB_processfunc, 0,0,0);
    s = instantdex_statecreate (с, п,"ALICE_reclaim", BOB_processfunc, 0,0,0);
 
    s = instantdex_statecreate (с, п,"BOB_sentoffer", BOB_processfunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"BOB_sentprivs", BOB_processfunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"BOB_gotoffer", BOB_processfunc, 0,"BTC_cleanup", 0);
   
    s = instantdex_statecreate (с, п,"ALICE_sentoffer", ALICE_processfunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"ALICE_gotoffer", ALICE_processfunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"ALICE_sentprivs", ALICE_processfunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"ALICE_wait3", ALICE_processfunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"ALICE_waitfee_privs", ALICE_processfunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"ALICE_waitdeposit_privs", ALICE_processfunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"ALICE_waitfee_deposit", ALICE_processfunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"ALICE_waitprivs", ALICE_processfunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"ALICE_waitfee", ALICE_processfunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"ALICE_waitdeposit", ALICE_processfunc, 0,"BTC_cleanup", 0);
   
    s = instantdex_statecreate (с, п,"BOB_sentdeposit", BOB_processfunc, 0,"BTC_claimdeposit", 0);
    s = instantdex_statecreate (с, п,"BOB_altconfirm", BOB_processfunc, 0,"BTC_claimdeposit", 0);
    s = instantdex_statecreate (с, п,"ALICE_sentalt", ALICE_processfunc, 0,"BTC_claimdeposit", 0);
    s = instantdex_statecreate (с, п,"ALICE_waitconfirms", ALICE_processfunc, 0,"BTC_claimdeposit", 0);
    s = instantdex_statecreate (с, п,"BOB_sentpayment", BOB_processfunc, 0,"BTC_claimdeposit", 0);
 
    s = instantdex_statecreate (с, п,"ALICE_claimedbtc", BOB_processfunc, 0,0,0);
    s = instantdex_statecreate (с, п,"BOB_claimedalt", BOB_processfunc, 0,0,0);

    // события instantdex_addevent (s, * п,<Текущее состояние>,<мероприятие>,<сообщение для отправки>,<Далее государство>)
    instantdex_addevent (с, * п,"BOB_sentoffer","BTCchose","BTCprivs","BOB_sentprivs");
    instantdex_addevent (с, * п,"BOB_sentprivs","feefound","BTCdeptx","BOB_sentdeposit");
    instantdex_addevent (с, * п,"ALICE_sentoffer","BTCchose","BTCprivs","ALICE_sentprivs");
   
    // gotoffer государства отправлено BTCchose уже
    instantdex_addevent (с, * п,"BOB_gotoffer","BTCchose","BTCprivs","BOB_sentprivs");
    instantdex_addevent (с, * п,"ALICE_gotoffer","BTCchose","BTCprivs","ALICE_sentprivs");
   
    // алиса нужно ждать различных предметов
    instantdex_addevent (с, * п,"ALICE_sentprivs","BTCdeptx", 0,"ALICE_wait3");

    // следующие состояния охватывают все перестановки три необходимых мероприятий, чтобы сделать altpayment
    instantdex_addevent (с, * п,"ALICE_wait3","feefound", 0,"ALICE_waitdeposit_privs");
    instantdex_addevent (с, * п,"ALICE_wait3","depfound", 0,"ALICE_waitfee_privs");
    instantdex_addevent (с, * п,"ALICE_wait3","BTCprivs", 0,"ALICE_waitfee_deposit");
   
    instantdex_addevent (с, * п,"ALICE_waitfee_privs","feefound", 0,"ALICE_waitprivs");
    instantdex_addevent (с, * п,"ALICE_waitfee_privs","BTCprivs", 0,"ALICE_waitfee");
   
    instantdex_addevent (с, * п,"ALICE_waitdeposit_privs","depfound", 0,"ALICE_waitprivs");
    instantdex_addevent (с, * п,"ALICE_waitdeposit_privs","BTCprivs", 0,"ALICE_waitdeposit");
   
    instantdex_addevent (с, * п,"ALICE_waitfee_deposit","depfound", 0,"ALICE_waitfee");
    instantdex_addevent (с, * п,"ALICE_waitfee_deposit","feefound", 0,"ALICE_waitdeposit");
   
    // ждать последнего события и разослать altpayment
    instantdex_addevent (с, * п,"ALICE_waitprivs","BTCprivs","BTCalttx","ALICE_sentalt");
    instantdex_addevent (с, * п,"ALICE_waitfee","feefound","BTCalttx","ALICE_sentalt");
    instantdex_addevent (с, * п,"ALICE_waitdeposit","depfound","BTCalttx","ALICE_sentalt");

    // Теперь очередь Боба, чтобы убедиться, что altpayment подтверждается и отправить реальный платеж
    instantdex_addevent (с, * п,"BOB_sentdeposit","BTCalttx", 0,"BOB_altconfirm");
    instantdex_addevent (с, * п,"BOB_altconfirm","altfound","BTCpaytx","BOB_sentpayment");
   
    instantdex_addevent (с, * п,"ALICE_sentalt","BTCpaytx", 0,"ALICE_waitconfirms");
    instantdex_addevent (с, * п,"ALICE_waitconfirms","bobfound", 0,"ALICE_reclaim");
    instantdex_addevent (с, * п,"ALICE_waitconfirms","payfound","BTCprivM","ALICE_claimedbtc");
 
    // если BTCprivM не приходит в, altcoin необходимо контролировать по претензии Элиса
    instantdex_addevent (с, * п,"BOB_sentpayment","aclfound","BTCdone","BOB_claimedalt");
    instantdex_addevent (с, * п,"BOB_sentpayment","BTCprivM","BTCdone","BOB_claimedalt");
 

котировка
Я не прошли через это шаг за шагом, но это хороший способ сделать это.

В любое время каждая из сторон находится в данном состоянии не так ли? Почему существует 4 состояния запуска? Разве это не должно быть просто, что Боб находится в одном состоянии и Алиса в другой?

Например, Боб начинает в BOB_start и Алиса начинает в Alice_waiting_for_trade_request, или что-то подобное.

Если узел получает предложение от другой стороны, то она создает поток для его обработки, как право веб-сервер?

Я предполагаю, что означает, что Алиса эффективно начинается Alice_received_trade_request, или эквивалент. Поскольку waiting_for_trade_request неявно путем прослушивания сокета.

Bob_start заставляет Боб отправить свое предложение, а затем переход к Bob_offer_sent.

Bob_offer_sent может тайм-аут в течение 30-60 секунд и вызвать Боб переход к Bob_cancel_offer. С другой стороны, это Алиса принимает предложение, они могут перейти к вознаграждению и 777 пар обмена. Там нет смысла тратить обработки, если другая сторона не принимает торговлю.

Я думаю, это зависит от того, как мелкозернистого разрешение состояния должно быть.

Кроме того, может быть шагом, где обе стороны решают, кто Алиса и кто Боб, так как человек, который предлагает сделку, не обязательно быть Боб.
Для того, чтобы избежать безумия я всегда назначают сторону Bitcoin как Боб и сторону altcoin как Алисе. Те путь все направления и сценарии всегда одинаковы.

Выполнение мудр, да можно иметь только одно исходное состояние для обеих сторон, однако мы имеем ситуацию, что любая из сторон может быть первым, чтобы поместить цитату в портфель заказов, то есть предложение или спросить, и это создает 4 возможных стартовых состояний с 2-мя сторонами.

алиса начинается с торгами, алиса начинается с спросить, боб начинается с торгами, боб начинается с спрашивать.

обратите внимание, что алиса может быть в двух из этих состояний в то же время, на самом деле N из них, используя подход, состояние машины каждой сделки, которая соответствует является его собственным состояние машины, относительно независимо от других (некоторых деталей, как общий доступного баланс против случайно больше были положить в портфеле заказов, чем имеющиеся средства, существующие сделки, которые находятся на рассмотрении)

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

Джеймс
jl777 сейчас офлайн Пожаловаться на jl777   Ответить с цитированием Мультицитирование сообщения от jl777 Быстрый ответ на сообщение jl777


Как заработать Биткоины?
Без вложений. Не майнинг.


14 февраля 2016, 11:51:02 PM   # 2
 
 
Сообщения: 1148
Цитировать по имени
цитировать ответ
по умолчанию Re: Атомные свопы с помощью разреза и выберите

Получил 1806 Биткоинов
Реальная история.





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

Я заметил, что у вас есть одна функция обработки (BOB_processfunc для Боба). Вы могли бы, возможно, уменьшить беспорядок, имея другой обработчик для каждого состояния.

Это все детали реализации, но я понимаю, что это полдела. Основное описание не требует сведений о том, как проверить подписи и т.д., но это очень важно, чтобы каждый шаг правильно установлен.

Например, CPRKV BIP следует очень четко определить форматирование двух ключей. Кто-то может быть в состоянии взломать протокол, используя плохо закодированные ключи или что-то.
TierNolan сейчас офлайн Пожаловаться на TierNolan   Ответить с цитированием Мультицитирование сообщения от TierNolan Быстрый ответ на сообщение TierNolan

15 февраля 2016, 9:58:53 AM   # 3
 
 
Сообщения: 1372
Цитировать по имени
цитировать ответ
по умолчанию Re: Атомные свопы с помощью разреза и выберите

продолжается от как это кажется, что ОП запер по какой-то причине ...
Благодаря!!  
смотрел снова !!  
yassin54 сейчас офлайн Пожаловаться на yassin54   Ответить с цитированием Мультицитирование сообщения от yassin54 Быстрый ответ на сообщение yassin54

15 февраля 2016, 11:27:27 AM   # 4
 
 
Сообщения: 1162
Цитировать по имени
цитировать ответ
по умолчанию Re: Атомные свопы с помощью разреза и выберите

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

Я заметил, что у вас есть одна функция обработки (BOB_processfunc для Боба). Вы могли бы, возможно, уменьшить беспорядок, имея другой обработчик для каждого состояния.

Это все детали реализации, но я понимаю, что это полдела. Основное описание не требует сведений о том, как проверить подписи и т.д., но это очень важно, чтобы каждый шаг правильно установлен.

Например, CPRKV BIP следует очень четко определить форматирование двух ключей. Кто-то может быть в состоянии взломать протокол, используя плохо закодированные ключи или что-то.
Да, FSM был в первом черновом состоянии и существует компромисс между очень гранулированных processfuncs против дублирования кода, но я думаю, что следующее значительно улучшилось, и, кроме точных переходов для всех возможных ошибок после того, как деньги привержен, я думаю, это твердое вещество. Но я не уверен, что у меня есть все состояния ошибки для обеих сторон быть обработаны должным образом.

Это где FSM намного лучше, чем английский, чтобы указать вещи и является "детали реализации" что полностью в области спецификации, особенно когда один пропущенное событие ошибки может означать потерю средств!

Оно не очень понятно, но в создании государственной функции можно указать новое состояние, чтобы пойти в случае тайм-аута (макс таймаута для боба и половину максимальной для Алисы?) И другое состояние, если другая ошибка происходит, то есть некоторые неожиданные событие (не уверен, что просто следует игнорировать) или разъединение. Мы могли бы указать все возможные типы ошибок, которые могут произойти и имеют общую обработку ошибок.

Во всяком случае, здесь пересмотренная FSM, все тайм-аут состояния вызывается, если мы проходим половину maxtime для Алисы или maxtime для Боба. Говоря о времени, с возможными +/- 2 часа на метку времени BTC, если события тайм-аута запуска на основе локальных часов на каждом узле, если нам нужно раздуть параметр CLTV на 2 часа, чтобы предотвратить гонку (или хуже) условиях. И если мы добавляем 2 часа, как это влияет на исковые окна, если maxtime устанавливается равным 2 часа.

Код:
     // Четыре начальные состояния BOB_sentoffer, ALICE_gotoffer, ALICE_sentoffer, BOB_gotoffer
    // инициатор включает в себя подписанный feetx и колоду 777 пары ключей
    //
    // "BTCabcde является событием сообщений от другой стороны (событие сообщений ограниченно в длине 8)
    // "lowercas" специальные мероприятия, <Техас> типы: <плата>, <отд>osit, <альт>оплата, это требование altcoin
    // "<Техас>найденный" означает, что другая сторона подтвердится на заданном пользователем уровне доверия
    // BTC_cleanup состояние только раскручивается незавершенным своп, как ничего не был совершен еще
   
    // состояния instantdex_statecreate (S, N,<Название государства>, HandlerFunc, ErrorHandler,<государство Тайм-аут>,<государство Ошибка>
    // данное состояние имеет несколько обработчиков и пользовательских событий, с таймаутов и ошибок, ссылающихся байпас
    s = instantdex_statecreate (с, п,"BTC_cleanup", BTC_cleanupfunc, 0,0,0); // из государств без каких-либо фиксаций
    s = instantdex_statecreate (с, п,"BOB_reclaim", BOB_reclaimfunc, 0,0,0); // Боб получает свой депозит обратно
    s = instantdex_statecreate (с, п,"ALICE_reclaim", ALICE_reclaimfunc, 0,0,0); // Алиса получает альт платеж
 
    s = instantdex_statecreate (с, п,"ALICE_claimedbtc", ALICE_claimbtcfunc, 0,0,0); // случаи неспециализированные
    s = instantdex_statecreate (с, п,"BOB_claimedalt", BOB_claimaltfunc, 0,0,0);

    // нужно создавать состояния, прежде чем они могут быть отнесены к, таким образом один проход FSM компиляции можно
    s = instantdex_statecreate (с, п,"BOB_sentprivs", BOB_waitfeefunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"ALICE_sentprivs", ALICE_waitfunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"ALICE_wait3", ALICE_waitfunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"BOB_sentdeposit", BOB_waitBTCalttxfunc, 0,"BTC_claimdeposit", 0);

    // события instantdex_addevent (s, * п,<Текущее состояние>,<мероприятие>,<сообщение для отправки>,<Далее государство>)
    если (0) // следующие неявные состояния и события, обрабатываемые наружно для установки datastructures
    {
        // s = instantdex_statecreate (с, п,"BOB_idle", BTC_idlefunc, 0,0,0);
        // s = instantdex_statecreate (с, п,"ALICE_idle", BTC_idlefunc, 0,0,0);
        instantdex_addevent (с, * п,"BOB_idle","usrorder","BTCoffer","BOB_sentoffer"); // отправить деку
        instantdex_addevent (с, * п,"ALICE_idle","usrorder","BTCoffer","ALICE_sentoffer");
        instantdex_addevent (с, * п,"BOB_idle","BTCoffer","BTCdeckC","BOB_gotoffer"); // отсылает деку + Выбрал
        instantdex_addevent (с, * п,"ALICE_idle","BTCoffer","BTCdeckC","ALICE_gotoffer");
    }
    // после предложения отправляется, ждать другой стороны, чтобы выбрать и послал их палубу, а затем отправить privs
    s = instantdex_statecreate (с, п,"BOB_sentoffer", BTC_waitdeckCfunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"ALICE_sentoffer", BTC_waitdeckCfunc, 0,"BTC_cleanup", 0);
    instantdex_addevent (с, * п,"BOB_sentoffer","BTCdeckC","BTCprivC","BOB_sentprivs"); // отправить privs + Выбрал
    instantdex_addevent (с, * п,"ALICE_sentoffer","BTCdeckC","BTCprivC","ALICE_sentprivs");
   
    // gotoffer государство получило палубу и послал BTCchose уже (вместе с палубой)
    s = instantdex_statecreate (с, п,"BOB_gotoffer", BTC_waitprivCfunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"ALICE_gotoffer", BTC_waitprivCfunc, 0,"BTC_cleanup", 0);
    instantdex_addevent (с, * п,"BOB_gotoffer","BTCprivC","BTCprivs","BOB_sentprivs"); // отправить privs
    instantdex_addevent (с, * п,"ALICE_gotoffer","BTCprivC","BTCprivs","ALICE_sentprivs");
   
    // чтобы достигнуть sentprivs, все пути должны быть отправлены / RECV палубу и Выбрал и проверены вырезать и выбрать
    s = instantdex_statecreate (с, п,"BOB_sentprivs", BOB_waitfeefunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"ALICE_sentprivs", ALICE_waitfunc, 0,"BTC_cleanup", 0);
    instantdex_addevent (с, * п,"BOB_sentprivs","feefound","BTCdeptx","BOB_sentdeposit");
    instantdex_addevent (с, * п,"ALICE_sentprivs","BTCdeptx", 0,"ALICE_wait3");

    // следующие состояния охватывают все перестановки три необходимых мероприятий, чтобы сделать altpayment
    s = instantdex_statecreate (с, п,"ALICE_wait3", ALICE_waitfunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"ALICE_waitfee_privs", ALICE_waitfunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"ALICE_waitdeposit_privs", ALICE_waitfunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"ALICE_waitfee_deposit", ALICE_waitfunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"ALICE_waitprivs", ALICE_waitfunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"ALICE_waitfee", ALICE_waitfunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"ALICE_waitdeposit", ALICE_waitfunc, 0,"BTC_cleanup", 0);
    instantdex_addevent (с, * п,"ALICE_wait3","feefound", 0,"ALICE_waitdeposit_privs");
    instantdex_addevent (с, * п,"ALICE_wait3","depfound", 0,"ALICE_waitfee_privs");
    instantdex_addevent (с, * п,"ALICE_wait3","BTCprivs", 0,"ALICE_waitfee_deposit");
   
    instantdex_addevent (с, * п,"ALICE_waitfee_privs","feefound", 0,"ALICE_waitprivs");
    instantdex_addevent (с, * п,"ALICE_waitfee_privs","BTCprivs", 0,"ALICE_waitfee");
   
    instantdex_addevent (с, * п,"ALICE_waitdeposit_privs","depfound", 0,"ALICE_waitprivs");
    instantdex_addevent (с, * п,"ALICE_waitdeposit_privs","BTCprivs", 0,"ALICE_waitdeposit");
   
    instantdex_addevent (с, * п,"ALICE_waitfee_deposit","depfound", 0,"ALICE_waitfee");
    instantdex_addevent (с, * п,"ALICE_waitfee_deposit","feefound", 0,"ALICE_waitdeposit");
   
    // ждать последнего события и разослать altpayment
    instantdex_addevent (с, * п,"ALICE_waitprivs","BTCprivs","BTCalttx","ALICE_sentalt");
    instantdex_addevent (с, * п,"ALICE_waitfee","feefound","BTCalttx","ALICE_sentalt");
    instantdex_addevent (с, * п,"ALICE_waitdeposit","depfound","BTCalttx","ALICE_sentalt");

    // Теперь очередь Боба, чтобы убедиться, что altpayment подтверждается и отправить реальный платеж
    s = instantdex_statecreate (с, п,"BOB_sentdeposit", BOB_waitBTCalttxfunc, 0,"BOB_reclaim", 0);
    instantdex_addevent (с, * п,"BOB_sentdeposit","BTCalttx", 0,"BOB_altconfirm");
 
    s = instantdex_statecreate (с, п,"BOB_altconfirm", BOB_waitaltconfirmfunc, 0,"BTC_claimdeposit", 0);
    instantdex_addevent (с, * п,"BOB_altconfirm","altfound","BTCpaytx","BOB_sentpayment");
   
    // Теперь очередь Алисы, чтобы убедиться, что платеж будет confrmed и отправить в претензии или увидеть регенерат ЛПП и вернуть
    s = instantdex_statecreate (с, п,"ALICE_sentalt", ALICE_waitBTCpaytxfunc, 0,"BTC_claimdeposit", 0);
    instantdex_addevent (с, * п,"ALICE_sentalt","BTCpaytx", 0,"ALICE_waitconfirms");
   
    s = instantdex_statecreate (с, п,"ALICE_waitconfirms", ALICE_waitpayconf_or_bobreclaimfunc, 0,"BTC_claimdeposit", 0);
    instantdex_addevent (с, * п,"ALICE_waitconfirms","bobfound", 0,"ALICE_reclaim");
    instantdex_addevent (с, * п,"ALICE_waitconfirms","payfound","BTCprivM","ALICE_claimedbtc");

    // Боб ждет privM либо от Алисы или альт blockchain
    s = instantdex_statecreate (с, п,"BOB_sentpayment", BOB_waitprivMfunc, 0,"BTC_claimdeposit", 0);
    instantdex_addevent (с, * п,"BOB_sentpayment","aclfound","BTCdone","BOB_claimedalt");
    instantdex_addevent (с, * п,"BOB_sentpayment","BTCprivM","BTCdone","BOB_claimedalt");
 

Большинство функций процесса должны быть понятны, и я сделал это линейный поток по мере осуществления протокола к завершению.

Я думаю, что следующие четыре претензии государства, что должно всегда быть атомарным и FSM мы сможем доказать, что либо BTC_cleanup называется обеими сторонами или BOB_claimdepositfunc и ALICE_claimaltfunc разматывает своп или ALICE_claimbtcfunc и BOB_claimaltfunc завершает атомную замену.

Джеймс
 
jl777 сейчас офлайн Пожаловаться на jl777   Ответить с цитированием Мультицитирование сообщения от jl777 Быстрый ответ на сообщение jl777

15 февраля 2016, 12:40:04 PM   # 5
 
 
Сообщения: 1162
Цитировать по имени
цитировать ответ
по умолчанию Re: Атомные свопы с помощью разреза и выберите

Вот скрипты, которые я использую:

как сборы стандартные платежи: OP_DUP OP_HASH160 FEE_RMD160 OP_EQUALVERIFY OP_CHECKSIG

Алиса altpayment: OP_2 OP_2 OP_CHECKMULTISIG

Боб депозит:
OP_IF
    <Теперь + INSTANTDEX_LOCKTIME * 2> OP_CLTV OP_DROP
OP_CHECKSIG
OP_ELSE
    OP_HASH160 <хэш (bob_privN)> OP_EQUALVERIFY OP_CHECKSIG
OP_ENDIF
 
Боб paytx:
OP_IF
    <Теперь + INSTANTDEX_LOCKTIME> OP_CLTV OP_DROP OP_CHECKSIG
OP_ELSE
    OP_HASH160 <хэш (alice_privM)> OP_EQUALVERIFY
OP_CHECKSIG
OP_ENDIF

Соглашение об именах является pubAi является pubkeys Алисы (кажется, только pubA0 и не pubA1)
pubBi являются pubkeys Боба

privN является privkey Боба из разреза и выбрать колоду, выбранную Алиса
privM является аналогом Алисы
pubN и pubM является соответствующим pubkeys для этой выбранной privkeys

Алиса событие тайм-аут срабатывает, если INSTANTDEX_LOCKTIME протекающее с началом FSM экземпляра. Боб событие тайм-аут запускается после INSTANTDEX_LOCKTIME * 2

Джеймс
jl777 сейчас офлайн Пожаловаться на jl777   Ответить с цитированием Мультицитирование сообщения от jl777 Быстрый ответ на сообщение jl777

15 февраля 2016, 2:46:12 PM   # 6
 
 
Сообщения: 1148
Цитировать по имени
цитировать ответ
по умолчанию Re: Атомные свопы с помощью разреза и выберите

Вот скрипты, которые я использую:

как сборы стандартные платежи: OP_DUP OP_HASH160 FEE_RMD160 OP_EQUALVERIFY OP_CHECKSIG

Тарифы должны каким-то образом включить tradeId хэш. Таким образом, трейдер не может использовать ту же плату за несколько сделок.

Это может быть включено в открытые ключи путем умножения пар ключей от случайного числа, выбранного другой стороны.

Боб выбирает пару ключей (fee_pri_bob, fee_pub_bob) и случайное число fee_rand_bob.

Примечание: fee_pub_bob = fee_pri_bob * G

Он посылает fee_pub_bob и fee_rand_bob Алисе.

Алиса вычисляет то же самое и отправляет ее точку ЕС и случайное число обратно.

Боб использует следующую пару ключей

Скорректированная Private = fee_pri_bob * fee_rand_alice
Скорректированная Public = fee_pri_bob * fee_rand_alice * G = fee_rand_alice * (fee_pri_bob * G) = fee_rand_alice * fee_pub_bob

Это означает, что Алиса может проверить, что открытый ключ является уникальным для этой торговли (так как она может рассчитывать fee_rand_alice * fee_pub_bob), но до сих пор не знает соответствующий закрытый ключ. 
TierNolan сейчас офлайн Пожаловаться на TierNolan   Ответить с цитированием Мультицитирование сообщения от TierNolan Быстрый ответ на сообщение TierNolan

15 февраля 2016, 3:06:10 PM   # 7
 
 
Сообщения: 1162
Цитировать по имени
цитировать ответ
по умолчанию Re: Атомные свопы с помощью разреза и выберите

Вот скрипты, которые я использую:

как сборы стандартные платежи: OP_DUP OP_HASH160 FEE_RMD160 OP_EQUALVERIFY OP_CHECKSIG

Тарифы должны каким-то образом включить tradeId хэш. Таким образом, трейдер не может использовать ту же плату за несколько сделок.

Это может быть включено в открытые ключи путем умножения пар ключей от случайного числа, выбранного другой стороны.

Боб выбирает пару ключей (fee_pri_bob, fee_pub_bob) и случайное число fee_rand_bob.

Примечание: fee_pub_bob = fee_pri_bob * G

Он посылает fee_pub_bob и fee_rand_bob Алисе.

Алиса вычисляет то же самое и отправляет ее точку ЕС и случайное число обратно.

Боб использует следующую пару ключей

Скорректированная Private = fee_pri_bob * fee_rand_alice
Скорректированная Public = fee_pri_bob * fee_rand_alice * G = fee_rand_alice * (fee_pri_bob * G) = fee_rand_alice * fee_pub_bob

Это означает, что Алиса может проверить, что открытый ключ является уникальным для этой торговли (так как она может рассчитывать fee_rand_alice * fee_pub_bob), но до сих пор не знает соответствующий закрытый ключ. 
да, я буду добавлять тег к feetx по:

<номер заказа> OP_DROP OP_DUP OP_HASH160 FEE_RMD160 OP_EQUALVERIFY OP_CHECKSIG

OrderID является уникальным для конкретной записи портфеля заказов. Таким образом, когда плата выплачивается атомном последовательности, если она не по какой-либо причине, вы можете повторно использовать feetx. Если feetx привязан к конкретному Alice / Бобу, что приведет к увеличению эффекта мешающей атаки (только начинают торги без намерения выполнить их), как плата за обыкновение иметь возможность повторно использовать

Джеймс
jl777 сейчас офлайн Пожаловаться на jl777   Ответить с цитированием Мультицитирование сообщения от jl777 Быстрый ответ на сообщение jl777

15 февраля 2016, 8:44:12 PM   # 8
 
 
Сообщения: 1162
Цитировать по имени
цитировать ответ
по умолчанию Re: Атомные свопы с помощью разреза и выберите

оптимизированная FSM немного:

Код:
    s = instantdex_statecreate (с, п,"BTC_cleanup", BTC_cleanupfunc, 0,0,0); // из государств без каких-либо фиксаций
    s = instantdex_statecreate (с, п,"BOB_reclaim", BOB_reclaimfunc, 0,0,0); // Боб получает свой депозит обратно
    s = instantdex_statecreate (с, п,"ALICE_reclaim", ALICE_reclaimfunc, 0,0,0); // Алиса получает альт платеж
 
    s = instantdex_statecreate (с, п,"ALICE_claimedbtc", ALICE_claimbtcfunc, 0,0,0); // случаи неспециализированные
    s = instantdex_statecreate (с, п,"BOB_claimedalt", BOB_claimaltfunc, 0,0,0);

    // нужно создавать состояния, прежде чем они могут быть отнесены к, таким образом один проход FSM компиляции можно
    s = instantdex_statecreate (с, п,"BOB_sentprivs", BTC_waitprivsfunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"ALICE_sentprivs", ALICE_waitfunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"ALICE_wait3", ALICE_waitfunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"BOB_sentdeposit", BOB_waitBTCalttxfunc, 0,"BTC_claimdeposit", 0);

    // события instantdex_addevent (s, * п,<Текущее состояние>,<мероприятие>,<сообщение для отправки>,<Далее государство>)
    если (0) // следующие неявные состояния и события, обрабатываемые наружно для установки datastructures
    {
        // s = instantdex_statecreate (с, п,"BOB_idle", BTC_idlefunc, 0,0,0);
        // s = instantdex_statecreate (с, п,"ALICE_idle", BTC_idlefunc, 0,0,0);
        instantdex_addevent (с, * п,"BOB_idle","usrorder","BTCoffer","BOB_sentoffer"); // отправить деку
        instantdex_addevent (с, * п,"ALICE_idle","usrorder","BTCoffer","ALICE_sentoffer");
        instantdex_addevent (с, * п,"BOB_idle","BTCoffer","BTCdeckC","BOB_gotoffer"); // отсылает деку + Выбрал
        instantdex_addevent (с, * п,"ALICE_idle","BTCoffer","BTCdeckC","ALICE_gotoffer");
    }
    // после предложения отправляется, ждать другой стороны, чтобы выбрать и послал их палубу, а затем отправить privs
    s = instantdex_statecreate (с, п,"BOB_sentoffer", BTC_waitdeckCfunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"ALICE_sentoffer", BTC_waitdeckCfunc, 0,"BTC_cleanup", 0);
    instantdex_addevent (с, * п,"BOB_sentoffer","BTCdeckC","BTCprivC","BOB_sentprivs"); // отправить privs + Выбрал
    instantdex_addevent (с, * п,"ALICE_sentoffer","BTCdeckC","BTCprivC","ALICE_sentprivs");
   
    // gotoffer государство получило палубу и послал BTCchose уже (вместе с палубой)
    s = instantdex_statecreate (с, п,"BOB_gotoffer", BTC_waitprivCfunc, 0,"BTC_cleanup", 0);
    s = instantdex_statecreate (с, п,"ALICE_gotoffer", BTC_waitprivCfunc, 0,"BTC_cleanup", 0);
    instantdex_addevent (с, * п,"BOB_gotoffer","BTCprivC","BTCprivs","BOB_sentprivs"); // отправить privs
    instantdex_addevent (с, * п,"ALICE_gotoffer","BTCprivC","BTCprivs","ALICE_sentprivs");
   
    // чтобы достигнуть sentprivs, все пути должны быть отправлены / RECV палубу и Выбрал и проверены вырезать и выбрать
    s = instantdex_statecreate (с, п,"BOB_sentprivs", BTC_waitprivsfunc, 0,"BTC_cleanup", 0);
    instantdex_addevent (с, * п,"BOB_sentprivs","BTCprivs", 0,"BOB_waitfee");
    s = instantdex_statecreate (с, п,"ALICE_sentprivs", BTC_waitprivsfunc, 0,"BTC_cleanup", 0);
    instantdex_addevent (с, * п,"ALICE_sentprivs","BTCprivs", 0,"Alice_waitfee");

    s = instantdex_statecreate (с, п,"BOB_waitfee", BOB_waitfeefunc, 0,"BTC_cleanup", 0);
    instantdex_addevent (с, * п,"BOB_waitfee","feefound","BTCdeptx","BOB_sentdeposit");
   
    s = instantdex_statecreate (с, п,"Alice_waitfee", ALICE_waitfeefunc, 0,"BTC_cleanup", 0);
    instantdex_addevent (с, * п,"BOB_waitfee","feefound", 0,"ALICE_waitfee_deposit");
   
    // следующие состояния охватывают все перестановки три необходимых мероприятий, чтобы сделать altpayment
    s = instantdex_statecreate (с, п,"ALICE_waitfee_deposit", ALICE_waitfunc, 0,"BTC_cleanup", 0);
    instantdex_addevent (с, * п,"ALICE_waitfee_deposit","depfound", 0,"ALICE_waitfee");
    instantdex_addevent (с, * п,"ALICE_waitfee_deposit","feefound", 0,"ALICE_waitdeposit");
   
    // ждать последнего события и разослать altpayment
    instantdex_addevent (с, * п,"ALICE_waitfee","feefound","BTCalttx","ALICE_sentalt");
    instantdex_addevent (с, * п,"ALICE_waitdeposit","depfound","BTCalttx","ALICE_sentalt");

    // Теперь очередь Боба, чтобы убедиться, что altpayment подтверждается и отправить реальный платеж
    s = instantdex_statecreate (с, п,"BOB_sentdeposit", BOB_waitBTCalttxfunc, 0,"BOB_reclaim", 0);
    instantdex_addevent (с, * п,"BOB_sentdeposit","BTCalttx", 0,"BOB_altconfirm");
 
    s = instantdex_statecreate (с, п,"BOB_altconfirm", BOB_waitaltconfirmfunc, 0,"BTC_claimdeposit", 0);
    instantdex_addevent (с, * п,"BOB_altconfirm","altfound","BTCpaytx","BOB_sentpayment");
   
    // Теперь очередь Алисы, чтобы убедиться, что платеж будет confrmed и отправить в претензии или увидеть регенерат ЛПП и вернуть
    s = instantdex_statecreate (с, п,"ALICE_sentalt", ALICE_waitBTCpaytxfunc, 0,"BTC_claimdeposit", 0);
    instantdex_addevent (с, * п,"ALICE_sentalt","BTCpaytx", 0,"ALICE_waitconfirms");
   
    s = instantdex_statecreate (с, п,"ALICE_waitconfirms", ALICE_waitpayconf_or_bobreclaimfunc, 0,"BTC_claimdeposit", 0);
    instantdex_addevent (с, * п,"ALICE_waitconfirms","bobfound", 0,"ALICE_reclaim");
    instantdex_addevent (с, * п,"ALICE_waitconfirms","payfound","BTCprivM","ALICE_claimedbtc");

    // Боб ждет privM либо от Алисы или альт blockchain
    s = instantdex_statecreate (с, п,"BOB_sentpayment", BOB_waitprivMfunc, 0,"BTC_claimdeposit", 0);
    instantdex_addevent (с, * п,"BOB_sentpayment","btcfound","BTCdone","BOB_claimedalt");
    instantdex_addevent (с, * п,"BOB_sentpayment","BTCprivM","BTCdone","BOB_claimedalt");
jl777 сейчас офлайн Пожаловаться на jl777   Ответить с цитированием Мультицитирование сообщения от jl777 Быстрый ответ на сообщение jl777

16 февраля 2016, 3:40:48 AM   # 9
 
 
Сообщения: 1162
Цитировать по имени
цитировать ответ
по умолчанию Re: Атомные свопы с помощью разреза и выберите

Я должен добавить еще metaevent, чтобы иметь дело с ожидающими государствами, так как нет ни одного входящего сообщения, чтобы вызвать его.

это позволяет создавать государства, как:

Код:
    s = instantdex_statecreate (с, п,"BOB_waitfee", BOB_waitfeefunc, 0,"BTC_cleanup", 0);
    instantdex_addevent (с, * п,"BOB_waitfee","feefound","BTCdeptx","BOB_sentdeposit");
    instantdex_addevent (с, * п,"BOB_waitfee","голосование","голосование","BOB_waitfee");

BOB_waitfee будет выдавать опрос событий на себя в цикле, пока "feefound" событие генерируется (или тайм-аут)

Джеймс
jl777 сейчас офлайн Пожаловаться на jl777   Ответить с цитированием Мультицитирование сообщения от jl777 Быстрый ответ на сообщение jl777

16 февраля 2016, 7:12:48 PM   # 10
 
 
Сообщения: 1162
Цитировать по имени
цитировать ответ
по умолчанию Re: Атомные свопы с помощью разреза и выберите

последняя редакция со всеми "голосование" Мероприятия

Код:
   s = instantdex_statecreate (с, п,"BTC_cleanup", BTC_cleanupfunc, 0,0,0,0); // из государств без каких-либо фиксаций
   
    s = instantdex_statecreate (с, п,"BOB_reclaim", BOB_reclaimfunc, 0,0,0,0); // Боб получает свой депозит обратно
    instantdex_addevent (с, * п,"BOB_reclaim","brcfound","голосование","BTC_cleanup");
    instantdex_addevent (с, * п,"BOB_reclaim","голосование","голосование","BOB_reclaim");

    s = instantdex_statecreate (с, п,"ALICE_reclaim", ALICE_reclaimfunc, 0,0,0,0); // Алиса получает альт платеж
    instantdex_addevent (с, * п,"ALICE_reclaim","arcfound","голосование","BTC_cleanup");
    instantdex_addevent (с, * п,"ALICE_reclaim","голосование","голосование","ALICE_reclaim");

    s = instantdex_statecreate (с, п,"ALICE_claimedbtc", ALICE_claimbtcfunc, 0,0,0,0); // случаи неспециализированные
    instantdex_addevent (с, * п,"ALICE_claimedbtc","aclfound","голосование","BTC_cleanup");
    instantdex_addevent (с, * п,"ALICE_claimedbtc","голосование","голосование","ALICE_claimedbtc");
   
    s = instantdex_statecreate (с, п,"BOB_claimedalt", BOB_claimaltfunc, 0,0,0,0);
    instantdex_addevent (с, * п,"BOB_claimedalt","bclfound","голосование","BTC_cleanup");
    instantdex_addevent (с, * п,"BOB_claimedalt","голосование","голосование","BOB_claimedalt");

    // нужно создавать состояния, прежде чем они могут быть отнесены к, таким образом один проход FSM компиляции можно
    s = instantdex_statecreate (с, п,"BOB_sentprivs", BTC_waitprivsfunc, 0,"BTC_cleanup", 0,0);
    s = instantdex_statecreate (с, п,"BOB_waitfee", BOB_waitfeefunc, 0,"BTC_cleanup", 0,0);
    s = instantdex_statecreate (с, п,"BOB_sentdeposit", BOB_waitBTCalttxfunc, 0,"BOB_reclaim", 0,0);
    s = instantdex_statecreate (с, п,"BOB_altconfirm", BOB_waitaltconfirmfunc, 0,"BOB_reclaim", 0,0);
    s = instantdex_statecreate (с, п,"BOB_sentpayment", BOB_waitprivMfunc, 0,"BOB_reclaim", 0,0);
    s = instantdex_statecreate (с, п,"ALICE_sentprivs", BTC_waitprivsfunc, 0,"BTC_cleanup", 0,0);
    s = instantdex_statecreate (с, п,"Alice_waitfee", ALICE_waitfeefunc, 0,"BTC_cleanup", 0,0);
    s = instantdex_statecreate (с, п,"ALICE_waitdeposit", ALICE_waitdepositfunc, 0,"BTC_cleanup", 0,0);
    s = instantdex_statecreate (с, п,"ALICE_sentalt", ALICE_waitBTCpaytxfunc, 0,"ALICE_reclaim", 0,0);
    s = instantdex_statecreate (с, п,"ALICE_waitconfirms", ALICE_waitpayconf_or_bobreclaimfunc, 0,"ALICE_reclaim", 0,0);

    // события instantdex_addevent (s, * п,<Текущее состояние>,<мероприятие>,<сообщение для отправки>,<Далее государство>)
    если (0) // следующие неявные состояния и события, обрабатываемые наружно для установки datastructures
    {
        // s = instantdex_statecreate (с, п,"BOB_idle", BTC_idlefunc, 0,0,0);
        // s = instantdex_statecreate (с, п,"ALICE_idle", BTC_idlefunc, 0,0,0);
        instantdex_addevent (с, * п,"BOB_idle","usrorder","BTCoffer","BOB_sentoffer"); // отправить деку
        instantdex_addevent (с, * п,"ALICE_idle","usrorder","BTCoffer","ALICE_sentoffer");
        instantdex_addevent (с, * п,"BOB_idle","BTCoffer","BTCdeckC","BOB_gotoffer"); // отсылает деку + Выбрал
        instantdex_addevent (с, * п,"ALICE_idle","BTCoffer","BTCdeckC","ALICE_gotoffer");
    }
    // после предложения отправляется, ждать другой стороны, чтобы выбрать и послал их палубу, а затем отправить privs
    s = instantdex_statecreate (с, п,"BOB_sentoffer", BTC_waitdeckCfunc, 0,"BTC_cleanup", 0,1);
    s = instantdex_statecreate (с, п,"ALICE_sentoffer", BTC_waitdeckCfunc, 0,"BTC_cleanup", 0,1);
    instantdex_addevent (с, * п,"BOB_sentoffer","BTCdeckC","BTCprivC","BOB_sentprivs"); // отправить privs + Выбрал
    instantdex_addevent (с, * п,"ALICE_sentoffer","BTCdeckC","BTCprivC","ALICE_sentprivs");
   
    // gotoffer государство получило палубу и послал BTCdeckC уже (вместе с палубой)
    s = instantdex_statecreate (с, п,"BOB_gotoffer", BTC_waitprivCfunc, 0,"BTC_cleanup", 0,1);
    s = instantdex_statecreate (с, п,"ALICE_gotoffer", BTC_waitprivCfunc, 0,"BTC_cleanup", 0,1);
    instantdex_addevent (с, * п,"BOB_gotoffer","BTCprivC","BTCprivs","BOB_sentprivs"); // отправить privs
    instantdex_addevent (с, * п,"ALICE_gotoffer","BTCprivC","BTCprivs","ALICE_sentprivs");
   
    // чтобы достигнуть sentprivs, все пути должны быть отправлены / RECV палубу и Выбрал и проверены вырезать и выбрать
    s = instantdex_statecreate (с, п,"BOB_sentprivs", BTC_waitprivsfunc, 0,"BTC_cleanup", 0,0);
    instantdex_addevent (с, * п,"BOB_sentprivs","BTCprivs","голосование","BOB_waitfee");
   
    s = instantdex_statecreate (с, п,"ALICE_sentprivs", BTC_waitprivsfunc, 0,"BTC_cleanup", 0,0);
    instantdex_addevent (с, * п,"ALICE_sentprivs","BTCprivs","голосование","Alice_waitfee");

    // Боб ждет платы и отправляет депозит, когда он появится
    s = instantdex_statecreate (с, п,"BOB_waitfee", BOB_waitfeefunc, 0,"BTC_cleanup", 0,0);
    instantdex_addevent (с, * п,"BOB_waitfee","feefound","BTCdeptx","BOB_sentdeposit");
    instantdex_addevent (с, * п,"BOB_waitfee","голосование","голосование","BOB_waitfee");

    // Алиса ждет плату, а затем ждет депозита для подтверждения и посылает altpayment
    s = instantdex_statecreate (с, п,"Alice_waitfee", ALICE_waitfeefunc, 0,"BTC_cleanup", 0,0);
    instantdex_addevent (с, * п,"Alice_waitfee","feefound","голосование","ALICE_waitdeposit");
    instantdex_addevent (с, * п,"Alice_waitfee","голосование","голосование","Alice_waitfee");
   
    s = instantdex_statecreate (с, п,"ALICE_waitdeposit", ALICE_waitdepositfunc, 0,"BTC_cleanup", 0,0);
    instantdex_addevent (с, * п,"ALICE_waitdeposit","depfound","BTCalttx","ALICE_sentalt");
    instantdex_addevent (с, * п,"ALICE_waitdeposit","голосование","голосование","ALICE_waitdeposit");

    // Теперь очередь Боба, чтобы убедиться, что altpayment подтверждается и отправить реальный платеж
    s = instantdex_statecreate (с, п,"BOB_sentdeposit", BOB_waitBTCalttxfunc, 0,"BOB_reclaim", 0,0);
    instantdex_addevent (с, * п,"BOB_sentdeposit","BTCalttx","голосование","BOB_altconfirm");
 
    s = instantdex_statecreate (с, п,"BOB_altconfirm", BOB_waitaltconfirmfunc, 0,"BOB_reclaim", 0,0);
    instantdex_addevent (с, * п,"BOB_altconfirm","altfound","BTCpaytx","BOB_sentpayment");
    instantdex_addevent (с, * п,"BOB_altconfirm","голосование","голосование","BOB_altconfirm");
   
    // Теперь очередь Алисы, чтобы убедиться, что платеж будет confrmed и отправить в претензии или увидеть регенерат ЛПП и вернуть
    s = instantdex_statecreate (с, п,"ALICE_sentalt", ALICE_waitBTCpaytxfunc, 0,"ALICE_reclaim", 0,0);
    instantdex_addevent (с, * п,"ALICE_sentalt","BTCpaytx","голосование","ALICE_waitconfirms");
   
    s = instantdex_statecreate (с, п,"ALICE_waitconfirms", ALICE_waitpayconf_or_bobreclaimfunc, 0,"ALICE_reclaim", 0,0);
    instantdex_addevent (с, * п,"ALICE_waitconfirms","bobfound","голосование","ALICE_reclaim");
    instantdex_addevent (с, * п,"ALICE_waitconfirms","payfound","BTCprivM","ALICE_claimedbtc");
    instantdex_addevent (с, * п,"ALICE_waitconfirms","голосование","голосование","ALICE_waitconfirms");

    // Боб ждет privM либо от Алисы или альт blockchain
    s = instantdex_statecreate (с, п,"BOB_sentpayment", BOB_waitprivMfunc, 0,"BOB_reclaim", 0,0);
    instantdex_addevent (с, * п,"BOB_sentpayment","btcfound","BTCdone","BOB_claimedalt");
    instantdex_addevent (с, * п,"BOB_sentpayment","BTCprivM","BTCdone","BOB_claimedalt");
    instantdex_addevent (с, * п,"BOB_sentpayment","голосование","голосование","BOB_sentpayment");
    instantdex_FSMtest (с, * п);

Я также написал BruteForce тестер

Джеймс
jl777 сейчас офлайн Пожаловаться на jl777   Ответить с цитированием Мультицитирование сообщения от jl777 Быстрый ответ на сообщение jl777

16 февраля 2016, 10:38:12 PM   # 11
 
 
Сообщения: 1162
Цитировать по имени
цитировать ответ
по умолчанию Re: Атомные свопы с помощью разреза и выберите

Некоторые ориентиры только чисто государственной машины:

BOB_gotoffer BOB_sentprivs BOB_waitfee BOB_waitfee BOB_waitfee BOB_waitfee BOB_waitfee BOB_waitfee BOB_sentdeposit BOB_altconfirm BOB_altconfirm BOB_altconfirm BOB_altconfirm BOB_altconfirm BOB_altconfirm BOB_altconfirm BOB_altconfirm BOB_sentpayment BOB_claimedalt достигли BTC_cleanup M.20 событий most.20 Аве 20.00
BOB_sentoffer BOB_sentprivs BOB_waitfee BOB_sentdeposit BOB_altconfirm BOB_altconfirm BOB_altconfirm BOB_altconfirm BOB_altconfirm BOB_sentpayment BOB_sentpayment BOB_claimedalt достигли m.13 событий BTC_cleanup most.34 Аве 11.50
BOB_sentoffer BOB_sentprivs BOB_waitfee BOB_sentdeposit BOB_altconfirm BOB_sentpayment BOB_claimedalt достигли BTC_cleanup M.8 события most.36 Аве 11.50
BOB_gotoffer BOB_sentprivs BOB_waitfee BOB_waitfee BOB_sentdeposit BOB_altconfirm BOB_sentpayment BOB_claimedalt достигли BTC_cleanup M.9 события most.36 Аве 11.50
ALICE_sentoffer ALICE_sentprivs Alice_waitfee Alice_waitfee Alice_waitfee Alice_waitfee Alice_waitfee ALICE_waitdeposit ALICE_sentalt ALICE_waitconfirms ALICE_waitconfirms ALICE_claimedbtc достигли BTC_cleanup m.13 события most.37 Аве 11.50
ALICE_sentoffer ALICE_sentprivs Alice_waitfee ALICE_waitdeposit ALICE_waitdeposit ALICE_waitdeposit ALICE_waitdeposit ALICE_waitdeposit ALICE_waitdeposit ALICE_waitdeposit ALICE_sentalt ALICE_waitconfirms ALICE_claimedbtc ALICE_claimedbtc достигли BTC_cleanup m.15 события most.37 Аве 11.50
BOB_sentoffer BOB_sentprivs BOB_waitfee BOB_sentdeposit BOB_altconfirm BOB_sentpayment BOB_claimedalt достигли BTC_cleanup M.8 события most.37 Аве 11.50
BOB_gotoffer BOB_sentprivs BOB_waitfee BOB_sentdeposit BOB_altconfirm BOB_sentpayment BOB_claimedalt достигли BTC_cleanup M.8 события most.37 Аве 11.50
BOB_sentoffer BOB_sentprivs BOB_waitfee BOB_sentdeposit BOB_altconfirm BOB_altconfirm BOB_altconfirm BOB_altconfirm BOB_sentpayment BOB_claimedalt BOB_claimedalt достигли BTC_cleanup m.12 события most.37 Аве 11.50
BOB_sentoffer BOB_sentprivs BOB_waitfee BOB_waitfee BOB_waitfee BOB_waitfee BOB_waitfee BOB_sentdeposit BOB_altconfirm BOB_sentpayment BOB_claimedalt достигли BTC_cleanup m.12 события most.37 Аве 11.50
 most.37 пр 11,50
истекшее 4711.472 пр 0.000471

единицы в миллисекундах, так что менее половины микросекунды за FSM моделирования. для каждого из них я случайным образом выбирать из исходных состояний, а затем просто использовать случайное число для следующего события, пока он не достигает конечного события (BTC_cleanup);

Выше от пробега 10 миллионов итераций, взял немного меньше, чем на 5 секунд, с распечатками состояний для каждого миллионного теста.

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

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

Затем делая unspents приходит из внутренних адресов бумажника, и т.д. Он уже подключен к instantdex торговой API, что и "Bitcoin" обмен.

Последовательность испытаний выдавать следующее на одном узле:

локон --url "http://127.0.0.1:7778" --данные "{\"агент \": \"игуана\"\"метод \": \"addcoin \"\"newcoin \": \"BTC \"}"
локон --url "http://127.0.0.1:7778" --данные "

{\"агент \": \"InstantDEX \"\"метод \": \"продать \"\"обмен \": \"Bitcoin \"\"база\": \"BTCD \"\"отн \": \"BTC \"\"цена\": 0,003 \"объем \": 2, \"dotrade \": 1}"

Он просто активирует монету, а затем передает распродажу предложение к сети.
Тогда на другом узле:
http://127.0.0.1:7778/api/InstantDEX/orderbook?exchange=bitcoin&База = BTCD&отн = BTC&Глубина = 11&allfields = 1&игнорировать =

http://127.0.0.1:7778/api/InstantDEX/buy?exchange=bitcoin&База = BTCD&отн = BTC&цена = 0,003&объем = 2&dotrade = 1&пароль = боб

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

FSM следует обе стороны, государства меняются, даже "голосование" виртуальное событие оказалось работать. Был на долгое время, так что не уверен, когда я буду бодрствовать ряд, но он чувствует себя как дома натяжку.

Единственный "атака" что я знаю о том, что злоумышленник, который не делает заботу о потере денег, чтобы раздражать человек также должны активно размещать предложения по лучшей рыночной цене (то есть. цена в режиме реального времени котировки), а затем начать торги, только никогда не завершить их. каждый "атака" будет стоить атакующих 0,13%, но "жертва" все еще может переработать плату, которая была использована в качестве платы TX основана на OrderID предложений подкрепляются.

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

Я изменю случайную колоду обратно 1000 так платы на 0,13% с имеет ожидаемый убыток в размере 13%, и так буду Боб выручая и потерять свой депозит.

Джеймс
jl777 сейчас офлайн Пожаловаться на jl777   Ответить с цитированием Мультицитирование сообщения от jl777 Быстрый ответ на сообщение jl777

16 февраля 2016, 10:52:22 PM   # 12
 
 
Сообщения: 1162
Цитировать по имени
цитировать ответ
по умолчанию Re: Атомные свопы с помощью разреза и выберите

@TierNolan

Что вы думаете об идее anonymint о имея пользователь возрастного ценза устанавливаемых монет для feetx? Идея заключается в том, чтобы замедлить атаки досады.

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

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

До сих пор, когда он все отлажено, я не вижу способа, обе стороны могут потерять средства. Хуже всего, кажется, что некоторые из ваших средств, привязанных в течение нескольких часов (я имею в виду, установив максимальное время транзакции от 2 до 3 часов, с максимальным временем истечения около 8 часов. Таким образом, даже если PaperCut злоумышленник блокирует вас для maxtime, есть еще достаточно времени, чтобы завершить сделку с кем-то другим.

Эти два места, где необходимо blockchain подтверждение, я сделал это адаптивным на Bitcoin стороны, меньших ТХ 0,1 BTC или менее, кажется, что как только он подтвердил, что является хорошим enoough и для более крупных 1 + SQRT (значение BTC ) подтверждает, так что 1 БТД 2 подтверждает, 4 BTC составляет 3 подтверждает, 9 BTC 4 подтверждает, и т.д.

Сторона altcoin настолько переменной, я не могу думать о какой-либо лучшего способа, чем с пользователем указать его на основе за монеты, или даже каждую сделку.

Если какой-нибудь богатый вандал на самом деле начинает делать ложные атаки, я думаю, что мы всегда можем учредить без gameable системы репутации или даже реальную систему страхования

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

Джеймс
jl777 сейчас офлайн Пожаловаться на jl777   Ответить с цитированием Мультицитирование сообщения от jl777 Быстрый ответ на сообщение jl777

16 февраля 2016, 11:47:10 PM   # 13
 
 
Сообщения: 1148
Цитировать по имени
цитировать ответ
по умолчанию Re: Атомные свопы с помощью разреза и выберите

Что вы думаете об идее anonymint о имея пользователь возрастного ценза устанавливаемых монет для feetx? Идея заключается в том, чтобы замедлить атаки досады.

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

Это может быть проблемой для людей, которые только что полученные монеты, а потом придется подождать несколько дней, чтобы построить чеканки. 

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

Я думал, что это может быть совместная сделка, как и с CoinJoin. Каждая сторона будет сказать, где они получают монеты из, а затем, как только ТХ будет построен, они оба могут подписать его. Это означает, что плата должна быть на одном из двух монет, а не каждый платит по своей собственной монете. Это означает, что вы должны знать, обменный курс, но это может быть вытянуто непосредственно из самой торговли.

Мне также нравится идея иметь сделки отделочные операции позволяют восстановление сборов.

Они могут платить взносы в

Код:

а также

Код:

Это означает, что после 2-х дней, каждый может претендовать на выход. Если система становится популярной, что означает, что шахтеры будут принимать выходы как плата. В противном случае, кто-то может просто стараться быть первым, чтобы требовать их. 

Коды _fee_unlock должны быть согласованы до разреза и выбрать бывает. Они должны были бы быть включены в претензии сделок. 

Этап вывода 4, например, становится

Код:

Хорошая вещь об этом является то, что плата может быть больше, так как он восстанавливается, если сделка будет завершена.

котировка
Эти два места, где необходимо blockchain подтверждение, я сделал это адаптивным на Bitcoin стороны, меньших ТХ 0,1 BTC или менее, кажется, что как только он подтвердил, что является хорошим enoough и для более крупных 1 + SQRT (значение BTC ) подтверждает, так что 1 БТД 2 подтверждает, 4 BTC составляет 3 подтверждает, 9 BTC 4 подтверждает, и т.д.

Кажется разумным, но пользователь должен, вероятно, будет предоставлена ​​возможность установить минимальную задержку подтверждения. Другая сторона должна быть проинформирована, так что они не думают, что они собираются завершить сделку в течение 2 минут, и в конечном итоге приходится ждать 1 час для подтверждает.
TierNolan сейчас офлайн Пожаловаться на TierNolan   Ответить с цитированием Мультицитирование сообщения от TierNolan Быстрый ответ на сообщение TierNolan

17 февраля 2016, 3:32:13 AM   # 14
 
 
Сообщения: 2464
Цитировать по имени
цитировать ответ
по умолчанию Re: Атомные свопы с помощью разреза и выберите

смотреть.
marcus_of_augustus сейчас офлайн Пожаловаться на marcus_of_augustus   Ответить с цитированием Мультицитирование сообщения от marcus_of_augustus Быстрый ответ на сообщение marcus_of_augustus

18 февраля 2016, 12:43:20 PM   # 15
 
 
Сообщения: 420
Цитировать по имени
цитировать ответ
по умолчанию Re: Атомные свопы с помощью разреза и выберите

О чем вы думаете Идея anonymint в наличия пользователя возрастного ценз устанавливаемых монет для feetx? Идея заключается в том, чтобы замедлить атаки досады.

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

Это может быть проблемой для людей, которые только что полученные монеты, а потом придется подождать несколько дней, чтобы построить чеканки.

То, что я предложил jl777 в ПМ, является то, что он делает это (монета возраст, а.к.а. "Монета Days Разрушенный") Пользователь регулируемого переменный, так что пользователи могут выбрать компромисс между задержкой для себя и тех встречных сторон, доступных для торговли с, и в зависимости от уровня помех присутствуют в то время. jl777 назвал его как "дождливый день" страхование, которое кажется способной характеристикой предложения.

У меня есть сильное интуитивное (порождающая сущность) ощущение, что я найти изъян в любом способе использования платы, чтобы блокировать атакующие, который хочет, чтобы заклинить протокол, потому что плата не может быть атомарной с торговлей (без также как открыть окно взаимодействия) глушение, поэтому окно заклинивания всегда открыт. Принимая во внимание, что монета возраст является ограниченным ресурсом, который существует (стремятся) до начала любого протокола для торговли. Кроме того, нельзя использовать смеситель, чтобы скрыть личность злоумышленника, так как смешивание будет ударять монету возраст обратно до 0.

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

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

18 февраля 2016, 1:13:31 PM   # 16
 
 
Сообщения: 420
Цитировать по имени
цитировать ответ
по умолчанию Re: Атомные свопы с помощью разреза и выберите

продолжается от как это кажется, что ОП запер по какой-то причине ...

Причина, возможно, она была закрыта в CIYAM разозлился на меня (в другом потоке) и решил истерику (возможно, потому, что я также должен был говорить с ним в ближайшее время в Skype о децентрализованном обмене).
TPTB_need_war сейчас офлайн Пожаловаться на TPTB_need_war   Ответить с цитированием Мультицитирование сообщения от TPTB_need_war Быстрый ответ на сообщение TPTB_need_war

18 февраля 2016, 2:39:37 PM   # 17
 
 
Сообщения: 1148
Цитировать по имени
цитировать ответ
по умолчанию Re: Атомные свопы с помощью разреза и выберите

То, что я предложил jl777 в ПМ, является то, что он делает это (монета возраст, а.к.а. "Монета Days Разрушенный") Пользователь регулируемого переменный, так что пользователи могут выбрать компромисс между задержкой для себя и тех встречных сторон, доступных для торговли с, и в зависимости от уровня помех присутствуют в то время. jl777 назвал его как "дождливый день" страхование, которое кажется способной характеристикой предложения.

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

Жаль, что нет никакого способа, чтобы совершить с открытым ключом.

С чеканкой, вы можете иметь его потребляли с сетью сплетен. к "проводить" чеканка, вы можете подписать сообщение с помощью открытого ключа на выходе. Если человек не завершает сделку, то вы можете транслировать сообщение (или просто транслировать его сразу). Сообщение будет содержать tradeId для выхода и текущего времени. Это может сбросить чеканку к нулю, для более слабого черного списка.

Обе стороны сделки потеряют чеканку, хотя. Спамер должен потерять его быстрее, чем обычный пользователь.

котировка
У меня есть сильное интуитивное (порождающая сущность) ощущение, что я найти изъян в любом способе использования платы, чтобы блокировать атакующие, который хочет, чтобы заклинить протокол, потому что плата не может быть атомарной с торговлей

Вы можете сделать это связано с торговлей, имея окончательные шаги в релизе протокола сооплату. Если сделка не завершится обе стороны теряют деньги.
TierNolan сейчас офлайн Пожаловаться на TierNolan   Ответить с цитированием Мультицитирование сообщения от TierNolan Быстрый ответ на сообщение TierNolan

18 февраля 2016, 2:43:34 PM   # 18
 
 
Сообщения: 420
Цитировать по имени
цитировать ответ
по умолчанию Re: Атомные свопы с помощью разреза и выберите

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

DoS от заклинивания является первостепенной угрозой для децентрализованного обмена, которые должны быть решены в первую очередь. Если это не будет решена, то не стоит продолжать, потому что наверняка правительство будет против обмена, которые они не могут регулировать для обеспечения ЗСК и т.д. (это будет более в 2017 году). Правительства имеют неограниченные средства для атаки с (например, $ 4 + триллион пошел отсутствует в DoD бюджета и финансы Глубокое СОСТОЯНИЕ). Пожалуйста, не говорите мне, что Дональд Рамсфелд и Билл Moyers не являются основными и надежными источниками.

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

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

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

Таким образом, первое требование нам нужен способ для обеих сторон, чтобы подписать где подпись не действует, если оба они не завершили подписание протокола. Я не уверен, если это может быть достигнуто. Мне нужно будет думать о том, какой вариант Шамир, Как поделиться секретом скрещивают с "одновременное подписание контракта", Что-то вроде обмена Диффи-Хеллмана (но разделяет симметричный ключ), где каждая из сторон может затем подписать от имени обеих сторон, свидетельствующих о том, что обмен Диффи-Helman произошло.

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

Таким образом, таким образом, я делаю вывод, что децентрализованный обмен, вероятно, не будет работать, если нет какой-то репутация системы. Но тогда, когда я считаю систему репутации конструкции, они также могут быть Сибли нападение. Это кажется единственно возможным решением будет сеть доверия подобно PGP, в котором я решил доверять тем, кто доверяет мне, и наоборот. Но проблема с Web доверия в этом контексте злоумышленник может Сиб атаковать его первым завоевать доверие, то нарушение доверия, таким образом, в результате чего сеть доверия неустойчивой.

Вздох.  

Если кто-то может придумать решение на концептуальном уровне (не важно, что в настоящее время предлагают блок цепи), я хотел бы, чтобы прочитать его.

До сих пор децентрализованный обмен выглядит jammable в каждом дизайне я планируемый.

У меня есть сильное интуитивное (порождающая сущность) ощущение, что я найти изъян в любом способе использования платы, чтобы блокировать атакующие, который хочет, чтобы заклинить протокол, потому что плата не может быть атомарной с торговлей

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

Но моя точка защемление придет раньше, было установлено, что соединение.

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

Вы якобы отклоняя случай злоумышленника, который может взимать стоимость нападения на коллектив. Именно в этот момент, добыча картель Китая контролирует, по оценкам, 65% hashrate Bitcoin и они наложили вето на каждый блок увеличения размеров (даже разумно удваивающие классиков до 2Мб), и они, очевидно, имеют очень низкие затраты на электроэнергию, так что не немыслимо, что с "подмигнуть и рукопожатия" это электричество приходит бесплатно из трех ущелий плотины. Тот факт, что я доказал, что они должны лгали о проблеме пропускной способности (так как они, конечно, могли бы поставить бассейн за границей и просто ретранслировать хэш через Великий брандмауэр Китая). Одной из причин могло бы быть, чтобы заставить операционные издержки выше и пожинать больше прибыли.

Таким образом, есть уже косвенные доказательства того, что сценарий атаки я беспокоюсь не невозможно.
TPTB_need_war сейчас офлайн Пожаловаться на TPTB_need_war   Ответить с цитированием Мультицитирование сообщения от TPTB_need_war Быстрый ответ на сообщение TPTB_need_war

18 февраля 2016, 6:35:14 PM   # 19
 
 
Сообщения: 1162
Цитировать по имени
цитировать ответ
по умолчанию Re: Атомные свопы с помощью разреза и выберите

Злоумышленник с бесконечными ресурсами, которые не суммируются и не заботятся о денежных потерях ...

Я утверждаю, что такой злоумышленник может принести любую сеть в тупик. Так защиты от этого не является высоким приоритетом в начале.

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

Таким образом, это означает, что система репутации будет эффективной, как торговать с новичку счетом будет нести некоторый небольшой риск того, что они являются Papercut злоумышленником, который установил ловушку.

Связав плату в OrderID того, который разместил заявку / спросить, что означает, что Papercut атака только задержки, как плата, которая была оплачена еще действительна для завершения атомного свопа с реальным партнером. Злоумышленник не может повторно использовать плату платную, так что это АСИММЕТРИЧЕСКОЕ в хорошем смысле.

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

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

Перед тем, как начать жаловаться, что требует доверия, что этот процесс будет честью, мой ответ, что если этот сценарий атаки остается гипотетическим, то это не проблема. Если это произойдет и сборы, уплачиваемые за неудавшихся свопы не возвращается, то это повредит репутации InstantDEX и так есть сильный стимул, чтобы держать клиента счастливым. Имейте в виду, что это 0,13% сборов, которые теряются из-за злоумышленником то не заботиться о потере денег, и просто хочет, чтобы заклинить вещи. Как правило, не жизнеспособные нападения не большой приоритет решить. Но я не хочу, чтобы какие-либо препятствия для использования InstantDEX, так что я совершу возместить уплаченные пошлины за атомные свопы, которые DonT полным, до тех пор, как txfees нужно отправить возвраты меньше, чем 10% от суммы возврата.

В отличие от того, 100% своего капитала на риск при использовании централизованного обмена.

Джеймс
jl777 сейчас офлайн Пожаловаться на jl777   Ответить с цитированием Мультицитирование сообщения от jl777 Быстрый ответ на сообщение jl777

18 февраля 2016, 9:42:01 PM   # 20
hv_
 
 
Сообщения: 672
Цитировать по имени
цитировать ответ
по умолчанию Re: Атомные свопы с помощью разреза и выберите

Пардон. Чтение заголовка с SWAP, а затем разбор истории, которую я, наконец, понять, вы пытаетесь достичь лишь "легко" крипто CCY SPOT торговли (даже правильнее один и тот же день вперед), выполнив одно из "простой" умный контракт и уже бороться с этим?

Почему не пытается некоторые вещи пари? (К сожалению, просто caspering вокруг немного)
Я действительно хочу знать и видеть такие вещи легко работать, прежде чем более сложные вещи должны быть разработаны, Савелий ....

Как насчет 2factor как механо?
hv_ сейчас офлайн Пожаловаться на hv_   Ответить с цитированием Мультицитирование сообщения от hv_ Быстрый ответ на сообщение hv_



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW