Как обеспечивается безопасность проведения транзакций
-
SmartHoldem использует криптографическое хеширование для обеспечения безопасности всех аспектов системы. Система использует EdDSA, поскольку она обеспечивает гораздо более быстрый механизм хэширования и обеспечения безопасности [см. http://cr.yp.to/highspeed/coolnacl-20120725.pdf]; а не ECDSA, который встречается во многих других криптомонетах, таких как биткойн.
Закрытый и открытый ключ (Key pair)
Key pair состоит из закрытого (приватного) ключа и открытого (публичного) ключа. Приватный ключ - это информация, известная только владельцу ключа. Открытый ключ получается из закрытого ключа и может использоваться для проверки того, что закрытый ключ принадлежит владельцу, но не предоставляет доступ к закрытому ключу владельца. Криптография по элиптической кривой используется для генерации криптографически защищенных пар ключей.
Процесс, используемый для создания пары ключей, работает в следующих предположениях:
Когда пользователь создает учетную запись, для пользователя генерируется мнемоника BIP39 (кодовая фраза). Эта кодовая фраза хэшируется с использованием хэш-функции SHA-256 в 256-битной строке. Этот хеш впоследствии используется как seed в ed25519 для генерации приватного ключа ks и получает его открытый ключ kp.
Генерация key-pair
С помощью приватного ключа пользователь может подписывать транзакции в объекте-транзакции и транслирует этот объект в сеть. Открытый ключ включен как часть транзакции, а узлы, которые получают транзакцию, могут проверить достоверность подписи с использованием kp. Это обеспечивает эффективную защиту как для пользователя, так и для сети, поскольку ks известен только пользователю, а kp может подтвердить, что подпись действительна.
Вторая фраза (будет доступна в новых версиях кошелька)
SmartHoldem предлагает дополнительный уровень безопасности для пользователя. Используя специальный класс транзакций, пользователь может зарегистрировать вторую парольную фразу, связанную с kp. Эта взаимосвязь требует, чтобы все последующие транзакции подписывались с использованием второй фразы, чтобы считаться действительной. Процесс генерации второй пары ключей такой же, как и для пары основных ключей.
Мультиподписи (Multisignature) (доступно в ближайших версиях кошелька)
СмартХолдем поддерживает аккаунты с мультиподписями в качестве альтернативной системы безопасности для пользователей, которым необходимо больше функций. Мультиподписная учетная запись - это учетная запись, которая требует чтобы несколько подписантов подписывали транзакцию несколькими подписями. Любой пользователь может включить учетную запись c мультиподписями на своем адресе, выпустив специальную транзакцию, в которой указывается группа ksn и требуется минимальное количество подписей, необходимых для подтверждения транзакции как действительной. Затем в блокчейн предполагается, что любые транзакции, происходящие из этого аккаунта, должны быть подписаны минимальным кворумом связанных аккаунтов до того, как любая транзакция из мультиподписной учетной записи может быть обработана.
Адрес
Адрес или id кошелька формируется из открытого ключа. Открытый ключ хешируется с использованием SHA-256 и результат выполнения всегда начинается с "S"