А связка адресов в смарте в предложенной Вами схеме получится приватной?
Вы можете сделать чтобы смартконтракт по запросу какого-либо адреса выдавал все адреса с которыми он в связке, а также баланс каждого или суммарный баланс всех адресов, получится что все связки являются публичными. Вы можете так не делать и получите "приватные связки". "Приватные связки" написаны в кавычках, потому что, если кто-то начнет анализировать все приходящие транзакции на адрес смартконтракта, то он будет видеть с какого адреса пришла транза и какой связной адрес в ней указан. Анализ транзакций приходящих на адрес смартконтракта, дает возможность получить все связки (это возможно, но очень муторно).
Я не вижу смысл делать связки приватными. В любом блокчейне вы можете промониторить любой адрес, но вы не знаете кто его владелец. Здесь тоже самое, только мониторить можно сразу группу адресов, но владелец остается неизвестен.
По смартконтракту есть дополнения:
При привязке адреса к адресу, нужна мультиподпись (подпись с этих двух адресов)
В нем обязательно должна быть функция переноса БД (база со всеми связанными адресами) на новый смартконтракт, она может вызываться только владельцем контракта (это адрес который задеплоил данный контракт). Делается это для того, чтобы не напрягать холдеров (новая связка адресов на новом контракте) всякий раз когда деплоится новый контракт, с новыми фишками.
Допустим, мы говорим холдеру, что он всего 1 раз может привязать свои адреса через данный смарт контракт, и сделать это абсолютно бесплатно, за исключение комиссии за транзакцию. После этого он на всегда получит возможность получать легкий доступ ко всем текущим и будущим фичам!
Допустим у меня 3 адреса с крупными суммами, я их привязал смартконтрактом, далее я создал новый адрес и привязал его ко своим адресам. Но для чего это нужно, спросите вы? Отвечаю: Теперь я могу учавствовать во всех новшиствах и идентифицироваться при помощи 4 ключа, теперь мне не надо переживать за свой баланс, если я вдруг попаду на фишинговый сайт и т.д., даже если у меня украдут и вскроют этот 4 ключ, на нем нет баланса. Я просто создам новый адрес как для нового человека и к нему перепривяжу 3 адреса с монетами.
Обясняю для чего в смартконтракте нужна функция переноса БД на новый контракт:
Допустим мы имеем контракт который содержит только БД с привязанными адресами и умеет выводить информацию по ним, Больше он ничего не умеет.
Через месяц мы захотели сделать голосовалку, где каждая клошка это 1 голос. И допустим мы делаем голосование по времени, скажем с 1 сентябра по 1 октября. Да легко! Мы создаем новый смартконтракт куда переносится БД с основного смартконтракта и за каждую монету начисляется 1 токен (голосовой), идею поняли надеюсь. 1 октября все токены сожгуться.
Смотрите какой плюс:
Холдер 1 раз привязал свои адреса, через месяц он одной транзай может проголосовать.
Или допустим вы не хотите чтобы 1 кло = 1 голосу. Да пожалуйста! Пишити смартконтракт, который дает 1 токен голоса, за 1 адрес.
Или 1 токен голоса за каждые 100 кло, но не более 10000 кло на адресе.
Язык программирования имеет полноту по Тьюрингу, так что можно выполнять любые извращенные идеи, не напрягая при этом холдеров и юзая собственный блокчейн. Далее, при удачных экспириментах, начнете рекламировать саму технологию кло.
P.S. Если вы реально хотите попробовать сделать 1 кло = 1 $. Что при таком объеме всего кло очень и очень не просто, то для начала начните использовать собственную технологию, с ОЧЕНЬ ДЕШЕВЫМИ ТРАНЗАКЦИЯМИ, и покажите другим людям или компаниям на сколько это отлично работает и очень дешего в использовании!