paint-brush
예측 불가능한 보안: Web3 게임의 난수 기술~에 의해@felixarpa
1,065 판독값
1,065 판독값

예측 불가능한 보안: Web3 게임의 난수 기술

~에 의해 Felix Xu6m2024/01/16
Read on Terminal Reader

너무 오래; 읽다

이 기사에서는 Web3에서 임의성이 수행하는 역할, 난수 생성기(RNG)를 이길 수 있는지 여부, RNG 크래킹 방법을 살펴봅니다.
featured image - 예측 불가능한 보안: Web3 게임의 난수 기술
Felix Xu HackerNoon profile picture
0-item

모든 플레이어는 확률을 이기고 싶어합니다. 그러나 실제로 그렇게 하는 사람은 거의 없습니다. 카지노의 슬롯머신이 어떻게 이길 수 있는지 궁금한 적이 있습니까? 아니면 우연에 의존하는 Web3 게임에서 승리하는 방법은 무엇입니까? 이 기사에서는 Web3에서 임의성이 수행하는 역할, 난수 생성기(RNG)를 이길 수 있는지 여부, RNG 크래킹 방법을 살펴봅니다.


Web3의 광대한 범위에서 무작위성은 단순한 우연이 아닙니다. 이는 게임 경험부터 중요한 블록체인 기능에 이르기까지 다양한 결과에 영향을 미치는 다양한 시나리오의 중추적인 요소입니다.

Web3에서 무작위성이 중요한 역할을 하는 곳

Web3에서는 무작위성이 다양한 측면에 영향을 미치는 근본적인 힘으로 작용합니다. 한 가지 눈에 띄는 영역은 게임 영역 내인데, 특정 위치에서 희귀한 게임 내 아이템을 공개할 가능성은 난수 생성기의 메커니즘에 따라 결정됩니다.


이러한 무작위 만남은 종종 상대를 물리쳤을 때 플레이어의 보람 있는 경험을 결정합니다.


복권은 특히 공정성과 개방성이 가장 중요한 Web3 생태계 내에서 명백히 투명하고 검증 가능한 무작위 프로세스를 요구하는 무작위성의 전형적인 예를 보여줍니다. 그렇지 않은 경우 복권 추첨은 잠재적으로 특정 그룹이나 플레이어에게만 유리할 수 있습니다.


또한 특정 레이어 1 블록체인에서는 RNG를 통해 블록 생산자를 무작위로 선택하는 것이 중요합니다. 이 선택 프로세스가 검증 가능한 무작위성이 부족하고 식별 가능한 패턴을 나타내는 경우, 블록 생산자는 이를 유리하게 활용하여 자신의 이익에 맞는 블록을 전략적으로 생성할 수 있습니다. 이러한 행동은 네트워크 보안을 손상시키며 Web3 블록체인 운영에서 진정한 무작위 및 편견 없는 선택 메커니즘의 중요한 역할을 강조합니다.


무작위성은 Web3 게임과 자율 세계에서 매우 중요한 역할을 하지만, 예측 가능한 패턴을 생성할 수 있는 알고리즘을 사용하는 의사 난수 생성기(PRNG)와 물리적 프로세스를 사용하는 실제 난수 생성기(TRNG)를 구별하는 것이 중요합니다. 더 높은 보안을 위해. Web3의 대부분의 RNG 취약점은 PRNG의 결정론적 특성에서 발생합니다.

난수 예측이 가능한 이유

난수를 예측하는 것은 PRNG 내의 특정 취약점과 패턴으로 인해 그럴듯한 업적입니다. PRNG의 생성 프로세스는 생성기의 초기 시드(시작점)와 상태(현재 조건)가 알려진 경우 활용될 수 있는 패턴을 따릅니다.


이 맥락에서 "시드"와 "상태"가 무엇을 의미하는지 더 자세히 살펴보겠습니다. 중요한 입력인 시드는 난수 생성 프로세스를 시작합니다. 현재 시간만큼 간단한 것일 수도 있습니다. 상태는 생성된 각 숫자와 함께 발전하는 생성기의 현재 상태를 나타냅니다. 따라서 초기 상태를 알면 앞으로 나올 숫자의 전체 순서를 예측할 수 있습니다. 이러한 결정론적 특성은 높은 수준의 보안 임의성을 요구하는 시나리오에서 상당한 위험을 초래합니다.


RNG 작동 방식


게다가 RNG에 중앙 집중식 소스를 사용하면 추가적인 취약점이 발생합니다. 중앙 집중식 시스템은 단일 실패 지점이 되어 악의적인 공격의 주요 대상이 됩니다. 역사적 사건을 통해 무차별 대입 공격이 이러한 시스템을 손상시킬 수 있음이 입증되었습니다.


공격자는 수많은 무작위 추측으로 중앙 서버를 가득 채우고 예측을 미세 조정하기 위해 점진적인 조정을 수행하여 궁극적으로 생성된 다음 난수를 추측하는 정확도를 높일 수 있습니다.


이러한 취약점은 다양한 애플리케이션, 특히 데이터 무결성과 무작위성이 가장 중요한 Web3 환경에서 보다 안전하고 분산된 RNG 솔루션의 필요성을 강조합니다.

RNG 취약점 악용: 이론적 방법

가설 테스트를 통해 씨앗 찾기

RNG를 활용하는 첫 번째 단계는 숫자 생성의 출발점인 시드를 찾는 것입니다. 이 과정에는 잠재적인 종자 공급원에 대한 다양한 가설을 공식화하고 테스트하는 과정이 포함됩니다. 예를 들어 시드에 대한 가설이 RNG 작업 시간인 경우 일정한 시간에 숫자를 생성하고 패턴에 대한 출력을 분석하면 이 가설을 확인하거나 반박할 수 있습니다. 고급 통계 기법을 적용하면 즉각적으로 드러나지 않을 수도 있는 미묘한 패턴을 감지할 수 있으므로 종자 예측의 정확도가 높아집니다.


상태 분석 및 리버스 엔지니어링

시드를 식별하는 것 외에도 RNG 알고리즘 내에서 상태 전환을 이해하는 것이 중요합니다. 생성된 각 숫자에 따라 상태가 어떻게 변하는지 분석함으로써 RNG 알고리즘을 역설계하는 것이 가능합니다. 이 방법에는 RNG의 복잡성에 따라 알고리즘 분석 및 잠재적인 암호화 리버스 엔지니어링을 포함한 정교한 수학적 및 계산 기술이 포함됩니다.


패턴 인식을 위한 머신러닝 활용

인공지능(AI)의 하위 집합인 머신러닝은 대규모 데이터 세트의 복잡한 패턴을 해독하는 데 탁월합니다. 이 기능은 단순한 패턴 인식을 넘어 명시적인 프로그래밍 없이도 알고리즘이 학습하고 적응할 수 있도록 해줍니다. 대표적인 사례가 구글의 알파고(AlphaGo)다. 보드 게임 바둑에서 훈련된 이 AI 시스템은 방대한 양의 게임 데이터를 학습하여 게임을 마스터했으며, 결국 그들의 움직임을 예측하여 세계 챔피언을 능가했습니다.


이 원리는 RNG 출력 분석에 직접 적용할 수 있습니다. 기계 학습 알고리즘은 RNG 생성 숫자의 광범위한 데이터 세트를 처리하여 기존 분석 방법으로는 명확하지 않을 수 있는 미묘한 불규칙성 및 알고리즘 재설정을 포함한 기본 패턴을 감지할 수 있습니다.


머신러닝 모델은 충분히 큰 데이터 세트를 학습함으로써 재설정 지점 및 출력 패턴을 포함하여 이러한 RNG의 순환적 특성을 식별할 수 있습니다. 이러한 패턴을 이해하면 향후 RNG 출력을 예측하고 잠재적으로 조작할 수 있습니다. 이 기능은 게임이나 암호화 애플리케이션과 같이 예측 가능성으로 인해 보안 취약성이나 불공정한 이점이 발생할 수 있는 환경에서 RNG를 사용할 때 특히 중요합니다.


사진 제공: Miguel Á 파드리냐: https://www.pexels.com/photo/dominoes-585293/


암호화 분석

RNG의 암호화 분석은 암호화 설계 및 구현의 모든 측면을 면밀히 조사하는 다각적인 접근 방식입니다. 이 과정은 무작위성의 원료인 엔트로피 소스를 철저히 조사하는 것부터 시작됩니다. 엔트로피 품질, 수집 방법 및 수집 속도는 중요한 요소입니다. 품질이 낮은 엔트로피 또는 예측 가능한 수집 방법은 RNG의 출력을 약화시킬 수 있습니다.


다음으로 암호화 알고리즘 자체가 알려진 공격에 대한 저항성을 검사합니다. 여기에는 시간이 지남에 따라 나타나는 편견이나 패턴을 감지하기 위한 통계 분석과 차등 암호 분석 또는 선형 암호 분석과 같은 알려진 암호 분석 기술에 대한 알고리즘 테스트가 포함됩니다. 여기서 목표는 알고리즘이 시드 또는 상태의 특정 비트에 의해 불균형적으로 영향을 받는 출력을 생성하지 않도록 하는 것입니다.


게다가 소프트웨어나 하드웨어에 RNG를 구현하면 추가적인 취약점이 발생할 수 있습니다. 분석의 이 부분에는 무작위성을 손상시킬 수 있는 버그나 실수를 찾기 위한 코드 감사가 포함됩니다. 불충분한 엔트로피 혼합, 예측 가능한 상태 변수 증가 또는 부적절한 시딩과 같은 결함은 공격자가 악용할 수 있습니다. 또한 암호화 분석은 RNG의 운영 환경으로 확장되어 공격자가 시스템의 간접적인 특성을 관찰하여 내부 상태를 추론할 수 있는 타이밍 공격이나 전력 분석과 같은 부채널 취약성을 확인합니다.

검증 가능한 무작위 및 변조 방지 RNG

Randcast 어댑터 계약이 DApp 또는 Web3 게임으로부터 무작위성 요청을 받으면 프로세스가 시작됩니다. 그런 다음 BLS-TSS(Boneh-Lynn-Shacham Threshold Signature Scheme) 작업을 시작하여 이러한 작업을 수행할 수 있는 여러 노드로 구성된 ARPA 네트워크에 온체인 이벤트를 보냅니다.


네트워크는 이 이벤트를 승인하고 작업을 완료한 후 Randcast 어댑터 계약에 무작위 시드로 서명을 반환합니다. 그런 다음 이 시드는 주사위 굴림, 섞인 배열 또는 기타 형식 등 원하는 임의성 유형으로 변환되고 후속 DApp 또는 Web3 게임 로직에서 활용됩니다.


랜드캐스트는 어떻게 다른가요?

Randcast의 접근 방식은 신뢰할 수 있는 무작위성이 필수적인 시나리오에서 특히 중요합니다. 스마트 계약 결과가 입력에 따라 결정되는 블록체인의 결정론적 환경에서는 난수 생성을 쉽게 조작할 수 있습니다. 예를 들어, 블록 해시나 타임스탬프를 임의성 소스로 사용하면 채굴자가 이익을 위해 악용할 수 있습니다. Randcast는 분산형 네트워크를 통해 난수를 생성하여 프로세스의 투명성과 검증 가능성을 보장함으로써 이 문제를 회피합니다.


Randcast 디자인의 중요한 측면은 변조에 대한 복원력입니다. 기존의 단일 엔터티 무작위성 생성에는 조작 위험이 있습니다. Randcast는 ARPA 네트워크의 집합적 기능을 활용하여 이 문제를 회피합니다. BLS 임계값 서명 작업을 통해 개별 노드가 최종 무작위성 결과에 영향을 미칠 수 없도록 보장합니다. 이러한 분산형 접근 방식은 보안을 강화할 뿐만 아니라 생성된 무작위성의 무결성과 공정성을 유지하므로 Randcast를 Web3 개발자의 무기고에 없어서는 안될 도구로 만듭니다.


참조 링크