| | Судья-оракул
Одна из сложностей, возникающих при "заочном" заключении контрактов, - это так называемая проблема одновременной подписи. Для многих типов сделок (кроме подписания открытой оферты, то есть публичного предложения заключить сделку) существенно наличие подписей обеих сторон. При заочном (не обязательно цифровом) заключении контрактов добиться этого не так-то просто. Одна сторона может, получив контракт с подписью контрагента, воздержаться от его возврата последнему со своей подписью, получив выбор: при благоприятных обстоятельствах позднее предъявить контракт, подписанный обеими сторонами, либо оспорить сам факт заключения сделки, заявив, что его не было. Понятно, что такой риск сильно ограничивает область заочного заключения контрактов между не доверяющими друг другу сторонами. Один из известных протоколов, решающих эту проблему, - это введение посредника-"нотариуса", обеспечивающего "квазиодновременность" подписи (две копии контракта с подписями двух сторон передаются через "нотариуса", который отправляет их дальше не ранее, чем получит обе). Введение третьего лица в сделку может быть невозможным (не находится "нотариуса", которому доверяют обе стороны), нежелательным (сделка конфиденциальна, и ее содержание может разглашаться только в случае возникновения конфликта) или просто слишком дорогим. Оказывается, в среде электронных коммуникаций можно поступить иначе. Заочные контрагенты не присутствуют одновременно в одном месте, зато они могут моментально и дешево обмениваться данными. Представьте себе, что вместо того, чтобы поставить свою подпись за один раз, вы рисуете лишь один из ее штрихов и передаете документ контрагенту. Он делает то же самое. Видя его "продвижение в деле подписи", вы делаете то же самое. С каждым шагом оба контрагента "увязают" в контракте все глубже и глубже, и в конце концов он оказывается подписанным как бы одновременно. Для цифровой подписи (как функционального эквивалента подписи собственноручной) придуман ряд продвинутых протоколов, позволяющих это осуществлять. Конкретные детали математики этих протоколов нам здесь не важны [2]. Важно другое: оказывается, что этот протокол работает только в случае вероятностной (недетерминированной) модели судьи (арбитра), к которому стороны потенциально обращаются при возникновении конфликта. Каковы бы ни были детали, выполняя каждый шаг, одна из сторон, по сути, заявляет, что признает себя связанной контрактом с определенной вероятностью, причем большей, чем на предыдущем шаге. "Правильный" арбитр случайно выберет число между нулем и единицей, а потом посмотрит на указанную вероятность и, если она больше этого числа, признает контракт действительным и сделку - состоявшейся [3]. (Понятно, что бросающий монету или кости судья в мантии выглядит странно, поэтому на месте арбитра естественно было бы видеть все-таки автомат.) Как только (законом или прецедентом) устанавливается определенная мера принятой стороной вероятности (50%, 75% или любая другая), за которой следует действительность сделки, протокол разрушается: передача "критической" частичной подписи становится равносильна просто подписи, и мы оказываемся в самом начале, перед все той же "проблемой одновременной подписи" [4]. Таким образом, парадоксально, Фемида должна быть слепа. Можно ли обойтись без недетерминированного арбитра и квазиодновременно подписать "обычный" цифровой контракт? Такие протоколы существуют, но работают лишь при очень сильном допущении симметричности ресурсов (вычислительной мощности) сторон [5].
2 (обратно к тексту) - Интересующихся отсылаем к C. P. Pfleeger, Security in Computing - Englewood Cliffs: 1989; M. Ben-Or, O. Goldreich, S. Micali & S. L. Rivest, A Fair Protocol for Signing Contracts // IEEE Trans. On Information Theory, v. 36, No.1 (Jan 1990); S. Even, O. Goldreich & A. Lemplel, A Randomizing Protocol for Signing Contracts // Comm. of the ACM, v. 28, No.6 (Jun 1985). 3 (обратно к тексту) - См. B. Schneier, Applied Cryptography, N.Y.: 1996, pp. 119-20. 4 (обратно к тексту) - Ibid. 5 (обратно к тексту) - Ibid., p. 121. | |