Возможно ли иметь приложение, которым управляет один объект?

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

Ответы (1)

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

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

pragma solidity 0.4.25;

contract SimpleWhitelist {

    address public owner;
    mapping(address => bool) public isAuthorizedDevice;

    modifier onlyOwner {
        require(msg.sender==owner);
        _;
    }

    modifier onlyAuthorizedDevice {
        require(isAuthorizedDevice[msg.sender]);
        _;
    }

    constructor() public {
        owner = msg.sender;
    }

    function addOrRemoveDevice(address device, bool authorized) public onlyOwner {
        isAuthorizedDevice[device]=authorized;
    }

    function somethingDevicesDo() public onlyAuthorizedDevice {
        // contract rejects transaction unless the sender is whitelisted.
    }
}

Надеюсь, поможет.

Но для этого решения требуется предварительное знание от объекта А о белом списке. Это может поставить под угрозу их конфиденциальность / анонимность, поскольку организация А может связать будущие транзакции с одним из них.
Я думаю, нам нужно больше знать о требованиях к секретности и частоте транзакций, масштабах и т. д., чтобы знать, осуществим ли ваш план.
Идея заключается в том, что в некоторый временной интервал объект А будет получать запросы от некоторых других устройств, и на основе этой информации каждому устройству будет присвоено определенное значение. Таким образом, требуются следующие меры безопасности/конфиденциальности: 1. Сохранение конфиденциальности идентификационных данных пользователей от Объекта А. 2. Также Объект А хотел бы обнаружить, не ведет ли себя одно из устройств ненадлежащим образом, пытаясь изменить свой запрос в будущем, чтобы получить больше привилегий.