Вообще-то, тут есть несколько тонких моментов.
1) для обеспечения достаточной криптостойкости нужны майнеры, много майнеров;
2) для привлечения майнеров нужна экономическая выгода;
3) биткоин как денежная единица не должен влиять на ход и результат голосования;
4) для этого важно использовать только неденежные свойства биткоина;
5) среди неденежных свойств биткоина самым важным является стойкость отдельной транзакции ко взлому;
6) вторым свойством будет гласность транзакции умноженная на анонимность источника;
7) третьим свойством будет возможность включения в транзакцию пользовательских данных (на этом основана система приватных сообщений в биткоин-системе).
Первый пункт обеспечивается в должной мере только в действующей оригинальной системе. Никакие субституты по количеству майнеров не подходят.
Второй пункт обеспечивается более-менее во всех коинах, но в оригинальной все-таки лучше стабильность.
Третий пункт можно обеспечить отправкой 0 BTC с одного своего кошелька на другой свой кошелек.
Четвертый пункт: в транзакции имеется поле
scriptPubKey - это поле, вместе с scriptSig составляют сценарий на модифицированном Forth-like языке.
Обычно, эти поля содержат следующее:
scriptPubKey: OP_CHECKSIG
scriptSig:
Команда
OP_CHECKSIG запускает подпрограмму проверки принадлежности денег в транзакции хозяину
и еще что-то.
Если же записать следующее:
scriptPubKey: <некоторое слово> OP_DROP OP_CHECKSIG
scriptSig:
, то транзакция ничем не будет отличаться от рассмотренной выше, кроме того, что будет содержать в себе лишние данные
<некоторое слово>.
Размер
scriptPubKey ограничен 10 килобайтами (?). Поэтому он может содержать все необходимые данные, как-то: идентификатор версии данных, идентификатор личности, идентификатор субъекта, идентификатор голосования, идентификатор выбранного ответа, таймстемп, антибот-слово, хеш
<некоторого слова> и другие данные в зависимости от ситуации.
-
Как управляются субъекты?Субъекты имеют определенные свойства, заложенные в них при создании, и хранящиеся со специальным идентификатором данных в цепочке блоков. Свойства субъекта определяют порядок вынесения вопросов на всеобщее голосование, порядок изменения собственных свойств, порядок приглашения новых людей, исключения левых людей, порядок выбора и отзыва "особых" людей внутри субъекта: модераторы, исполнители, аудиторы.
-
Как осуществляются голосования?Голосования выносятся действующими участниками субъекта. При отсутствии модераторов голосования сразу выносятся на всеобщее голосование. Если имеются модераторы, то они проверяют валидность и актуальность вопроса и большинством принимают решение о вынесении вопроса на всеобщее голосование.
Голосования имеют внутренние свойства, определяющие порядок голосования, время приема голосов, метод подсчета голосов, варианты ответа и другую необходимую информацию.
По окончании голосования участники по имеющимся в блоках транзакциям подсчитывают голоса и выпускают транзакции со специальным идентификатором данных. Эти специальные транзакции "подтверждаются" другими участниками, и как только одна из таких транзакций набирает большинство от проголосовавших, то она "заносится" в свойства прошедшего голосования.
Естественно, все это требует тщательной проработки и обкатки.