Розробка системи soul-bound credentials

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Розробка системи soul-bound credentials
Середній
~3-5 днів
Часті запитання

Напрямки блокчейн-розробки

Етапи блокчейн-розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1288
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1198
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    902
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1122
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    589
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    859

Розробка системи душевидних облікових даних

Soul-bound облікові дані — перевіряємі облікові дані, реалізовані через non-transferable токени (SBT). Поєднують криптографічну верифікованість VC з on-chain постійністю та composability. Розробники протоколів можуть верифікувати облікові дані on-chain у смарт-контрактах — те, що звичайні VC безпосередньо не підтримують.

Відмінність від звичайних SBT

Звичайний SBT: NFT з метаданими. Метадані містять claims, але їх верифікація вимагає довіри до видавця та знання його ключа підписання.

Soul-bound облікові дані: SBT де on-chain доступні не тільки факт існування, але й перевіряємі claims. Смарт-контракт може перевірити що SBT виданий конкретним довіреним видавцем та містить певні атрибути.

Реалізація

contract SoulBoundCredentialSystem {
    // Довірені видавці з їхніми публічними ключами
    mapping(address => bool) public trustedIssuers;
    
    struct Credential {
        address issuer;
        uint256 issuedAt;
        uint256 expiresAt;
        bytes32 credentialType;
        bytes encodedClaims;  // ABI-encoded claims
        bool revoked;
    }
    
    mapping(uint256 => Credential) public credentials;
    mapping(address => uint256[]) public holderCredentials;
    
    uint256 private _tokenIdCounter;
    
    function issueCredential(
        address recipient,
        bytes32 credentialType,
        bytes calldata claims,
        uint256 validityPeriod
    ) external onlyTrustedIssuer returns (uint256) {
        uint256 tokenId = ++_tokenIdCounter;
        
        credentials[tokenId] = Credential({
            issuer: msg.sender,
            issuedAt: block.timestamp,
            expiresAt: block.timestamp + validityPeriod,
            credentialType: credentialType,
            encodedClaims: claims,
            revoked: false
        });
        
        holderCredentials[recipient].push(tokenId);
        // mint SBT (non-transferable)
        _mintSoulBound(recipient, tokenId);
        
        return tokenId;
    }
    
    // Інші смарт-контракти викликають це для on-chain верифікації
    function verifyCredential(
        address holder,
        bytes32 credentialType,
        bytes32 requiredClaim,
        bytes32 requiredValue
    ) external view returns (bool) {
        uint256[] memory tokenIds = holderCredentials[holder];
        
        for (uint i = 0; i < tokenIds.length; i++) {
            Credential memory cred = credentials[tokenIds[i]];
            
            if (cred.credentialType == credentialType &&
                !cred.revoked &&
                block.timestamp < cred.expiresAt &&
                trustedIssuers[cred.issuer]) {
                
                // Перевірити конкретний claim у закодованих даних
                if (_checkClaim(cred.encodedClaims, requiredClaim, requiredValue)) {
                    return true;
                }
            }
        }
        return false;
    }
}

ZK Soul-bound облікові дані

Публічні on-chain claims порушують приватність. ZK підхід:

Sismo Protocol: користувач генерує ZK proof на основі своїх SBTs/on-chain даних. Proof доводить факт без розкриття конкретних токенів. Zkdrop — отримай governance power або rewards на основі ZK proof.

Анонімні атестації: доведи "у мене є SBT від Trusted Issuer X з claim level >= 2" без зазначення tokenId чи інших даних.

Soul-bound облікові дані стають інфраструктурним шаром для compliant DeFi, DAO governance та web3 систем репутації. Розробка: 4-8 тижнів.