Я думаю, что я получил еще одну идею, как атаки двойной расходы могут быть обескураженный. Предыдущие идеи включали зеленые адреса и предварительно оплаченные счета. Оба эти подхода имеют свои недостатки, потому что они требуют, чтобы пользователь доверять либо бенефициару или 3-й партии и средства по-прежнему должны быть отправлены в какой-то предоплаченного счета или электронного кошелька службы не менее 6 блоков заранее. И вы всегда должны знать, с кем вы хотите отправить деньги в течение следующих 6 блоков, потому что каждый получатель может прийти с различными требованиями - некоторые хотят Mt. GOx зеленый адрес, другой может иметь свою собственную систему предоплаченную. В дополнение к этому, вы всегда должны доверять парню, у которого есть деньги.
Теперь я думаю, что у меня есть идея: Протокол Bitcoin уже позволяет фонды принадлежать несколько ключей (для 2-из-3 соглашений и аналогичных вещей). Это позволит нам, чтобы отметить выход как "может проводиться только тогда, когда A, B, C, D, E и F согласны", В этом случае А будет владельцем выхода и В, С, D, Е и F были бы полу-доверенных третьих сторон. Теперь, если я хотел бы провести свой выход, я бы сначала подписать сделку, а затем, я пошел бы в B, C, D, E и F. Они проверят, были ли я подписал сделку, а затем, они бы проверить, является ли «я м пытается выполнить двойной проводить атаки (они просто должны проверить, были ли они уже подписали противоречивую сделку). Если нет никаких проблем, я хотел бы получить мои 5 подписей и могу начать вещание моей сделки. Теперь Субъект может видеть, что я мог только проводить дважды проводить атаки с одобрением B, C, D, E и F; Он просто должен доверять один из этих 5 3 сторон. Если выясняется, что некоторые торговцы там не доверяют никому из моих 3 сторон, но вместо этого только доверия к G или H, я мог бы добавить их в список полувентилируемых доверенных лиц, а также.
Теперь есть только один небольшой вопрос - что произойдет, если один из пола-доверенных 3 сторон отказывается утвердить свои сделки, для любой нелегитимной причины? Тогда я буду не в состоянии получить доступ к моим средствам. На самом деле, никто не может получить доступ к ним. Для того, чтобы решить эту проблему, мы должны были бы функцию, что я бы назвал "выход транзакции", Сделка выхода является способом удаления вышеуказанных ограничений с выхода. Тем не менее, этот вид функции явно нуждается в какой-то защиты от злоупотреблений, и я получил простую идею, как можно реализовать такую защиту: Нам просто нужно требовать, чтобы A (владелец средств) объявляет о своем намерении выполнить выход сделка некоторое время (скажем, ~ 100 блоков) заранее. Это заявление должно быть выполнено в виде специальной операции, которая будет положить в blockchain. Теперь, A (владелец продукции) придется ждать 100 блоков. После этих 100 блоков он будет разрешено выполнять свою выездную сделку без одобрения его пол-доверенных 3 сторон. Тем не менее, в течение этих 100 блоков, регулярные сделки будут по-прежнему иметь возможность очистить как обычно, поэтому регулярно подписала сделку будет по-прежнему иметь возможность очистить. Очевидно, что торговцы должны воздерживаться от доверия любой сделки, связанной с выходом в вопросе после того, как транзакция выхода была объявлена. Однако, если сделка анонс транслируется только после того, как они получили компенсацию, и клиент уже нет, они не должны бояться ничего, потому что законная сделка будет иметь достаточно времени, чтобы очистить перед плохой сделки выхода будет отпущен в blockchain.
Я немного обеспокоен тем, что такой подход может привести к операции значительно увеличиваются в размерах; Но, кроме того, что вы думаете? Будет ли работать этот подход?