저자: 블록펑크
머리말
머리말
4,000년 전 동대륙에서는 무당이 천천히 모닥불의 잿더미에서 거북 등껍질을 골라내어 거북 등껍질의 무작위 균열이 부족의 다음 사냥 시기를 결정했습니다. 2000년 전 중동에서는 상인들이 도박 테이블에 둘러앉아 테이블 위를 굴러가는 사면체 주사위를 초조하게 지켜보았고, 그 최종 결과는 큰 재산의 귀속을 결정했습니다. .
수천 년의 인류 역사에서 우리는 삶의 모든 측면, 민주주의와 공화국의 복권 제도, 전쟁 중 군사 정보 전달, 생산의 모델 계산, 도박 및 접대를 할 때 신뢰할 수 있는 참고 자료.
첫 번째 레벨 제목
진정한 난수
우리 조상들의 단순한 기술로 볼 때 인간은 난수를 생성하는 많은 방법을 만들었지만 이러한 난수의 난수성과 예측 불가능성은 거북 껍질을 태우는 것보다 높지 않습니다.
이미지 설명
"Millions of Random Tables"의 그림은 인터넷에서 가져온 것입니다.
이미지 설명
인터넷의 용암 램프 사진
첫 번째 레벨 제목
의사 난수
우리는 물리적 현상에서 신비하고 무한한 임의성을 얻을 수 있지만 일부 현상은 정확하게 정량화할 수 없습니다. 그러나 동시에 데이터를 암호화하고, 모델을 훈련하고, 공정한 중재를 하기 위해서는 엄청난 양의 난수가 필요합니다.자연 난수만으로는 충분하지 않습니다.
이미지 설명
ENIAC 컴퓨터 | 인터넷에서 가져온 사진
이 알고리즘은 다음과 같습니다. 먼저 이 알고리즘의 "종자"로 작업 시간의 밀리초 수와 같은 매우 짧은 임의의 값을 얻은 다음 "종자"를 제곱하고 제곱 결과의 중간 부분을 출력합니다. , 그런 다음 "시드"로 사용 위의 작업을 반복하십시오. 충분히 반복한 후 "난수"를 얻습니다.
이것은 제곱 방법이라고 하며 초기 시드의 무작위성에만 의존하는 시퀀스를 출력하는 무수한 의사 난수 알고리즘 중 하나일 뿐입니다. 기계의 확실성으로 인해 동일한 시드가 동일한 난수를 계산할 수 있습니다.
시드의 자릿수는 난수의 임의성을 결정합니다.두 자리 시드를 설정하여 10자리 난수를 생성하면 함수가 반복 주기를 생성하기 전에 최대 100개의 사용 가능한 난수만 얻을 수 있습니다. 자연에서는 10자리 난수에 대해 100억 개의 가능성이 있어야 합니다. 둘 사이의 큰 차수 차이는 참 난수와 거짓 난수의 차이입니다.
사진은 인터넷에서 퍼왔습니다
사진은 인터넷에서 퍼왔습니다
유사난수는 일정한 주기를 가지며 점의 집중도를 정맥으로 표현
물론 이런 종류의 난수는 사용하기에 충분하며, 우리는 컴퓨터 과학에서 매우 중요한 개념인 시간 경계, 즉 이 난수가 얼마나 오랫동안 안전하고 반복되지 않는지를 도입해야 합니다. 우리가 비밀번호 자동차 자물쇠를 사용하는 것처럼 정확한 비밀번호는 10,000개의 조합이어야 하지만 하나하나 시도하는 데 며칠이 걸린다는 것을 알고 있습니다. .
우리가 눈을 감고 키보드로 입력하는 임의의 문자열은 실제로 따라야 할 규칙이 있습니다. 이것이 QWER의 키보드 레이아웃입니다. 분석 후 난수를 크래킹할 가능성이 매우 높습니다.
첫 번째 레벨 제목
블록체인에 난수가 필요한 이유
전통적인 인터넷에서 난수는 암호화 및 개인 정보 보호의 기초입니다.임의 키를 공유함으로써 두 노드 간에 암호화된 개인 통신을 수행할 수 있습니다.블록체인에서는 개인 키 전송이 사용됩니다.속성; 동시에 난수 또한 제한된 대역폭에서 다중 노드 통신에 널리 사용됩니다.난수를 사용하여 합리적인 데이터 전송 순서를 결정하여 다중 당사자 노드를 조정할 수 있습니다.블록 체인에서 난수를 기반으로 합의 알고리즘을 사용하여 조정하는 것입니다. 거래 확인자는 모든 사람이 일정 기간 내에 일부 노드의 메시지만 업데이트하도록 하여 네트워크 메시지 수가 제한될 때 합의를 얻습니다.
요약하다
요약하다
블록 생성 권한을 공정하게 결정하고 일관된 합의를 유지합니다. 일부 PoW 및 PoS 메커니즘에서는 블록 생산자 또는 블록 생산자를 선택하는 데 난수가 사용되며 DPoS 메커니즘에서 순환 블록 생성 순서도 포함되며 이 역시 난수에 의해 결정됩니다.
개인 키 생성. 현재 개인키가 각 지갑에서 결정된 난수 방식으로 생성되는 한 보안 위험이 크다.
온체인 애플리케이션을 위한 난수 소스. 도박, 게임, 복권추첨, 유통, 설문조사 등 해킹당하기 쉬운 어플리케이션의 공정성과 공정성을 확보합니다.
첫 번째 레벨 제목
온체인 난수의 어려움
블록체인은 여전히 과거의 인터넷 기술을 기반으로 하고 있지만, 난수 생성 부분에서 큰 차이가 있습니다.
기존의 난수 생성 방식은 중앙 집중식이며 생성된 난수는 특정 기계의 상태 값 및 물리적 상태와 관련이 있지만 서로 다른 노드에서 동일한 난수 알고리즘으로 얻은 난수는 서로 다르며 또한 각각의 난수를 검증할 수 없기 때문에 전통적인 방법은 블록체인과 호환되지 않는 일관된 무작위성을 생성할 수 없습니다.
보조 제목
온체인 난수의 원리
1. 예측 불가능
난수는 위의 모든 계층을 포함한 전체 프로토콜 계층의 공정성을 결정하기 때문에 난수를 미리 예측할 수 있다면 공격을 시작할 기회를 기다릴 수 있습니다. 물론 이러한 예측불가능성에는 시간의 경계가 있는데, 일반적으로 블록체인 시간을 경계로 하여 계산의 난이도를 조절하거나 대기를 설정하여 예측의 난이도를 높인다. 요컨대 두 가지 옵션이 있습니다.
블록 시간(VRF/VDF)부터 난수가 직렬화되도록 보장
난수생성 난이도 보장, 상황에 따라 난이도 조정(해시충돌)
2. 방해하지 않는다
난수는 블록의 합의 확인을 결정하므로(비비잔틴 내결함성 시스템에서) 난수 발생을 방해할 수 있다면 노드/마스터링 없이 블록체인의 미래 방향을 간접적으로 제어할 수 있습니다. 간섭이 작을 수 있지만 여러 간섭이 누적되면 더 심각한 문제("증폭 공격")가 발생할 수 있습니다. 두 가지 솔루션이 있습니다.
난수 생성이 비대화형인지(임계값 서명 체계) 또는 전적으로 노드 자체의 상태(해시 충돌)를 기반으로 계산되는지 확인합니다.
난수 생성 지연을 설정하면 간섭자가 자신의 영향을 예측할 수 없도록 난수를 얻기 위해 복잡한 계산을 위해 오랜 시간을 기다려야 합니다.
3. 검증 가능
보조 제목
위의 원칙을 따르지 않는 일부 솔루션
블록체인에서 난수난이도를 해결하기 위해 많은 솔루션이 자발적으로 제작되었는데 위의 3가지 원칙에 부합하지 않는 다음 솔루션에 대해 간략히 소개합니다. , 그들은 현재 단계에 여전히 문제가 있으며 보안 요구 사항이 그렇게 높지 않은 곳에서 여전히 사용할 수 있습니다. 이는 특정 프로젝트에만 해당되는 것이 아니라 유사한 패러다임의 문제를 나타냅니다.
1. 오프체인 트루 난수 사용
온체인에서 난수를 계산하는 대신 대기 소음, 전기 펄스와 같은 물리적 현상에서 파생된 실제 난수를 사용하고 열 노이즈 회로가 포함된 칩셋에 의존합니다. 그러나 블록체인의 경우 오프체인 부분은 보이지 않으며 기본적으로 신뢰할 수 없습니다.체인에서 난수를 얻으려면 제3자가 체인에 업로드해야 하며 이는 블록체인의 탈중앙화 정신을 위반할 뿐만 아니라 완전히 검증할 수 없으며 변조 및 사전 예측의 위험이 있습니다. 오라클 머신이 분산된 방식으로 오프체인에서 진정한 난수를 얻기 위해 사용되더라도 여전히 물리적인 사람의 간섭이 있습니다. 따라서 이 계획은 매우 바람직하지 않습니다.
2. 현재 블록의 데이터를 랜덤 소스로 사용
체인의 많은 도박 Dapp은 최신 블록의 해시 루트 값을 계약의 임의 시드로 직접 참조한 다음 난수를 생성하는 데 사용됩니다. 간략한 소개는 체인의 컴퓨팅 성능 보장에 의존하지만, 이렇게 생성된 난수는 충분히 신뢰할 수 있는 것으로 보이지만 다차원 보안을 고려해야 합니다. 우선 블록의 데이터가 투명하고 모든 노드가 이를 얻을 수 있으며 공격자도 이를 사용하여 계약을 공격할 수 있습니다.유일한 장애물은 오픈 소스가 아닌 난수 알고리즘입니다. 두 번째 포인트는 블록 생산자가 블록을 생산할 자격을 얻은 후 패키지된 트랜잭션의 순서를 변경하고 다른 트랜잭션을 패키지하여 자신에게 가장 유리한 해시 루트 값을 생성하여 승리 확률을 높일 수 있다는 것입니다. , 불공평한 다른 참여자에게 이익이 됩니다.
3. 분산 조직의 도움으로 난수 생성
첫 번째 레벨 제목
세 가지 유형의 프로그램
보조 제목
해시 충돌
PoW 시스템에서 채굴자의 클라이언트는 노드의 상태를 기반으로 난수 생성기를 가지고 있어 일련의 난수를 출력한 후 해시 값을 계산할 수 있습니다. 생성된 해시 값이 지정된 크기 범위 내에 있으면, 블록을 생성할 수 있는 자격을 얻기 위해서는 다른 노드들이 이 임의의 값을 얻어 검증을 위해 한번 해쉬값을 계산하기 때문에 검증이 매우 간단합니다.
따라서 이 난수는 요구 사항을 충족하는 난수를 얻기 전에 수백조 번의 난수 발생을 경험해야 하므로 난수 정도가 매우 높으며 이 난수를 여러 블록 예측하는 것은 거의 불가능합니다. 노드 자체의 상태에 따라 난수가 완전히 출력되기 때문에 이 난수는 다른 공격자를 방해하지 않으며 즉각적인 난이도 조정(해시 값의 크기 범위 조정), 보안 시간 경계.
이점:
이점:
가장 강력한 임의성, 보안 번호, 합의 계층 구동에 매우 적합합니다.
결점:
결점:
계산 중복, 대량 계산 소비, 자원 낭비;
애플리케이션 계층에서 사용하기 어려움.
고유하지 않으며 요구 사항을 충족하는 여러 난수가 동시에 존재할 수 있으며 이로 인해 블록 포크가 발생할 수 있습니다.
보조 제목
VRF(Verifiable Random Function)
VRF(Verifiable Random Function) 알고리즘은 1999년 Mocali 교수가 제안했습니다. 더 나은 보안과 효율성으로 인해 합의 프로세스를 최적화하기 위해 점점 더 많은 블록체인 프로젝트에서 사용되어 합의의 난수 부분이 계산 자원이 줄어들고 거래 확인 및 계약 운영에 더 많은 자원이 점유됩니다.
위의 그림을 설정하여 생성 단계를 간략하게 설명합니다.
0. 난수 서명 전용 공개-개인 키 쌍을 생성합니다.
1. 이전 라운드의 결과를 직접 사용할 수 있고 블록 높이 및 시간과 같은 변수와 결합할 수 있는 충분히 무작위적인 시드를 얻습니다.
2. 난수 개인 키를 사용하여 서명(난수 생성에 공동 참여)하거나 먼저 서명한 다음 결합합니다.
3. 서명된 값의 해시 요약을 만들어 최신 난수를 얻습니다.
4. 임의의 숫자가 법적 범위 내에 있는지 확인하고 추첨이 성공적으로 블록 생성 그룹에 진입했는지 판단 (일부 프로젝트는 이 프로세스가 필요하지 않음)
5. 공개키와 라운드 등의 입력에 따라 증명이 계산되고, 검증자는 난수를 받아 검증하는 기능을 사용한다.
따라서 이렇게 생성된 난수는 노드가 알고리즘에 부합하는지 쉽게 검증할 수 있고,"Verifiable"이것이 완료되고 해시 다이제스트 프로세스와 결합된 충분히 복잡한 알고리즘 후에 충분히 무작위로 분포된 결과가 얻어지며 "랜덤"이 보장됩니다.
VRF는 주로 블록 생산자(그룹)를 무작위로 선택하고 개별 프로젝트에서 블록의 일관된 선택을 직접 결정하기 위해 PoS 메커니즘과 함께 사용됩니다. 난수 생성 프로세스는 노드 체인에서 완전히 실행될 수 있으며 체인에서 완전히 실행될 수도 있습니다.
이점:
이점:
낮은 컴퓨팅 성능 요구 사항, 난수 생성의 높은 효율성
분기되기 쉽지 않은 고유하고 결정적인 난수를 생성합니다.
확인은 비밀 선거에 적합한 난수 생성보다 뒤쳐질 수 있습니다.
결점:
결점:
많은 확인 단계가 있으며 비밀 선거에서는 여러 확인이 필요합니다.
난수 분포의 균일성은 특성 키에 따라 계산되기 때문에 좋지 않습니다.
대역폭 사용량이 높고 지연 시간이 길기 때문에 비밀리에 선출된 노드가 서로를 확인할 수 있으며 BLS 프로젝트는 큰 문제가 되지 않습니다.
Algorand
각 노드는 이전 확인 블록 라운드에서 임의의 시드를 얻고 라운드 시간 등을 설정하고 체인 아래에서 별도로 VRF 기능을 실행한 다음 결과에 대해 해시 요약을 수행하고 노드는 결과를 해시와 비교합니다. 네트워크의 값 범위(PoW 해시 비교와 비교적 유사) 범위 내의 구성원은 검증 및 블록 생성에 참여할 수 있습니다.
VRF는 네트워크 경계, 즉 노드 체인의 일부에서 실행되기 때문에 전체 네트워크에서 어떤 노드가 선택되는지 알 수 없습니다. 서로에게 전송되고 검증을 수집하여 다른 노드의 신원을 판단하므로 이 프로세스를 "비밀 선거"라고 합니다.
블록의 선택은 블록 생성 노드의 난수 "자격"에 따라 결정됩니다. 동시에 노드는 다른 블록에 투표해야 합니다. 이 프로세스는 개선된 비잔틴 결함- 관용 프로토콜 및 투표에는 두 라운드가 필요하며 각 라운드에는 "비밀 선거"가 필요합니다.
이점:
이점:
"비밀 선거", 처음에 모든 선택된 노드를 아는 것은 불가능하므로 사전에 고정된 지점에서 결탁하거나 공격하는 것이 불가능합니다.
결점:
결점:
선택한 노드가 서로의 신원을 확인하고 전체 네트워크를 통과하는 데 시간이 오래 걸리며 대역폭 사용률이 너무 높아 일반 사람들이 합의에 참여하지 못하고 탈 중앙화 정도에 영향을 미칩니다.
검증 그룹의 크기는 확률 범위에 따라 분산되기 때문에 네트워크 크기가 작으면 충분한 노드를 선택할 수 없으며 네트워크 크기가 크면 검증 그룹이 너무 커서 성능이 너무 낮습니다.
보조 제목
DFINITY
노드가 네트워크에 처음 가입할 때 분산 키 생성 프로토콜에 따라 각 노드에 독점적인 "난수 키"를 무작위로 생성합니다.
이 분산 키 합의는 요구 사항을 충족하는 전체 키 쌍을 생성하고 시스템에서 지정한 위원회 그룹의 크기에 따라 전체 키 쌍을 분할하여 그룹의 노드에 배포합니다. 노드에는 개인 서명 키가 제공되지만 마스터 키가 무엇인지 아무도 모릅니다.
그룹 할당은 무작위이며 노드는 동시에 여러 그룹에 존재할 수 있지만 그룹의 구성원은 고정되어 있고 사전에 알려져 있습니다. 이는 Algorand의 "비밀 선거"와 다릅니다. DFINITY는 "선험적"입니다. 알고랜드는 "포스테리오리"입니다.
DFINITY의 난수 생성 프로세스는 완전히 온체인이며 난수 프로세스를 제어할 수 없습니다. 마지막 라운드의 난수는 여러 그룹 중에서 이번 라운드의 위원회 그룹을 선택하며 전체 프로세스가 공개됩니다. 위원회 그룹은 블록 생성 및 공증의 의무를 이행합니다. 공증 과정에서 노드는 계속해서 가장 높은 "가중치"를 가진 블록을 찾습니다. 이 "가중치"도 이전 라운드의 난수에 의해 결정됩니다. 언제 블록이 발견되면 사용됩니다. "랜덤 숫자 키"가 서명되고 브로드캐스트됩니다.
그리고 현재 라운드의 서명 데이터를 지속적으로 받아들이는 난수 비콘이라는 체인에서 실행되는 프로그램이 있으며 블록의 서명이 검증 그룹의 노드 수의 50%를 초과하면 블록을 전송합니다. 고유하게 확인된 난수를 생성하기 위한 서명 집계. 이 무작위 숫자의 출현은 이번 컨센서스 라운드의 끝을 알리고 다음 컨센서스 라운드를 위해 참가자를 계속 선택합니다.
이점:
이점:
합의 및 난수 생성 단계에서 노드는 상호 작용할 필요가 없으며 자동으로 실행되며 비잔틴 내결함성이 필요하지 않으며 효율성이 높고 대역폭 사용량이 낮습니다.
난수 생성 프로세스는 작동 불가능하고 비대화형이므로 영향을 받을 수 없으며 난수가 더 공정합니다.
임계값 그룹이 결정되었으며 합의에 따라 변경되지 않으며 자연스럽게 샤딩에 적합하므로 확장성이 매우 좋습니다.
결점:
결점:
사후에 팀 구성원은 합의 이전에 결정되었으며 담합의 가능성이 있을 수 있습니다.
결탁 노드가 블록체인을 제어할 수는 없지만 전적으로 난수에 의해 구동되며 시스템이 종료되는 것을 막을 수 있습니다.
BLS 알고리즘의 학문적 기반은 충분하지만 엔지니어링 구현이 부족하고 오픈 소스 사례가 없습니다.
Cardano
이 프로젝트는 유명한 Ouroboros 알고리즘의 첫 번째 구현입니다. 합의 단계는 에포크별로 순환됩니다. 각 라운드에는 여러 개의 슬롯이 있으며 각 슬롯은 블록을 생성합니다. 슬롯이 잘못되면 건너뛸 수 있습니다. 그리고 슬롯마다 누가 블록을 생성해야 하는가는 이번 라운드의 제네시스 블록이 부여한 난수 시드, 합의에 참여할 수 있는 노드의 저당권, 노드 공개 키, 슬롯 목록(인덱스)을 사용해야 하며 다른 데이터, 노드가 발표한 공개 키를 수집하고 최종 결과를 계산합니다.이 숫자는 블록을 생성할 수 있는 노드(슬롯 리더)를 결정합니다.
따라서 카르다노의 핵심은 각 시대마다 블록 생산자를 결정하는 난수를 오리진 블록에 담고 있다는 점이다. 누가 승자인가? 이 선택 알고리즘은 한동안 계산이 필요하다. 블록 생산자를 계산하는 과정은 VRF의 사후 검증 과정이라고 할 수 있으므로 카르다노는 또한 "비밀"로 간주될 수 있다. 선거".
핵심은 제네시스 블록에서 난수 생성에 있으며, 노드가 인식할 수 있을 만큼 충분히 난수여야 합니다. Cardano는 각 노드가 머신 상태에서 생성된 자체 난수를 업로드할 수 있도록 비밀을 공개하는 커밋 프로세스를 사용합니다. 비밀이 공개된 후 이러한 난수가 결합되어 임의의 문자열을 생성합니다. 난수를 생성하는 과정입니다.
비밀을 밝히는 과정은 더 복잡하다 먼저 슬롯 블록 생성 단계 이전에 스테이크(모기지 규모에 따라)에 따라 선택된 모든 노드가 임의의 문자열을 비밀리에 계산한 다음 이 문자열에 대해 복잡한 암호화를 수행하고 암호화된 암호문은 전체 네트워크에 방송되며(방송하지 않는 것은 다음 시대에 기권으로 간주됨) 비밀을 설명할 것을 약속합니다. 그런 다음 슬롯 블록 생성 과정에서 노드는 암호 해독 및 원래 난수를 포함하는 공개 데이터 Open을 공개하여 노드의 난수를 확인하는 데 사용할 수 있습니다. 이와 같이 난수를 생성하기 전에 노드가 이미 난수를 준비하고 수정하지 않았음을 보장할 수 있습니다. 다른 사람의 비밀을 받고 생성하는 것이 아니라 난수 생성을 간접적으로 방해할 수 있기 때문입니다. 숫자로 영역 블록체인을 간접적으로 제어합니다.
하지만 문제가 있는데 공개 단계에서 노드가 공개 및 난수를 보낼 수 없기 때문에 휴대폰에 노드 난수가 충분하지 않아 제네시스 블록이 생성되지 않고 결국 블록체인이 다운될 수 있습니다. 카르다노는 이러한 위험에 저항하기 위해 노드가 암호화된 암호문을 보내는 단계에서 알고리즘에 따라 Open을 여러 공유로 나누고 이 시대의 블록 생산자의 공개 키를 사용하여 암호화해야 한다고 규정합니다. 노드가 실행되면 블록 생성 노드는 자체 개인 키를 사용하여 Open의 조각을 해독한 다음 Open을 합칠 수 있습니다.
그리고 Open을 분할하는 이 알고리즘을 검증 가능한 비밀 공유 VSS(Verifiable Secret Sharing)라고 합니다. Open이 분할된 후에는 조각을 먹어서 Open의 전체 그림을 볼 수 없기 때문에 이 난수는 블록 프로듀서도 미리 얻을 수 없습니다. 동시에 이 VSS 알고리즘의 장점은 DFINITY에서 사용하는 BLS 알고리즘과 유사하며 모든 조각을 함께 넣을 필요가 없으며 조각의 일부만 완전한 Open을 복원할 수 있습니다.
이점:
이점:
좋은 무작위성과 높은 보안;
결점:
결점:
검증 그룹이 먼저 결정되고 스테이크의 크기에 따라 정렬되므로 분산화가 약간 더 나쁩니다.
노드 간 담합이 가능합니다.
첫 번째 레벨 제목
VDF+Randao
Hash Collision에서 언급했듯이 블록 데이터의 투명성으로 인해 PoW 메커니즘 하의 난수는 상위 계층 컨트랙트의 시드로 사용되기 어려운데 이 문제는 이더리움 1.0에도 존재합니다. 따라서 일부 사람들은 계약에서 안전하고 예측할 수 없는 난수를 실현하기 위해 분산된 방식으로 종자를 수집하기 위해 분산된 조직을 사용하는 것을 고려합니다. 위에서 언급한 바와 같이 경제적 설계는 담합을 제한하지만 여전히 "마지막 참여자 공격" 및 "증폭 공격"의 위험이 있습니다.
마지막 참여자 공격: Randao에 참여하는 마지막 사람은 미래의 난수를 예측할 수 있으므로 비밀을 공개하지 않고 방해할 수 있습니다.
증폭 공격: 마지막 참가자 공격을 여러 번 실행하여 교란을 난수로 증폭하여 잠시 조직을 제어합니다.
최근 발표된 이더리움 2.0 방식에서는 성능을 고려하여 PoW 대신 PoS를 사용해야 하므로 블록 자격을 선택하기 위해 난수가 필요합니다. 난수는 "비콘 체인"이라는 단일 체인에서 실행되며 생성된 난수는 샤드 구성을 무작위로 제어하는 데 사용되어 다중 샤드 병렬성을 실현하고 이더리움의 성능을 확장합니다. 따라서 난수는 샤딩의 공정성과 최종 확인 가능성을 수반하는 이더리움 업그레이드의 중요한 기반이 되었습니다.
PoW의 샤딩 방식이 너무 복잡해서 이더리움 2.0의 샤딩은 PoS를 기반으로 하고 있으며, 난수도 마찬가지입니다. 란다오에서 아이디어를 차용하지만 위에서 언급한 두 가지 문제를 해결하기 위해 검증 가능한 지연 함수 VDF(Verifiable Delay Function)를 도입하여 란다오에서 생성된 난수가 결과를 얻기까지 오랜 시간을 거쳐야 합니다. 상대적으로 계산하기 어렵고, 여러 블록을 기다려야 하고, 순차적으로 실행되기 때문에 처음에 Randao에서 비밀이 전송되면 공격자는 자신의 비밀을 먹는 것이 최종 상태에 미치는 영향을 예측할 수 없습니다. 최신 기술이며 위의 공격을 실행할 수 없습니다.
먼저 Randao를 소개하겠습니다.Ethereum 2.0의 노드는 32 ETH를 저당하여 Randao에 가입할 수 있습니다.Randao에 참여하는 노드는 난수 시드를 얻을 때마다 조용히 자신의 마음에 있는 비밀 번호를 읽은 다음 암호화하여 브로드캐스트합니다. 그것. 모두가 다른 사람의 암호문을 얻은 후 노드는 차례로 비밀을 공개하고 난수는 특정 방식으로 결합되어 최종 난수를 생성하는 난수 종자로 사용할 수 있습니다. 이것은 브리지 게임과 같습니다. 먼저 플레이어에게 카드를 뒤집어 놓고 카드가 열리면 하나씩 공개됩니다. 마지막 참가자가 결과를 예측하고 간섭하지 않도록 VDF를 선택합니다. 최종 난수를 생성합니다.
그리고 이 VDF에는 다음과 같은 특징이 있습니다.
1. 계산이 어렵고 결과가 늦게 나온다. VDF의 계산 과정은 상대적으로 복잡하고 결과를 얻는 데 오랜 시간이 걸리므로 지연 시간을 충분히 길게 설정하면 결과를 빠르게 예측하기가 매우 어렵습니다.
2. 간단한 검증. VDF를 실행하는 프로세스는 어렵고 시간이 많이 소요될 수 있지만 결과를 신속하게 확인해야 합니다.
3. 연속성. VDF의 계산은 단계별로 진행 최종 결과를 계산하기 위해서는 단계별로 진행되어야 함 병렬 가속 불가 공격자가 여러 대의 머신을 보유하고 있어도 단시간에 결과를 예측할 수 없음
예를 들어 긴 정수의 10제곱을 연속해서 취한 후 어떤 큰 소수의 나머지를 찾은 다음 위의 단계를 연속적으로 수백 번 수행하는 것이 VDF의 함수입니다. 따라서 전력을 계산하는 알고리즘이 까다롭고, 다중 사이클 하에서 다음 계산을 수행하기 전에 이전 결과를 알아야 하므로 이 알고리즘의 최종 결과를 빠르게 계산할 수 없으며 단계별로 수행해야 합니다. 정직하게 진행합니다. 동시에 인간의 컴퓨터 구조로 인해 당신이 매우 다르더라도 이 계산의 난이도는 기하급수적으로 변하지 않을 것이며 여전히 해결하기가 매우 어렵습니다. 이러한 예측 불가능성은 난수의 보안을 보장합니다.
사실 위 부분은 결과를 계산하기 위한 알고리즘일 뿐 VDF도 결과를 검증하기 위한 알고리즘을 포함해야 합니다 모든 노드에서 확인됩니다.
이점:
이점:
현재 블록체인에서 의사 난수를 예측하기 가장 어려운 난수의 강도는 매우 높지만 POW보다는 약합니다.
난수는 직렬 순서, 역 병렬 가속 작업을 엄격히 따릅니다.
결점:
결점:
VDF 계산 프로세스는 매우 어렵고 난수를 얻는 효율성이 매우 낮으며 계산 성능이 많이 낭비됩니다.
계산이 매우 어렵지만 PoW만큼 양자 컴퓨팅에 강하지 않으며 깨질 수 있습니다.
요약하다
요약하다
통계학자인 Francis Galton은 1890년 Nature에 다음과 같이 썼습니다.
인간은 끊임없이 임의성을 법칙으로 정리하려 하지만 새로운 법칙 아래서 새로운 임의성이 나타나게 될 양자 세계의 무질서와 임의성에 놀라움을 금치 못해 탐구의 호기심을 자극한다. 난수에 대한 이해는 인류 진보의 역사라고 할 수 있으며, 난수를 추구하는 것은 과학에 대한 호소일 뿐만 아니라 숙명론에 대한 반박이기도 합니다.
동시에 우리는 바이너리 가상 세계를 만들었습니다.우리는 이 세계에서 가능한 한 우리 우주를 시뮬레이션하고 복사하고 자연에서 놀랍고 신비로운 난수를 얻고 싶습니다.이것은 큰 의미가 있습니다. 진정한 난수, 가상세계에 생명을 불어넣을 수 있을까? "자유 의지"를 시뮬레이션할 수 있습니까? 우리 인간이 가상화에서 살아남는 것이 가능할까요?
우주의 무작위성은 생명에 대한 가장 큰 공평성이며, 블록체인의 난수는 인간에게 가장 직관적이고 근본적인 공평성 추구가 될 것입니다. 과거는 결정되었고, 현재가 일어나고 있으며, 미래는 일반적으로 무작위적이며 블록체인의 세계도 마찬가지입니다.
01 기계에서 실행되고 세상의 모든 것이 인식할 수 있는 난수는 블록체인 이전에 이렇게 매력적이었던 적이 없습니다.
