KR20200101326A - 메시지 자격증명된 블록체인 - Google Patents

메시지 자격증명된 블록체인 Download PDF

Info

Publication number
KR20200101326A
KR20200101326A KR1020207011793A KR20207011793A KR20200101326A KR 20200101326 A KR20200101326 A KR 20200101326A KR 1020207011793 A KR1020207011793 A KR 1020207011793A KR 20207011793 A KR20207011793 A KR 20207011793A KR 20200101326 A KR20200101326 A KR 20200101326A
Authority
KR
South Korea
Prior art keywords
users
user
round
block
entity
Prior art date
Application number
KR1020207011793A
Other languages
English (en)
Inventor
실비오 미칼리
Original Assignee
알고란드 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 알고란드 인코포레이티드 filed Critical 알고란드 인코포레이티드
Publication of KR20200101326A publication Critical patent/KR20200101326A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/018Certifying business or products
    • G06Q30/0185Product, service or business identity fraud
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3255Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using group based signatures, e.g. ring or threshold signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • H04L2209/463Electronic voting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Engineering (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Computing Systems (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

트랜잭션들이 블록들로 조직되는 트랜잭션 시스템에서, 유효 트랜잭션들의 새로운 블록(Br)은, 이전 블록들(
Figure pct00639
)의 시퀀스에 관련하여, 엔티티가 이전 블록들로부터의 양(Q)을 결정하게 하고, 엔티티와 Q에 고유하게 연관된 스트링(S)을 연산하도록 엔티티가 비밀 키를 사용하게 하고, 엔티티가 S로부터 S 자체, S의 함수, 및/또는 S의 해시값의 하나인 양(T)을 연산하게 하고, T가 주어진 특성을 보유하는지 여부를 엔티티가 결정하게 하고, T가 주어진 특성을 보유하는 경우, 엔티티가 Br을 디지털 서명하게 하고 Br의 디지털 서명된 버전과 S를 이용가능하게 함으로써, 구성되며, 여기서, 엔티티는 Br의 디지털 서명에 따라 가변되는 난수에 기초하여 선택된다.

Description

메시지 자격증명된 블록체인
본원은, 전자 트랜잭션 분야에 관한 것으로서, 더욱 구체적으로는 전자 트랜잭션을 위한 트랜잭션 블록의 시퀀스의 콘텐츠를 보호하는 분야에 관한 것이다.
블록체인은 블록들(1, 2,...)의 확장가능 시퀀스로 이루어지고, 각 블록은, 다수의 트랜잭션, 이전 블록의 해시, 및 다른 데이터, 예컨대, 블록의 수, 시간 정보 등으로 이루어진다. 블록체인의 유용한 특성들은, 시스템의 모든 사용자가 결국 모든 블록의 콘텐츠를 학습하고, 누구도 블록들의 콘텐츠 또는 순서를 변경할 수 없으며, 임의의 유효 트랜잭션이 결국 체인의 블록에 진입한다는 것이다.
사용자들은 디지털 서명을 행할 수 있으므로, 각 사용자는 하나 이상의 공개 키와 대응 비밀 키를 보유한다. 블록체인에서는, 일반적으로, 누구라도 공개 키를 알고 있지만, 반드시 그 공개 키를 소유한 사용자를 아는 것은 아니다. 이에 따라, 공개 키를 그 소유자로 식별할 수 있다.
블록체인은 메시지(예를 들어, 블록, 트랜잭션 등)를 전파함으로써 기능한다. 전형적으로, 배타적이지는 않지만, 메시지는, 피어-투-피어 방식 또는 릴레이를 통해 메시지를 가십(gossip)함으로써 전파된다.
몇 개의 블록체인 시스템에서는, 시스템에서 충분히 많은 사용자의 디지털 서명에 의해 블록을 인증해야 한다. 일부 시스템에서, 이러한 인증 사용자들은 사용자들의 고정된 세트에 속한다. 다른 일부 시스템에서는, 인증 사용자들이 동적으로 변경되는 세트에 속한다. 이는, 특히 그 세트가 동적일뿐만 아니라 예측할 수 없는 경우에도 적대자가 동적으로 변경되는 세트를 손상시키는 데 시간이 더 걸리기 때문에, 바람직하다.
검증할 수 있지만 예측할 수 없는 방식으로 사용자들의 세트를 선택하는 특히 효과적인 방식은 알고랜드(Algorand)에 의해 이용되는 암호화 추첨(cryptographic sortition)이다. 여기서, 사용자(i)는, 입력(s, r) 및 가능하게는 다른 입력과 기타 데이터(예를 들어, 사용자가 주어진 일부 정수 k에 대하여 블록(r) 앞의 적어도 k개 블록에서 시스템에 가입하였다는 사실)를 사용하여 자신의 비밀 키를 통해 i가 수행하는 연산 결과에 기초하여 블록 수(r)의 생성 동안 일부 단계(s)에서 기능하도록 권한이 있는 사용자들의 세트에 속한다. i의 연산은, 이러한 입력들의 i의 디지털 서명(
Figure pct00001
), 해싱(
Figure pct00002
), 및 해시가 주어진 목표(t)보다 작은지에 대한 확인을 수반할 수 있다(실제로, 다른 임의의 스트링처럼, 해시값은 일부 표준 방식에 있어서 수로서 해석될 수 있다). 이러한 경우에서는,
Figure pct00003
가 블록(r)에 관한 단계(s)에 대한 i의 자격증명(credential)이라고 정의된다. 이러한 자격증명은, i가 실제로 (바람직하게는 서명된) 메시지(
Figure pct00004
)를 생성할 자격이 있음을 누구에게도 입증하며, 이 메시지는, 라운드(r)에서, 즉, 블록(r) 생성을 목표로 하는 프로세스에서, 단계(s)에 대한 것이다. 실제로, i의 디지털 서명은 누구라도 확인할 수 있으며, 누구라도 주어진 값을 해시한 후 그 결과가 실제로 주어진 수보다 작은지(또는 같은지)를 확인할 수 있다. 이에 따라, i는
Figure pct00005
Figure pct00006
모두를 전파할 수 있다. 알고랜드에서, 자격증명(
Figure pct00007
)은 장기간 키에 관하여 연산되는 반면,
Figure pct00008
의 서명은 임시 키를 사용하여 연산되며, 이러한 임시 키는 i가 하나의 메시지만, 즉
Figure pct00009
만을 인증하는 데에만 사용된다. 실제로, 정직한 i는 자신이 임시 키를 사용하여
Figure pct00010
를 서명하자마자 이러한 임시 비밀 키를 삭제한다.
사용 후 삭제되는 임시 키를 사용함으로써,
Figure pct00011
를 전파한 후 i를 손상시키는 적대자가 i로 하여금 라운드(r)의 단계(s)에 대하여 상이한 메시지를 서명하게 하는 것을 방지한다. 그러나, 이 시스템은, 라운드(r)의 단계(s)에 대하여 메시지를 인증하는 데 충실한 사용자(i)의 임시 키를 다른 사용자들에게 보장하기 위해 적절한 절차에 의존한다. 이러한 보장을 위해서는 추가 데이터를 저장 및/또는 송신해야 할 수 있다. 따라서, 이러한 요건을 줄이는 것이 바람직하다. 특히, 블록체인의 블록들을 증명하기 위해서이다.
따라서, 중앙 기관을 신뢰할 필요가 없고 알려진 분산형 방안의 비효율성 및 비보안성이 발생하지 않는 공개 원장 및 전자 화폐 시스템을 제공하는 것이 바람직하다.
본원에서 설명하는 시스템에 따르면, 트랜잭션들이 블록들로 조직되는 트랜잭션 시스템에서, 유효 트랜잭션들의 새로운 블록(Br)은, 이전 블록들(
Figure pct00012
)의 시퀀스에 관련하여, 엔티티가 이전 블록들로부터의 양(Q)을 결정하게 하고, 엔티티와 Q에 고유하게 연관된 스트링(S)을 연산하도록 엔티티가 비밀 키를 사용하게 하고, 엔티티가 S로부터 S 자체, S의 함수, 및/또는 S의 해시값의 하나인 양(T)을 연산하게 하고, T가 주어진 특성을 보유하는지 여부를 엔티티가 결정하게 하고, T가 주어진 특성을 보유하는 경우, 엔티티가 Br을 디지털 서명하게 하고 Br의 디지털 서명된 버전과 S를 이용가능하게 함으로써, 구성되고, 엔티티는, Br의 디지털 서명에 따라 가변되는 난수에 기초하여 선택된다. 비밀 키는 엔티티의 공개 키에 대응하는 비밀 서명 키일 수 있고, S는 엔티티에 의한 Q의 디지털 서명이다. T는, 수일 수 있고, T가 주어진 수(p) 미만이면 그 특성을 충족한다. S는 Br로부터 S를 추론할 수 있게 함으로써 이용가능해질 수 있다. 각 사용자는 트랜잭션 시스템에 잔액을 가질 수 있고, p는 각 사용자의 잔액에 따라 사용자마다 가변될 수 있다. 난수는 엔티티의 디지털 서명의 해시일 수 있다. 엔티티는, 난수가 트랜잭션 시스템의 엔티티들의 최소값이 Br을 디지털 서명할 수 있도록 선택된 임계값 미만이면 선택될 수 있다.
또한, 본원에서 설명하는 시스템에 따르면, 블록체인 시스템에서 사용자들의 서브세트를 선택하여 이전 블록들(
Figure pct00013
)의 시퀀스에 관련하여 새로운 블록(Br)을 검증하는 방법은, 사용자들 중 적어도 일부가 새로운 블록(Br)을 다른 정보와 함께 디지털 서명하여 디지털 서명을 생성하게 하는 단계; 사용자들 중 적어도 일부가 디지털 서명의 해시값을 결정하게 하는 단계; 사용자들 중 적어도 일부가 해시값을 미리 결정된 임계값과 비교하게 하는 단계; 및 서브세트의 사용자들의 각각에 대하여 해시값이 미리 결정된 임계값 미만임에 응답하여 사용자들의 서브세트가 디지털 서명을 이용가능하게 하여 새로운 블록(Br)을 검증하는 단계를 포함한다. 사용자들 중 특정 사용자는, 사용자들 중 그 특정 사용자가 새로운 블록(Br)에 제공된 정보를 검증하는 경우에만 새로운 블록(Br)을 디지털 서명할 수 있다. 미리 결정된 값은, 사용자들의 서브세트가 사용자들의 최소수를 포함하도록 선택될 수 있다. 블록체인 시스템은, 트랜잭션들이 블록들로 조직되는 트랜잭션 시스템에서 사용될 수 있다.
또한, 본원에서 설명하는 시스템에 따르면, 적어도 하나의 데이터 스트링(m)을 증명하기 위해 블록체인에서는, 사용자들의 세트(S)가 m이 적어도 일부의 주어진 특성을 이용하는지 여부를 검증하게 하고, 사용자들에 의한 m의 검증에 응답하여 사용자들이 m을 디지털 서명하게 하고, 사용자들이 m의 자격증명된 서명인 m의 디지털 서명을 이용가능하게 한다. m의 디지털 서명은, 디지털 서명이 주어진 추가 특성을 충족하는 경우 자격증명될 수 있다. m의 디지털 서명은, 디지털 서명의 해시가 주어진 목표 수보다 작은 경우 주어진 추가 특성을 충족할 수 있다. 데이터 스트링(m)은 적어도 m의 자격증명된 서명들의 주어진 수에 의해 증명될 수 있다.
또한, 본원에서 설명하는 시스템에 따르면, 본원에서 설명하는 단계들 중 임의의 단계를 구현하는 실행가능 코드를 포함하는, 비일시적 컴퓨터 판독가능 매체에 제공된 컴퓨터 소프트웨어가 있다.
본 발명에서는 블록을 증명하기 위한 임시 키를 생략한다. 전형적으로, 새로운 블록을 먼저 준비한 후(예를 들어, 적어도 일부 사용자에 의해 제안 및/또는 합의한 후) 증명한다. 블록 B가 어떻게 준비되는지는 알 수 없는 것이며, 이것은 임시 키를 사용하더라도 하나의 단계 또는 다수의 단계로 준비될 수 있다. 그러나 임시 키에 의존하지 않고 블록을 증명하고자 한다. 블록 B의 증명은, 소정의 가치있는 특성이 블록에 적용되는 것을 보장한다. 전형적인 주요 특성은, 사용자, 심지어 블록 B의 준비에 참여하지 않았거나 관찰하지 않은 사용자라도 B가 블록체인에 추가되었는지 또는 심지어 B가 블록체인의 제r 블록체인지를 확인할 수 있게 하는 것이다. 다른 가치있는 특성(종종 확정성(finalization)이라고 함)은, 블록체인 프로토콜이 실행되는 통신 네트워크의 파티션이 존재하더라도 소프트 포크로 인해 B가 블록체인에서 사라지지 않음을 보장한다.
블록 B가 어떤 방식으로든 그리고 임의의 수의 단계로 준비되었다고 가정해 본다. 블록이 적절하게 준비되었음을 인식하려면, 시간과 노력이 필요하며 다양한 증거를 검증해야 한다. B의 증명서는 유효 자격증명을 갖는 소정의 수의 사용자의 디지털 서명으로 이루어진다. 이러한 B의 증명서는, 이러한 서명을 생성한 사용자들이 B의 준비에 참여했거나 관찰했음을 보증한다. 이것은, 적어도, 증명서의 디지털 서명들 중 하나가 정직한 사용자에 의해 생성된 경우 B가 적절히 준비되었음을 해당 사용자가 확인하였음을 보증한다.
본 발명의 시스템에서, B가 적절히 준비되었다는 증거를 본 다수의 사용자(i)(심지어 모든 사용자)는, B를 디지털 서명한다(주석 1: 양(Q)을 디지털 서명하는 것은, Q의 해시 버전을 디지털 서명하고, Q를 다른 데이터와 함께 디지털 서명하는 것을 포함한다. 여기서, 디지털 서명은, 공개 키가 어떻게 선택되든지에 상관없이, 각 메시지(m)에 대해, 각 사용자가 m의 단일 서명을 갖는 것이라고 가정한다). 이들 서명은 (임시 키와는 대조적으로) 장기간 키와 관련될 수 있다. 그러나, 이러한 서명은 주어진 특성(P)을 충족하는 경우 B의 증명에 중요하다. 바람직한 실시예에서, B의 i의 디지털 서명(SIGi(B))은, (a) (수로서 해석된) 그 해시가 주어진 목표(t)보다 작으면, 바람직하게는, i가 B 이전의 적어도 k개 블록에서 블록체인에 가입하였다면, 주어진 특성을 소유한다. 모든 사람이 B의 i의 디지털 서명을 검증할 수 있고, 그 해시를 연산할 수 있고, 그 결과가 실제로 t 이하이라는 점을 확인할 수 있다는 점에 주목한다. 또한, 누구라도 i가 블록체인에 가입했을 때를 검증할 수 있으므로, 적어도 k개 블록 전에서 블록체인에 가입했음을 검증할 수 있다. 이러한 SIGi(B)는, 자격증명된 서명일뿐만 아니라 B에 대한 i의 특수한 자격증명이라고도 간주될 수 있다. 따라서, 본 발명의 시스템에서, 자격증명은 제r 블록의 생성에서 주어진 단계(s)보다는 특정 블록에 링크된다. 이에 따라, 사용자(i)는, 주어진 블록(B)에 대한 자격증명을 가질 수 있지만 다른 블록(B')에 대해서는 자격증명을 가질 수 없다. 반대로, 예를 들어, 알고랜드에서, 라운드(r)에서 단계(s)에 대한 적절한 자격증명을 가진 사용자는 해당 단계 및 라운드에서 자신이 원하는 것을 서명할 수 있다. 따라서, 블록 증명서는 B에 대해 주어진 수(n)의 자격증명된 서명들로 이루어진다. B의 자격증명된 서명들이 n개를 초과한다면, 블록(B)이 한 개보다 많은 증명서를 가질 수 있다는 점에 주목한다.
본 발명의 시스템의 효율은, 적절한 SIGi(B)가 i가 B를 증명하고 i가 B를 증명할 자격이 있음을 모두 입증한다는 사실로부터 도출된다. 통상적인 시스템에서, i는, B를 증명하는 데 합의하는 라운드(r)의 단계(s)에 대한 자격증명을 먼저 취득한 후 별도의 서명에 의해 B를 증명한다. 따라서, 한 개가 아닌 적어도 두 개의 서명이 필요하고, B의 증명서의 일부로서 저장 및/또는 송신될 필요가 있을 수 있다. 또한, B의 서명이 임시인 경우, 사용된 임시 키가 실제로 i가 단계(s)와 라운드(r)에 대하여 사용할 필요가 있었던 키라는 소정의 증거도 필요하다.
시스템의 보안은, 블록을 증명하기에 충분한 서명의 수(n)와 목표(t)의 적절한 선택에서 도출된다. 예를 들어, p를 시스템에서 악의적인 사용자의 최대 퍼센트라고 하자. 전형적으로, 악의적인 사용자는 소수이며, 예를 들어, p<1/3이다. 이어서, 충분히 높은 확률로, (a) 임의의 가능한 블록값(B')에 대하여, B'에 대한 증명서를 형성하도록 정직한 사용자의 n개 이상의 자격증명된 서명이 있고, (b) B'의 임의의 증명서에서, 적어도 하나의 자격증명된 서명이 정직한 사용자에게 속하도록, t와 n을 선택할 수 있다.
또한, 블록(B)을 증명하도록 자격증명된 정직한 사용자들의 세트는 충분히 랜덤이어서, 적대자는 그 사용자들이 블록을 증명하기 전에 그 사용자들이 누구인지를 예측할 수 없고 손상시킬 수 없다. 한편, 정직한 사용자(i)가 블록(B)을 증명하고 SIGi(B)를 전파한 후에는, 적대자가 i를 손상시키는 데 유리하지 않다. 실제로 SIGi(B)는 이미 네트워크를 통해 바이러스처럼 전파되고 있으며, 적대자는 이러한 전파 과정을 중단할 수 없다. 둘째, 적대자가 i를 손상시킨 후 i가 다른 블록(B')을 디지털 서명하도록 강제하면, SIGi(B')는 t보다 작은 해시를 갖지 않을 수 있고, B'의 n개의 디지털 서명을 찾기 위한 상당한 확률을 가지려면, 적대자가 사용자들의 분율(p)보다 많게 손상시켜야 한다.
본 발명의 시스템의 일부로서, 사용자(i)는, B(or none)에 대한 단일 자격증명을 가질 수 있을 뿐만 아니라 가중치를 갖는 자격증명(본질적으로 다수의 투표에 연관된 자격증명)도 가질 수 있다. 실제로, B에 대한 i의 자격증명의 가중치는, i가 시스템에서 얼마나 많은 돈을 갖고 있는지에 의존할 수 있다. 실제로, 모든 사용자에 대해 단일 t를 갖는 것보다는, 각각의 사용자(i)가, i의 금액이 많을수록 더 높은 자신의 고유한 목표를 가질 수 있다. 그리고, B에 대한 i의 자격증명의 가중치는, SIGi(B)의 해시가 ti에 관하여 얼마나 작은지에 의존할 수 있다. 간략화를 위해, 그러나 제한을 의도하지 않고, B에 대하여 (가중치-1) 자격증명을 각각 갖는 m명의 사용자들로서 B에 대하여 가중치-m 자격증명을 갖는 사용자(i)를 취급하는 본 시스템을 계속 설명한다.
지금까지 B의 충분한 수의 자격증명된 서명을 통해 블록(B)을 증명하는 것에 대해 논의하였다. 그러나, 보다 일반적으로, 본 발명의 시스템은, 적어도 주어진 메시지(m)가 m의 충분한 수의 자격증명된 디지털 서명에 의해 증명되는 블록체인에 적용된다. 이러한 메시지(m)는 블록이 아니라 보다 일반적인 데이터 스트링일 수 있다. 이에 따라, 이러한 m의 증명은, 상이한 특성들이 블록들에 대하여 바람직하거나 적용가능한 것보다 m에 적용되는 것을 보장할 수 있다. 예를 들어, 어떠한 제한도 의도하지 않고, m이 시스템에서 사용자들의 세트(S)의 충분한 분율에 의해 또는 S의 적어도 한 명의 정직한 사용자에 의해 승인된 특성을 들 수 있다. 실제로, m의 자격증명된 서명을 갖는 S의 사용자들은, S의 사용자들의 충분히 랜덤하게 선택된 샘플을 형성할 수 있다. 따라서, m의 충분한 수의 자격증명된 서명이 생성되었다는 사실은, 충분히 높은 확률로, S의 사용자들의 주어진 사용자 분율 또는 S의 적어도 한 명의 정직한 사용자가 m을 승인한다는 것을 나타낸다.
이하에서는, 통상적인 알고랜드 시스템을 빠르게 상기한 후, 알고랜드에 기초하여 의도된 제한 없이 바람직한 실시예의 일례를 제공한다.
본원에서 설명하는 시스템의 실시예들은, 다음과 같이 간략히 설명되는 도면의 해당 도에 따라 더욱 상세히 설명된다.
도 1은 본원에서 설명하는 시스템의 일 실시예에 따른 네트워크 및 연산 스테이션의 개략도이다.
도 2는 트랜잭션의 새로운 블록이 제안되는 알고랜드 시스템의 제1 단계의 개략적이면서 개념적 요약도이다.
도 3은 알고랜드 시스템에서 새로운 블록의 계약 및 증명에 대한 개략적이면서 개념적 요약도이다.
도 4는 머클(Merkle) 트리 및 그 노드들 중 하나에 포함된 값에 대한 인증 경로를 도시하는 개략도이다.
도 5는 블록트리에서 구성된 제1 블록에 대응하는 머클 트리를 도시하는 개략도이다.
본원에서 설명하는 시스템은, 트랜잭션 검증 및 전파를 분산하기 위한 메커니즘을 제공하여, 어떠한 엔티티도 단독으로 트랜잭션 정보를 검증 및/또는 전파하기 위한 연산을 담당하지 않는다. 대신, 참여하는 각 엔티티는, 검증가능하고 신뢰할 수 있는 방식으로 트랜잭션을 전파하도록 수행되는 연산을 공유한다.
도 1을 참조하면, 다이어그램은, 인터넷과 같은 데이터 네트워크(24)에 접속된 복수의 연산 워크스테이션(22a 내지 22c)을 도시한다. 워크스테이션(22a 내지 22c)은, 본원의 다른 곳에서 더 상세히 설명되는 바와 같이 분산된 트랜잭션 전파 및 검증을 제공하도록 네트워크(24)를 통해 서로 통신한다. 워크스테이션(22a 내지 22c)이 서로 통신할 수 있다면, 시스템은 본원에서 설명하는 기능을 제공할 수 있는 임의의 수의 워크스테이션을 수용할 수 있다. 워크스테이션(22a 내지 22c) 각각은, 본원의 다른 곳에서 더 상세히 설명되는 바와 같이 시스템의 다른 모든 워크스테이션에 트랜잭션을 전파하고 트랜잭션을 검증하기 위한 프로세스를 독립적으로 수행할 수 있다.
도 2는, 알고랜드 시스템에서 라운드(r)의 제1 단계를 도식적으로 그리고 개념적으로 요약한 것으로서, 여기서, 선택된 일부 사용자들의 각각은 제r 블록에 대하여 자신의 고유한 후보를 제안한다. 구체적으로, 단계는, 비밀 암호화 추첨 프로세스를 개별적으로 거치는 시스템의 사용자들(a,..., z)로 시작되며, 이러한 프로세스는 블록을 제안하기 위해 선택된 사용자를 결정하고, 선택된 사용자 각각은 자신이 블록을 생성할 자격이 있음을 제공하는 자격증명을 비밀스럽게 연산한다. 도 2의 예에서는, 사용자들(b, d, h)만이 블록을 제안하도록 선택되고, 이들의 연산된 자격증명은 각각
Figure pct00014
,
Figure pct00015
,
Figure pct00016
이다. 선택한 각 사용자(i)는, 자신이 제안한 고유 블록(
Figure pct00017
)을 조립하고, 블록을 임시로 서명(즉, 나중에 설명하는 것처럼 임시 키로 블록을 디지털 서명)하고, 자신의 고유한 자격증명과 함께 네트워크로 전파한다. 라운드의 리더는, 자격증명이 가장 작은 해시를 갖는 선택된 사용자이다. 이 도면은 리더가 사용자(d)임을 나타낸다. 따라서, 이 사용자가 제안한 블록(
Figure pct00018
)은, 이진 합의 프로토콜에 대한 입력으로서 제공되는 블록이다.
도 3은, 합의에 도달하고 제안된 블록을 공식 제r 블록(Br)으로서 증명하기 위한 알고랜드의 프로세스를 개략적으로 그리고 개념적으로 요약한다. 알고랜드의 제1 단계는 새로운 블록을 제안하는 것으로 이루어지므로, 이 프로세스는 제2 단계로 시작된다. 이 단계는, 실제로 알고랜드가 선호하는 비잔틴 합의 프로토콜인 BA*의 제1 단계와 일치한다. 이 프로토콜의 각 단계는, 비밀 암호화 추첨에 의해 랜덤하게 선택되는 플레이어들의 다른 "위원회"(이 도면에서는 도시되지 않음)에 의해 실행된다. 이에 따라, 각 단계를 수행하도록 선택된 사용자들은 완전히 다를 수 있다. BA*의 단계들의 수는 가변될 수 있다. 도 3은, 알고랜드의 제2 단계부터 제8 단계까지인 7개의 단계를 수반하는 BA*의 실행을 도시한다. 도 3의 예에서, 제2 단계를 수행하도록 선택된 사용자들은 a, e, q이다. 각 사용자(i∈{a, e, q})는 자신의 자격증명(
Figure pct00019
)을 네트워크에 전파하며, 이는, i가 실제로 알고랜드의 라운드(r)의 제2 단계에서 메시지를 보낼 자격이 있으며, 이 단계(
Figure pct00020
)의 적절한 자신의 메시지가 임시로 서명되었음을 증명한다. 제3 단계 내지 제7 단계는 도시되어 있지 않다. 마지막 제8 단계에서, 이 도면은, 라운드(r)의 공식 블록으로서 Br에 대한 합의에 도달한 대응하는 선택된 사용자들(b, f, x)이 블록(Br)의 자신의 고유한 임시 서명들(이들 서명은 Br을 함께 증명함) 및 이들의 고유한 자격증명을 전파하여, 제8 단계에서 행동할 자격이 있음을 증명함을 도시한다.
도 4는 머클 트리 및 이 트리의 인증 경로 중 하나를 개략적으로 도시한다. 구체적으로, 도 4a는 깊이 3의 전체 머클 트리를 도시한다. x가 길이≤3인 이진 스트링에 의해 표시되는 각 노드(x)는 값 vx를 저장한다. x가 길이≤2이면,
Figure pct00021
이다. 도 4a의 머클 트리의 경우, 도 4b는 값 v010의 인증 경로를 도시한다.
도 5는, 깊이 3의 완전한 이진 트리 내에 구성된, 블록트리에서 구성된 처음 8개의 블록에 대응하는 머클 트리를 개략적으로 도시한다. 도 5i에서, 정수로 표시된 노드들은 머클 트리(Ti)에 속한다. (각각 i에 의해) i로 표시된 노드들의 콘텐츠는 일시적(각각, 영구적)이다.
본원에서의 설명은, 지불인 트랜잭션 및 본원의 시스템을 머니 플랫폼으로서 설명하는 것에 중점을 둔다. 통상의 기술자는 본원에서 설명하는 시스템이 모든 종류의 트랜잭션을 또한 다룰 수 있음을 인식할 것이다.
본원에서 설명하는 시스템은, 매우 유연한 설계를 가지며, 다양하지만 관련된 방식으로 구현될 수 있다. 일반적인 설계의 두 가지 가능한 실시예를 자세히 설명함으로써 그 유연성을 예시한다. 이들로부터, 통상의 기술자는 모든 종류의 다른 구현예를 도출하는 방법을 또한 이해할 수 있다.
본 발명의 이해를 용이하게 하고, 다양한 부분의 내부 상호 참조를 허용하기 위해, 프리젠테이션을 번호 및 명칭이 있는 섹션들로 조직한다. 제1 섹션은 상세한 실시예들 모두에 공통되는 것이다.
1 도입부
돈은 점점 더 가상화되고 있다. 오늘날 미국 달러의 약 80%가 원장 엔트리로서만 존재하는 것으로 추정되었다. 다른 금융 상품들은 선례를 따른다.
가능한 모든 사이버 공격의 영향을 받지 않으며 보편적으로 신뢰할 수 있는 중앙 엔티티를 신뢰할 수 있는 이상적인 세상에서, 돈 및 기타 금융 트랜잭션은 전적으로 전자적일 수 있다. 그러나, 우리는 이러한 세상에 살고 있지 않다. 이에 따라, 비트코인과 같은 분산형 암호 화폐 및 이더리움과 같은 "스마트 계약" 시스템이 제안되었다. 이들 시스템의 핵심은, 트랜잭션들의 시퀀스가 지불 및 계약에 따라 가변될 수 있으므로 트랜잭션들의 시퀀스를 변조 방지 방식으로 신뢰성 있게 기록하는 공유형 원장이다. 이러한 변조 방지를 보장하기 위해 선택되는 기술이 블록체인이다. 블록체인은, 암호 화폐, 금융 애플리케이션, 및 사물 인터넷과 같은 애플리케이션들 뒤에 있다. 블록체인 기반 원장을 관리하는 몇 가지 기술이 제안되었는데, 작업 증명, 스테이크 증명, 실용적 비잔틴 결함 허용, 또는 일부 조합이 있다.
그러나, 현재의 원장들은 관리하기에 비효율적일 수 있다. 예를 들어, 비트코인의 작업 증명 방안은, 많은 양의 연산을 필요로 하며, 낭비되며, 확장성이 불량하다. 또한, 사실상 매우 적은 수의 손에 권한을 집중한다.
따라서, 현재의 분산 구현의 비효율성과 약점 없이 신뢰성 있는 불가침 기관에 의해 운영되는 중앙집중식 시스템의 편리함과 효율성을 제공하는 공개 원장을 구현하는 새로운 방법을 제시하고자 한다. 알고리즘 랜덤성을 이용하여 지금까지 구성된 원장을 기반으로 유효 트랜잭션들의 다음 블록을 구성하는 것을 담당하는 검증자들의 세트를 선택하기 때문에, 본 발명의 방안을 알고랜드라고 칭한다. 당연히, 이러한 선택은 조작으로부터 영향을 받지 않으며 마지막 순간까지 예측할 수 없지만 궁극적으로 보편적으로 명확하다는 것을 증명할 수 있게 보장한다.
알고랜드의 방안은, 원칙적으로 사실상 사용자들의 다른 클래스들(비트코인의 "광부" 및 "일반 사용자")을 생성하지 않는다는 점에서 상당히 민주적이다. 알고랜드에서, "모든 권한은 모든 사용자들의 세트에 있다".
알고랜드의 주목할만한 한 가지 특성은, 트랜잭션 이력이 매우 작은 확률(예를 들어, 1조분의 1, 또는 10- 18)로만 포크(fork)될 수 있다는 점이다. 알고랜드는, 또한, 일부 법적 문제 및 정치적 문제도 해결할 수 있다.
알고리즘 방안은, 블록체인에 적용되며, 보다 일반적으로 블록들의 변조 방지 시퀀스를 생성하는 임의의 방법에 적용된다. 실제로 독립적인 관심을 가질 수 있는 새로운 방법(블록체인의 대안이며 블록체인보다 효율적임)을 제시한다.
1.1 비트코인의 가정 및 기술적 문제점
비트코인은, 매우 독창적인 시스템이며, 대량의 양의 후속 연구에 영감을 주었다. 그러나, 문제점도 있다. 비트코인과 같이 본질적으로 작업 증명을 기반으로 하는 모든 암호 화폐에 의해 실제로 공유되는 근본적 가정과 기술적 문제점들을 요약해 보자.
이 요약을 위해, 비트코인에서, 사용자는 디지털 서명 체계의 다수의 공개 키를 소유할 수 있고, 돈은 공개 키들에 연관되어 있으며, 지불은 소정량의 돈을 하나의 공개 키로부터 다른 공개 키로 이체하는 디지털 서명임을 상기하는 것으로 충분하다. 본질적으로, 비트코인은 모든 처리된 지불을 블록들의 체인(B1, B2,...)으로 조직하며, 각 블록은 다수의 지불로 이루어지고, 이때, 임의의 순서로 취해지는 B1의 모든 지불 및 후속하는 B2의 임의의 순서의 지불 등이 유효 지불들의 시퀀스를 구성한다. 각 블록은 평균적으로 10분마다 생성된다.
이러한 블록들의 시퀀스는, 체인이며, 그 이유는 심지어 단일 블록에서의 임의의 변경이 모든 후속 블록에 침투하여 지불 이력의 임의의 변경을 더욱 쉽게 파악할 수 있음을 보장하도록 구성되어 있기 때문이다. (알 수 있는 바와 같이, 이것은 이전 블록의 암호 해시를 각 블록에 포함함으로써 달성된다). 이러한 블록 구조를 블록체인이라고 한다.
가정: 연산력의 정직한 다수. 비트코인은, 악의적 엔티티(또는 조정된 악의적 엔티티들의 연합)가 블록 생성에 전념하는 대부분의 연산력을 제어하지 않는다고 가정한다. 실제로, 이러한 엔티티는 블록체인을 수정할 수 있고, 이에 따라 지불 이력을 원하는 대로 재작성할 수 있다. 특히, 엔티티는, 지불(
Figure pct00022
)을 행할 수 있고, 지불한 혜택을 취할 수 있고, 이어서
Figure pct00023
의 임의의 흔적을 "삭제"할 수 있다.
기술적 문제점 1: 연산 낭비. 블록 생성에 대한 비트코인의 작업 증명 방안에는 엄청난 양의 연상이 필요하다. 현재, 단지 수십만 개의 공개 키가 있는 시스템에 있는 경우에, 가장 강력한 500개의 최고 슈퍼컴퓨터는 비트코인 플레이어로부터 필요로 하는 총 연산력의 12.8%만을 발휘할 수 있다. 상당히 더 많은 사용자가 시스템에 참여하면, 이러한 연산량이 크게 증가한다.
기술적 문제점 2: 권한 집중. 오늘날, 엄청난 양의 연산이 필요함으로 인해, (휴대 전화는 고사하고) 일반 데스크톱을 사용하여 새로운 블록을 생성하려는 사용자는 돈을 잃을 것으로 예상한다. 실제로, 일반 컴퓨터로 새로운 블록을 연산하는 경우, 연산에 필요한 전력의 예상 비용이 예상 보상을 초과한다. ("새로운 블록을 채굴하는 것 외에는 어떠한 것도 하지 않는) 특수하게 구축된 컴퓨터 풀들만 사용하면, 새로운 블록들을 생성하여 이익을 내는 것을 기대할 수 있다. 이에 따라, 오늘날에는, 실제로, 사용자들의 두 개의 분리 클래스(disjoint classes), 즉 지불만 행하는 일반 사용자 및 새로운 블록을 검색만 하는 특수 채굴 풀이 있다.
따라서, 최근, 블록 생성을 위한 총 연산력이 단지 5개의 풀 내에 있다는 것은 놀라운 일이 아니다. 이러한 조건에서, 대부분의 연산력이 정직하다는 가정은 신뢰성이 떨어진다.
기술적 문제점 3: 모호성. 비트코인에서, 블록체인은 반드시 독특한 것은 아니다. 실제로, 비트코인의 최신 부분은 종종 포크되며, 블록체인은, 예를 들어, 한 사용자에 따라
Figure pct00024
일 수 있고, 다른 사용자에 따라
Figure pct00025
일 수 있다. 체인에 여러 블록을 추가한 후에만, 제1 블록(k+3)이 모든 사용자에 대해 동일하다는 것을 합리적으로 확신할 수 있다. 따라서, 체인의 최종 블록에 포함된 지불에 즉시 의존할 수 없다. 블록체인에서 블록이 충분히 깊어지고 이에 따라 충분히 안정되는지를 확인해 보는 것이 더 신중하다.
별도로, 비트코인에 대한 법 집행 및 통화 정책에 대한 우려도 제기되었다.
(주석 2: 비트코인 지불에 의해 제공되는 (의사) 익명성은 돈 세탁 및/또는 범죄자 개인 또는 테러 조직의 자금 조달로 오용될 수 있다. 원칙적으로, 완벽한 익명성을 제공하는 통상적인 지폐 또는 금괴에서 동일한 문제점이 제기되지만, 이들 통화의 물리적 특성은 자금 이체를 상당히 느리게 하여 법 집행 기관의 모니터링을 어느 정도 허용한다.
"돈을 인쇄하는" 능력은 국가의 가장 기본적인 권한들 중 하나이다. 따라서, 원칙적으로, 독립적으로 유동하는 통화를 대량으로 채택하면 이러한 권한이 줄어들 수 있다. 그러나, 현재, 비트코인은, 정부의 통화 정책에 위협이 되지 않으며, 확장성 문제로 인해, 절대로 위협이 되지 않을 수 있다).
1.2 간결하게, 알고랜드
설정. 알고랜드는 매우 강력한 설정으로 동작한다. 간략하게,
(a) 무허가 환경 및 허가된 환경
알고랜드는, 임의로 많은 사용자가 어떠한 종류의 베팅(vetting) 또는 허가 없이도 시스템에 언제든지 참여할 수 있는 완전한 무허가 환경에서도 효율적이고 안전하게 동작한다. 물론, 알고랜드는 허가된 환경에서 더 잘 동작한다.
(b) 매우 적대적인 환경. 알고랜드는 매우 강력한 적대자를 견뎌낸다. 이러한 매우 강력한 적대자는,
(1) 무허가 환경에서, 시스템 내의 돈의 2/3가 정직한 사용자에 속하는 경우에는, 자신이 원하는 임의의 사용자를 자신이 원하는 어느 때라도 즉시 손상시킨다(허가된 환경에서는, 돈에 관계없이, 사용자의 2/3가 정직하기에 충분하다.)
(2) 모든 손상된 사용자를 완전히 제어하고 완벽하게 조정한다.
(3) 정직한 사용자에 의해 전송되는 각 메시지(m)가, m의 크기에만 의존하는 시간(
Figure pct00026
) 내에 정직한 사용자들 모두에게 도달하는 경우에는, 모든 메시지의 배달을 스케줄링한다.
강력한 적대자가 존재함에도 불구하고 알고랜드에서의 주요 특성
* 필요한 연산량이 최소이다. 본질적으로, 시스템에 얼마나 많은 사용자가 존재하더라도, 1,500명의 사용자 각각은 최대 몇 초의 연산을 수행해야 한다.
* 새로운 블록이 빠르게 생성되며 실제로 블록체인을 떠나지 않는다. 즉, 알고랜드의 블록체인은 무시할만한 확률(즉, 1조분의 1 또는 10-18 미만)로만 포크될 수 있다. 따라서, 사용자들은, 블록이 보이자마자 새로운 블록에 포함된 지불을 중계할 수 있다.
* 모든 권한은 사용자 자신에게 있다. 알고랜드는 엄밀하게 분산형 시스템이다. 특히, 어떤 트랜잭션이 인식되는지를 제어할 수 있는 외인성 엔티티(비트코인의 "광부")가 없다.
알고랜드의 기술
1. 새롭게 빠른 비잔틴 합의 프로토콜. 알고랜드는, 본 발명의 암호화, 메시지 전달, 이진 비잔틴 합의(BA) 프로토콜인 BA*를 통해 새로운 블록을 생성한다. 프로토콜(BA*)은, (곧 논의할) 일부 추가 특성뿐만 아니라 또한 매우 빠르다. 대략적으로 말하자면, 이 프로토콜의 이진 입력 버전은, 플레이어(i)가 다른 모든 플레이어에게 단일 메시지(mi)를 전송하는 3-단계 루프로 이루어진다. 완전한 동기식 네트워크에서 실행되며, 2/3를 초과하는 플레이어가 정직하고. 확률은 1/3을 초과하고, 각 루프 후에, 프로토콜이 합의로 종료하게 된다(프로토콜(BA*)이 어떠한 약화 없이 비잔틴 합의의 원래 정의를 충족한다고 강조한다).
알고랜드는, 이러한 이진 BA 프로토콜을 이용하여 본 발명의 다른 통신 모델에서 각각의 새로운 블록에 대한 합의에 도달한다. 이어서, 합의된 블록은, 적절한 검증자들의 규정된 수의 디지털 서명을 통해 증명되고, 네트워크를 통해 전파된다.
2. 비밀 암호화 추첨. 프로토콜(BA*)은, 매우 빠르지만, 수백만 명의 사용자에 의해 재생될 때 더욱 빠른 속도의 이점을 얻을 수 있다. 이에 따라, 알고랜드는, BA*의 플레이어를 모든 사용자들의 세트의 훨씬 작은 서브세트로 되도록 선택한다. 상이한 종류의 권한 집중 문제점을 피하기 위해, 각각의 새로운 블록(Br)은, 선택된 검증자들의 별도의 세트(SVr)에 의한 새로운 BA*의 실행을 통해 구성되고 합의된다. 원칙적으로, 이러한 세트를 선택하는 것은 Br을 직접 선택하는 것만 큼 어려울 수 있다. 이러한 잠재적 문제점을, 비밀 암호화 추첨이라고 칭하는 새로운 방안에 의해 해결한다. 추첨은, 자격을 갖춘 많은 개인 중에서 임의로 공인들을 선발하는 실행이다(예를 들어, 추첨은, 아테네, 플로렌스, 베니스 등의 공화국에 의해 수세기에 걸쳐 실행되었다. 현대 사법 시스템에서, 랜덤한 선택은 배심원을 선택하는 데 종종 사용된다. 랜덤한 샘플링은 선거를 위해서도 지지되었다). 물론, 분산형 시스템에서, 각 검증 세트(SVr)의 구성원을 랜덤하게 선택하는 데 필요한 임의의 코인을 선택하는 것은 문제가 있다. 따라서 자동(즉, 메시지 교환이 필요 없음)이면서 랜덤한 방식으로 보장되는 방식으로 모든 사용자의 모집단으로부터 각 검증자 세트를 선택하기 위해 암호화에 의존한다. 비슷한 방식으로, 새로운 블록(Br) 제안을 담당하는 사용자, 리더, 및 리더에 의해 제안되는 블록에 합의하는 것을 담당하는 검증 세트(SVr)를 선택한다. 본 발명의 시스템은, 이전 블록의 콘텐츠로부터 추론될 수 있고 매우 강력한 적대자가 존재하더라도 조작될 수 없는 일부 정보(Qr - 1)를 이용한다.
3. 양(시드) Qr. 새로운 블록(Br)의 구성을 담당하는 다음 검증자 세트 및 리더를 자동 결정하기 위해 블록체인의 최종 블록(Br-1)을 사용한다. 이 방안의 문제점은, 단지 이전 라운드에서 약간 다른 지불을 선택함으로써, 강력한 적대자가 다음 리더를 엄청나게 제어할 수 있다는 점이다. 시스템에서 플레이어/돈의 1/1000만을 제어하더라도, 모든 리더가 악의적임을 보장할 수 있다(직관 섹션 4.1을 참조한다). 이러한 문제점은, 모든 스테이크 증명 방안의 중심이며, 우리가 아는 한, 지금까지 만족스럽게 해결되지 않았다.
이러한 문제점을 해결하기 위해, 강력한 적대자에 의해 예측가능하지 않고 영향도 받지 않는다고 증명될 수 있는 신중하게 규정된 별도의 양(Qr)을 의도적으로 구성하고 계속 업데이트한다. 제r 시드가 Qr로부터 온 것이어서, 알고랜드가 제r 블록의 생성시 특별한 역할을 하는 모든 사용자를 비밀 암호화 추첨을 통해 선택하므로, Qr을 제r 시드라고 칭할 수 있다. 시드(Qr)는 블록(Br-1)으로부터 추론될 수 있다.
4. 비밀 자격증명. 새로운 블록(Br)을 구성하는 리더 및 검증자 세트를 선택하기 위해 현재 최종 블록(Br-1)을 랜덤하게 그리고 모호하지 않게 사용하는 것으로는 충분하지 않다. Br을 생성하기 전에 Br-1을 알아야 하므로, Br-1로부터 추론할 수 있으며 영향을 받지 않는 최종 양(Qr - 1)도 알아야 한다. 이에 따라, 블록(Br) 연산을 담당하는 리더 및 검증자도 마찬가지이다. 따라서, 강력한 적대자는, Br에 관해 논의하기 전에 자신이 증명하는 블록을 완전히 제어하도록 이들 모두를 즉시 손상시킬 수 있다.
이러한 문제점을 방지하기 위해, 리더는(그리고 실제로 검증자도), 자신의 역할을 비밀리에 학습하지만, 실제로 해당 역할을 갖는 모든 사람에게 증명할 수 있는 적절한 자격증명을 연산할 수 있다. 사용자는, 자신이 다음 블록의 리더임을 개인적으로 인식하게 되면, 먼저 자신이 제안한 새로운 블록을 비밀리에 조립한 후, 자신의 고유한 자격증명과 함께 그 블록을 (증명될 수 있도록) 배포한다. 이런 식으로, 적대자는 다음 블록의 리더가 누구인지를 즉시 인식할 수 있고 그 리더를 즉시 손상시킬 수 있지만, 적대자가 새로운 블록의 선택에 영향을 미치기에는 너무 늦을 것이다. 실제로, 적대자는, 강력한 정부가 위키리크스에 의해 바이러스처럼 확산되는 메시지를 병에 다시 넣을 수 있는 것 이상으로 리더의 메시지를 "콜백"(call back)할 수 없다.
알 수 있듯이, 리더의 독창성을 보장할 수 없으며, 모든 사람이 리더 자신을 포함하여 누가 리더인지를 확신할 수 없다. 그러나, 알고랜드에서는, 모호하지 않은 진행이 보장된다.
5. 플레이어 교체. 새로운 블록을 제안한 후, 리더는, 자신의 일이 완료되었기 때문에, "죽을" 수도 있다(또는 적대자에 의해 손상될 수 있다). 그러나, SVr의 검증자의 경우에는, 상황이 덜 간단하다. 실제로, 충분한 수의 서명으로 새로운 블록(Br)을 증명하는 담당자는, 먼저 리더가 제안한 블록에 대해 비잔틴 합의를 실행해야 한다. 문제는, 그것이 아무리 효율적이라도, BA*가 다수의 단계를 필요로 하며 플레이어들의 2/3를 초과하는 플레이어가 정직해야 한다는 것이다. 이는, 효율성의 이유로, BA*의 플레이어 세트가 모든 사용자들의 세트 중에서 랜덤하게 선택된 작은 세트(SVr)로 이루어지므로 문제가 된다. 따라서, 강력한 적대자는, 모든 사용자의 1/3을 손상시킬 수는 없지만, SVr의 모든 구성원을 확실히 손상시킬 수 있다.
다행히, 피어-투-피어 방식으로 메시지를 전파함으로써 실행되는 프로토콜(BA*)이 플레이어 교체가능한 것임을 증명할 것이다. 이러한 새로운 요건은, 각 단계가 완전히 새롭고 랜덤하게 독립적으로 선택된 플레이어 세트에 의해 실행되더라도 프로토콜이 정확하고 효율적으로 합의에 도달한다는 것을 의미한다. 따라서, 수백만 명의 사용자의 경우, BA*의 단계에 연관된 플레이어들의 작은 각 세트는 다음 세트와의 빈 교차점을 가질 수 있다.
또한, BA*의 상이한 단계들의 플레이어들의 세트들은 완전히 다른 기수를 가질 수 있다. 또한, 각 세트의 구성원들은, 다음 세트의 플레이어들이 누구인지를 알지 못하며, 어떠한 내부 상태도 비밀리에 통과하지 못한다.
교체가능한-플레이어 특성은, 실제로 우리가 상상하는 역동적이고 매우 강력한 적대자를 물리치기 위해 매우 중요하다. 교체가능한-플레이어 프로토콜이 많은 상황과 애플리케이션에서 결정적이라고 증명될 것으로 판단된다. 특히, 교체가능한-플레이어 프로토콜은, 역동적 적대자가 있는 많은 플레이어들에 내장된 작은 서브 프로토콜을 안전하게 실행하는 데 중요하며, 전체 플레이어의 작은 분율도 손상시킬 수 있는 이러한 적대자는, 작은 서브 프로토콜에서 모든 플레이어를 손상시키는 데 어려움을 겪지 않는다.
추가 특성/기술: 게으른 정직. 정직한 사용자는 온라인 상태 및 프로토콜 실행을 포함하여 처방된 지침을 따른다. 알고랜드는 적당한 연산 및 통신 요건만을 가지고 있으므로, 온라인 상태에 있고 "백그라운드에서" 프로토콜을 실행하는 것은 큰 희생이 아니다. 물론, 갑작스러운 접속 끊김으로 인해 또는 리부팅 필요로 인해 정직한 사용자들 중의 일부의 "결석"은 자동 허용된다(그 이유는 이러한 일부 플레이어가 일시적으로 악의를 갖는다고 항상 고려할 수 있기 때문이다). 그러나, 알고랜드는, 정직한 사용자들이 대부분의 시간에 오프라인 상태에 있는 새로운 모델에서 동작하도록 간단하게 구성될 수 있음을 강조하고자 한다. 본 발명의 새로운 모델은 다음과 같이 약식으로 소개될 수 있다.
게으른 정직. 대략적으로 말하면, 사용자(i)는, (1) 프로토콜에 참여하라는 요청을 받았을 때 처방된 자신의 지시 사항을 모두 따르고 (2) 프로토콜에 참여하라는 요청을 거의 받지 않고 적절한 사전 통지를 받으면, 게으르지만 정직하다.
그러한 정직에 대한 이완된 개념에 의해, 정직한 사람들이 필요할 때 가까이 있을 것이라고 더욱 확신할 수 있으며, 이러한 경우, 알고랜드는, 이하의 내용을 보장한다.
시스템은, 주어진 시점에서, 참여하고 있는 플레이어들의 대다수가 악의적인 경우에도, 안전하게 동작한다.
2 예비 단계
2.1 암호화 프리미티브
이상적 해싱. 임의로 긴 스트링을 고정된 길이의 이진 스트링에 맵핑하는 효율적으로 연산가능한 암호화 해시 함수(H)에 의존한다. 오랜 전통에 따라, H를 랜덤 오라클로서 모델링하며, 이것은 본질적으로 각각의 가능한 스트링(s)을 선택된 길이의 임의로 독립적으로 선택된(그리고 고정된) 이진 스트링(H(s))에 맵핑하는 함수이다.
설명되는 실시예들에서, H는 256-비트 길이의 출력을 갖는다. 실제로, 이러한 길이는 시스템을 효율적으로 만들 수 있을 만큼 짧고 시스템을 안전하게 유지할 수 있을 정도로 길다. 예를 들어, H가 충돌 복원력을 갖기를 원한다. 즉, H(x) = H(y)이도록 두 개의 상이한 스트링(x, y)을 찾기가 어렵다. H가 256-비트 길이의 출력을 갖는 랜덤 오라클인 경우, 이러한 스트링들의 임의의 쌍을 찾는 것은 실제로 어렵다(랜덤하게 시도하고 생일 역설에 의존하려면, 2256/2 = 2128 시도가 필요하다).
디지털 서명. 디지털 서명은, 사용자들이 임의의 비밀 키를 공유하지 않고도 정보를 서로 인증하게 할 수 있다. 디지털 서명 체계는, 확률 키 생성기(G), 서명 알고리즘(S), 및 검증 알고리즘(V)인 3개의 빠른 알고리즘으로 이루어진다.
충분히 높은 정수인 보안 파라미터(k)가 주어지면, 사용자(i)는, G를 사용하여 k-비트 키들(즉, 스트링들)의 쌍, 즉, "공개" 키(pki) 및 일치하는 "비밀" 서명 키(ski)를 생성한다. 결정적으로, 공개 키는 대응하는 비밀 키를 "배신"하지 않는다. 즉, pki를 알더라도, i가 아닌 누구도 천문학적 시간보다 짧은 시간 내에 ski를 연산할 수는 없다.
사용자(i)는 ski를 사용하여 메시지를 디지털 서명한다. 가능한 각 메시지(이진 스트링)(m)에 대해, i는 먼저 m을 해시한 후 입력(H(m)) 및 ski에 대하여 알고리즘(S)을 실행하여 k-비트 스트링을 생성한다.
Figure pct00027
(주석 3: H는 충돌 복원력이 있으므로, m을 서명함으로써, 다른 메시지(m')를 "우연히 서명"하는 것은 실제로 불가능하다).
이진 스트링(
Figure pct00028
)은, (pki에 관하여) m에 대한 i의 디지털 서명이라고 하며, 공개 키(pki)가 컨텍스트에서 명확한 경우 sigi(m)에 의해 더욱 간단하게 표시될 수 있다.
pki를 아는 누구라도 그것을 사용하여 i에 의해 생성된 디지털 서명을 검증할 수 있다. 구체적으로, (a) 플레이어(i)의 공개 키(pki), (b) 메시지(m), 및 (c) 스트링(s), 즉, i가 행한 것으로 주장되는 메시지(m)의 디지털 서명의 입력에 대하여, 검증 알고리즘(V)은 예 또는 아니오를 출력한다.
디지털 서명 체계로부터 필요로 하는 특성들은 다음과 같다.
1. 정당한 서명은 항상 검증된다. s = sigi(m)이면, V(pki, m, s) = 예
2. 디지털 서명은 위조하기 어렵다. ski를 모르면, i가 서명하지 않은 메시지(m)에 대해 V(pki, m, s) = 예인 스트링을 찾는 시간이 천문학적으로 길다.
(강력한 보안 요건에 따라, 이는 다른 임의의 메시지의 서명을 취득할 수 있는 경우에도 적용된다).
이에 따라, 다른 사람이 자신을 대신하여 메시지에 서명하는 것을 방지하기 위해, 플레이어(i)는, 자신의 서명 키(ski)(따라서 "비밀 키"라는 용어로 됨)를 비밀로 유지해야 하고, 누군가가 자신이 서명하는 메시지를 검증할 수 있으려면, i는 자신의 키(pki)(따라서, "공개 키"라는 용어로 됨)를 공개하는 데 관심을 갖는다.
메시지 검색가능성이 있는 서명. 일반적으로 메시지(m)는 해당 서명(sigi(m))으로부터 검색될 수 없다. 사실상 개념적으로 편리한 "메시지 검색가능성" 특성을 충족하는 디지털 서명을 처리하기 위해(즉, 서명자와 메시지를 서명으로부터 쉽게 연산할 수 있음을 보장하기 위해), 이하의 식을 규정한다.
pki가 명백하다면,
Figure pct00029
Figure pct00030
고유한 디지털 서명. 다음에 따르는 같은 추가 특성을 충족하는 디지털 서명 체계(G, S, V)도 고려한다.
3. 고유성.
Figure pct00031
Figure pct00032
이도록 스트링(pk', m, s, 및 s')을 찾는 것은 어렵다.
(고유성 특성은 합법적으로 생성된 공개 키가 아닌 스트링(pk')에도 적용된다는 점에 주목한다. 그러나, 구체적으로, 고유성 특성은, 누군가가 일치하는 비밀 키(sk)와 함께 공개 키(pk)를 연산하도록 특정된 키 생성기(G)를 사용하였고 이에 따라 sk를 안다면, 그 사람이 pk에 관한 동일한 메시지의 두 개의 상이한 디지털 서명을 찾는 것은 본질적으로 불가능하다는 것을 의미한다).
비고
* 고유 서명으로부터 검증가능한 랜덤 기능까지. 고유성 특성을 가진 디지털 서명 체계와 관련하여, 맵핑(
Figure pct00033
)은, 고유하고 랜덤하게 선택된 256-비트 스트링을 가능한 각 스트링(m)에 연관짓고, 서명(sigi(m))이 주어지면 이러한 맵핑의 정확성을 증명할 수 있다.
즉, 고유성 특성을 충족하는 이상적인 해싱 및 디지털 서명 체계는 본질적으로 검증가능한 랜덤 함수(VRF)의 기본 구현을 제공한다.
VRF는 특별한 종류의 디지털 서명이다. 이러한 메시지(m)의 i의 특별한 서명을 나타내기 위해 VRFi(m)를 기입할 수 있다. 고유성 특성을 충족하는 것 외에도, 검증가능한 랜덤 함수는 충분히 랜덤으로 되도록 보장되는 출력을 생성한다. 즉, VRFi(m)는, 본질적으로 랜덤이며, 생성될 때까지 예측불가이다. 대조적으로, SIGi(m)는 충분히 랜덤일 필요가 없다. 예를 들어, 사용자(i)는, SIGi(m)가 (구문적으로) 작은 (즉, 처음 몇 개의 비트가 항상 0일 수 있는) k-비트 스트링으로 항상 되도록 자신의 공개 키를 선택할 수 있다. 그러나 H가 이상적인 해시 함수이므로, H(SIGi(m))는 항상 랜덤한 256-비트 스트링이라는 점에 주목한다. 본 발명의 바람직한 실시예들에서는, 고유한 난수를 각각의 메시지(m) 및 각각의 사용자(i)에 정확하게 연관지을 수 있도록 고유성 특성을 충족하는 해싱 디지털 서명을 광범위하게 사용한다. 알고랜드를 VRF로 구현하는 경우, H(SIGi(m))를 VRFi(m)로 대체할 수 있다. 특히, 사용자(i)는, (예를 들어, H(SIGi(m))를 수(p)와 비교하기 위해) SIGi(m)를 먼저 연산한 후 H(SIGi(m))를 연산할 필요가 없다. 사용자는 VRFi(m)를 직접 연산할 수 있다. 요컨대, H(SIGi(m))는, VRFi(m)로서 또는 충분히 난수로서 해석될 수 있으며, 플레이어(i)에 의해 쉽게 연산될 수 있지만, i 및 m에 모호하지 않게 연관된 다른 사람에 대해서는 예측될 수 없다는 점을 이해해야 한다.
* 디지털 서명에 대한 세 개의 상이한 요구. 알고랜드에서, 사용자(i)는 아래의 사항들에 대하여 디지털 서명에 의존한다.
(1) i의 고유한 지불을 인증. 이 응용분야에서, 키는, "장기적"(즉, 오랜 기간 동안 많은 메시지를 서명하는 데 사용)일 수 있으며, 일반적인 서명 체계로부터 비롯된 것이다.
(2) i가 라운드(r)의 일부 단계(s)에서 행동할 자격이 있음을 증명하는 자격증명을 생성. 여기서, 키는, 장기적일 수 있지만 고유성 특성을 충족하는 체계로부터 비롯되어야 한다.
(3) i가 행동하는 각 단계에서 전송하는 메시지(i)를 인증. 여기서, 키는, 임시적이어야 하지만(즉, 처음 사용 후 파괴되어야 하지만), 일반적인 서명 체계로부터 비롯된 것일 수 있다.
* 저 비용 단순화. 간략하도록, 각 사용자(i)가 하나의 장기간 키를 갖는 것을 고려해본다. 이에 따라, 이러한 키는 고유성 특성이 있는 서명 체계로부터 비롯되어야 한다. 이러한 단순성은 연산 비용이 적다. 전형적으로, 사실, 고유한 디지털 서명은 일반 서명보다 생산 및 검증하는 데 약간 더 비싸다.
2.2 이상화된 공개 원장
알고랜드는 이상화된 공개 원장에 기초하여 다음에 따르는 지불 시스템을 모방하려 한다.
1. 초기 상태. 돈은 개별 공개 키(사용자가 개인적으로 생성 및 소유함)에 연관된다.
Figure pct00034
를 초기 공개 키라고 하고
Figure pct00035
를 각각 초기 금액량 단위라고 하면, 초기 상태는 아래와 같다.
Figure pct00036
이는 시스템에 공통적으로 알려진 것으로 여겨진다.
2. 지불. pk를 현재 a ≥ 0 금액 단위를 갖는 공개 키라고 하고, pk'를 다른 공개 키라고 하고, a'를 a 이하의 음수가 아닌 수라고 하자. 이어서, (유효한) 지불(
Figure pct00037
)은, 일부 추가 정보와 함께 a' 금액 단위를 pk에서 pk'으로 이체하는 것을 특정하는, pk에 대한 디지털 서명이다. 기호에 있어서,
Figure pct00038
여기서, I는 유용하지만 민감하지 않은 것으로 여겨지는 임의의 추가 정보(예를 들어, 시간 정보 및 지불 식별자)를 나타내며,
Figure pct00039
는 민감한 것으로 여겨지는 임의의 추가 정보(예를 들어, 지불 이유, pk와 pk'의 소유자들의 아이덴티티 등일 수 있음)를 나타낸다.
pk(또는 그 소유자)는 지불자를 가리키고, 각 pk'(또는 그 소유자)는 수취인을 가리키고, a'은 지불(
Figure pct00040
) 금액을 가리킨다.
지불을 통한 무료 가입. 사용자들은 자신의 고유한 공개/비밀 키 쌍들을 생성함으로써 원할 때마다 시스템에 참여할 수 있다는 점에 주목한다. 이에 따라, 상술한 지불(
Figure pct00041
)에서 나타나는 공개 키(pk')는, 이전에 어떠한 돈도 "소유"한 적이 없는 새롭게 생성된 공개 키일 수 있다.
3. 마술 원장. 이상화된 시스템에서, 모든 지불은, 유효하며, 모든 사람이 다음과 같은 것을 볼 수 있도록 "하늘에 게시된"(posted on the sky) 지불 세트의 변조 방지 리스트에 표시된다.
Figure pct00042
각 블록(PAYr + 1)은 블록(PAYr)의 출현 이후에 이루어진 모든 지불 세트로 이루어진다. 이상적인 시스템에서는, 고정된(또는 유한한) 시간 후에 새로운 블록이 나타난다.
논의
* 더욱 일반적인 지불 및 소비되지 않은 트랜잭션 출력. 보다 일반적으로, 공개 키(pk)가 금액(a)을 소유하는 경우, pk의 유효 지불(
Figure pct00043
)은,
Figure pct00044
로 되는 한 금액(
Figure pct00045
)을 키들(
Figure pct00046
)에 각각 이체할 수 있다.
비트코인 및 유사 시스템에서, 공개 키(pk)에 의해 소유되는 돈은 별도의 금액들로 분리되며, pk에 행해진 지불(
Figure pct00047
)은 이러한 분리된 금액(a)을 전체적으로 이체해야 한다. pk가 a의 분율(a'< a)만을 다른 키에 이체하려는 경우, 소비되지 않은 트랜잭션 출력인 잔액도 다른 키, 가능한 경우엔 pk 자체에 이체해야 한다.
알고랜드는, 또한, 금액들이 분리된 키들과 함께 동작한다. 그러나, 알고랜드의 새로운 양태에 중점을 두기 위해, 단일 금액이 연관되어 있는 키 및 지불의 더욱 간단한 형태를 고수하는 것이 개념적으로 더 간단하다.
* 현재 상태. 이상화된 체계는, 시스템의 현재 상태(즉, 각 공개 키가 얼마만큼의 금액 단위를 갖는지)에 대한 정보를 직접 제공하지 않다. 이 정보는 마술 원장으로부터 추론될 수 있다.
이상적인 시스템에서, 능동적 사용자는, 최신 상태 정보를 지속적으로 저장하고 업데이트하며, 그렇지 않은 경우에는 처음부터 또는 마지막으로 연산한 시점으부터 그 정보를 재구성해야 한다(그러나, 나중에는, 사용자들이 효율적인 방식으로 현재 상태를 재구성할 수 있도록 알고랜드를 증강하는 방법을 보여준다).
* 보안 및 "프라이버시". 디지털 서명은, 누구도 다른 사용자의 지불을 위조할 수 없음을 보장한다. 지불(
Figure pct00048
)에서, 공개 키와 금액은 숨겨져 있지 않지만, 민감 정보(
Figure pct00049
)는 숨겨져 있다. 실제로는,
Figure pct00050
만이
Figure pct00051
에서 보이고, H는 이상적인 해시 함수이고,
Figure pct00052
는 랜덤한 256-비트 값이므로,
Figure pct00053
를 단순히 추측하는 것보다 양호한
Figure pct00054
가 무엇인지를 알아낼 방법이 없다. 그러나,
Figure pct00055
가 무엇인지 증명하기 위해서는(예를 들어, 지불 이유를 증명하기 위해서는), 지불자가 단순히
Figure pct00056
를 공개할 수 있다. 공개된
Figure pct00057
의 정확성은,
Figure pct00058
를 연산하고 그 결과 값을
Figure pct00059
의 최종 항목과 비교함으로써 검증될 수 있다. 실제로, H는 충돌 복원력이 있으므로,
Figure pct00060
이도록 제2 값(
Figure pct00061
)을 찾기가 어렵다.
2.3 기본 개념 및 표기법
키, 사용자, 및 소유자. 달리 명시하지 않는 한, 각 공개 키(간략하게 "키")는, 장기적이고, 고유성 특성이 있는 디지털 서명 체계와 관련이 있다. 시스템에 미리 있는 다른 공개 키(j)가 i에게 지불을 행하는 경우에는 공개 키(i)가 시스템에 참여한다.
색상의 경우, 키들을 개인화한다. 키(i)를 "남자"라고 칭하고, i가 정직하다고 말하며, i가 메시지 등을 전송하고 수신한다. 사용자는 키와 동의어이다. 키가 속하는 사람으로부터 키를 구별하려면, 각각 "디지털 키"와 "소유자"라는 용어를 사용한다.
무허가 및 허가된 시스템. 시스템은, 디지털 키가 언제든지 자유롭게 참여할 수 있고 소유자가 다수의 디지털 키를 소유할 수 있는 경우에는 무허가이며, 그렇지 않으면 허가된다.
고유한 표현. 알고랜드의 각 오브젝트는 고유한 표현을 갖는다. 특히, 각 세트(
Figure pct00062
)는, 미리 특정된 방식으로 순서화되며, 예를 들어, 먼저 x에 있어서 사전식으로, 다음으로 y 등에 있어서 사전식으로 순서화된다.
등속 시계. 글로벌 시계는 없으며, 오히려, 각 사용자가 자신의 고유한 시계를 갖는다. 사용자 시계들은 어떤 식으로든 동기화될 필요가 없다. 그러나, 이들 모두가 등속을 갖는다고 가정한다.
예를 들어, 사용자(i)의 시계에 따라 오후 12시일 때, 다른 사용자(j)의 시계에 따라 오후 2시 30분일 수 있지만, i의 시계에 따라 12시 1분일 때에는, j의 시계에 따라 2시 31분일 것이다. 즉, "1분은 모든 사용자에 대해 동일(충분히 본질적으로 동일)하다".
라운드. 알고랜드는, 라운드라고 하는 논리 단위들(r = 0, 1, ...)로 조직된다.
라운드를 나타내기 위해 위첨자들을 지속적으로 사용한다. 숫자가 아닌 양(Q)(예를 들어, 스트링, 공개 키, 세트, 디지털 서명 등)이 라운드(r)를 가리킨다는 점을 나타내기 위해서는, 간단히 Qr을 쓴다. Q가 (숫자로서 해석될 수 있는 이진 스트링과는 대조적으로) 실제 숫자인 경우에만,
Figure pct00063
을 써서, 기호(r)가 Q의 지수로서 해석될 수 없다.
라운드(a의 시작)(r>0)에서, 모든 공개 키들의 세트는 PKr이고, 시스템 상태는
Figure pct00064
이며,
여기서,
Figure pct00065
는 공개 키(i)에 대하여 사용될 수 있는 금액이다. PKr은 Sr로부터 추론될 수 있으며, Sr은 각 공개 키(i)에 대해 다른 구성요소를 특정할 수도 있다는 점에 주목한다.
라운드(0)에 대하여, PK0은 초기 공개 키들의 세트이고, S0은 초기 상태이다. PK0과 S0 모두는 시스템에서 공통적으로 알려져 있다고 추정된다. 간략하도록, 라운드(r)의 시작시,
Figure pct00066
Figure pct00067
가 있다.
라운드(r)에서, 시스템 상태는 Sr로부터 Sr+1로 천이한다. 기호로는, 아래와 같다.
라운드(r): Sr → Sr+1
지불. 알고랜드에서, 사용자들은 계속 지불을 행한다(그리고 지불을 서브섹션 2.7에서 설명하는 방식으로 전파한다). 사용자(
Figure pct00068
)의 지불(
Figure pct00069
)은, 이상적 시스템에서와 동일한 포맷 및 의미론을 갖는다. 즉,
Figure pct00070
이다.
지불(
Figure pct00071
)은, (1) 지불액(a)이
Figure pct00072
이하이고 (2) r'<r에 대하여 어떠한 공식 페이세트(PAYr')에서도 보이지 않으면, 라운드(r)에서 개별적으로 유효하다(간략하게는, 라운드-r 지불이다)(후술하는 바와 같이, 제2 조건은,
Figure pct00073
가 아직 발휘되지 않았음을 의미한다).
i의 라운드-r 지불의 세트는, 이들의 금액 합이 최대
Figure pct00074
이면 전체적으로 유효하다.
페이세트. 라운드-r 페이세트(P)는, 각 사용자(i)마다, P에서의 i의 지불(없을 수도 있음)이 전체적으로 유효하면 라운드-r 지불의 세트이다. 모든 라운드-r 페이세트의 세트는
Figure pct00075
이다. 라운드-r 페이세트(P)는, P의 어떠한 수퍼세트도 라운드-r 페이세트가 아니면 최대이다.
사실상, 지불(
Figure pct00076
)이, 또한 라운드(
Figure pct00077
)를 특정하며(
Figure pct00078
), 음수가 아닌 일부 고정된 정수(k)에 대하여
Figure pct00079
를 벗어난 어떠한 라운드에서도 유효일 수 없음을 제안한다(주석 4: 이는,
Figure pct00080
가 "실행"되었는지 여부를 확인하는 것을 간략화한다(즉, 일부 페이세트(PAYr)가
Figure pct00081
를 포함하는지 여부를 결정하는 것을 간략화하고, k=0인 경우,
Figure pct00082
이고
Figure pct00083
이면, i는
Figure pct00084
를 다시 제출해야 한다)).
공식 페이세트. 모든 라운드(r)에 대하여, 알고랜드는, 라운드의 공식 페이세트인, (후술하는 방식으로) 단일 (비어있을 수 있는) 페이세트(PAYr)를 공개적으로 선택한다(본질적으로, PAYr은 "실제로" 발생한 라운드-r 지불을 나타낸다).
이상적 시스템(및 비트코인)에서와 같이, (1) 새로운 사용자(j)가 시스템에 진입하는 유일한 방식은, 주어진 라운드(r)의 공식 페이세트(PAYr)에 속하는 지불의 수취인이 되는 것이고, (2) PAYr은, 현재 라운드의 상태(Sr)로부터 다음 라운드의 상태(Sr+1)를 결정한다. 기호로는, 아래와 같다.
Figure pct00085
구체적으로,
1. 라운드(r+1)의 공개 키들의 세트(PKr + 1)는, PAYr의 지불에서 최초로 보이는 모든 수취인 키의 세트와 PKr의 통합으로 이루어지고,
2. 라운드(r+1)에서 사용자(i)가 소유하는 금액은
Figure pct00086
, 즉, i가 이전 라운드에서 소유한 금액(
Figure pct00087
이면 0) 및 PAYr의 지불에 따라 i에게 지불된 금액(
Figure pct00088
)의 합이다.
요약하면, 이상적인 시스템에서와 같이, 각 상태(Sr+1)는 아래와 같이 이전 지불 이력으로부터 추론될 수 있다.
Figure pct00089
2.4. 블록 및 증명된 블록
Algorand0에서, 라운드(r)에 대응하는 블록(Br)은, r 자체, 라운드(r)의 지불 세트(PAYr), 설명될 양(
Figure pct00090
), 및 이전 블록의 해시(H(Br-1))를 특정한다. 따라서, 고정된 블록(B0)서 시작하여, 아래와 같은 기존의 블록체인을 갖고 있다.
Figure pct00091
알고랜드에서, 블록의 인증성은 사실상 별도의 정보인 "블록 증명서"(
Figure pct00092
)에 의해 보증되며, 이러한 증명서는 Br을 증명된 블록(
Figure pct00093
)으로 되게 한다. 따라서, 마술 원장은 아래와 같은 증명된 블록들의 시퀀스에 의해 구현된다.
Figure pct00094
논의. 알 수 있는 바와 같이,
Figure pct00095
은,
Figure pct00096
에 대한 디지털 서명들의 세트, SVr의 대부분의 구성원들의 디지털 서명, 및 그러한 구성원들의 각각이 실제로 SVr에 속한다는 증거로 이루어진다. 물론, 증명서(
Figure pct00097
)를 블록 자체에 포함시킬 수 있지만, 이를 별도로 유지하는 것이 개념적으로 더 명확하다.
비트코인에서 각 블록은, 특별한 특성을 충족해야 하며, 즉, "크립토 퍼즐의 솔루션을 포함해야 하며", 이는 블록 생성을 연산 집약적으로 만들고 포크가 불가피하면서 드물지 않게 발생하게 한다. 대조적으로, 알고랜드의 블록체인은, 두 가지 주요 이점이 갖는데, 최소 연산으로 생성되며, 압도적으로 높은 확률로 포크되지 않는다는 점이다. 각 블록(Bi)은 블록체인에 진입하자마자 안전하게 최종적으로 된다.
2.5. 수용가능한 실패 확률
알고랜드의 보안을 분석하기 위해, 확률(F)을 특정하고, 이를 이용하여 무언가 잘못되었다는 것(예를 들어, 검증자 세트(SVr)가 정직한 다수를 갖지 않음)을 기꺼이 수용한다. 암호화 해시 함수(H)의 출력 길이의 경우와 마찬가지로, F도 파라미터이다. 그러나, 그 경우에서와 같이, F를 구체적인 값으로 설정하여, 알고랜드에서 실제로 충분한 보안과 충분한 효율성을 동시에 누릴 수 있다는 사실을 보다 직관적으로 파악할 수 있는 것이 유용하다. F는 원하는 대로 설정될 수 있는 파라미터임을 강조하기 위해, 제1 실시예 및 제2 실시예에서, 아래와 같이 각각 설정한다.
F = 10-12 및 F = 10-18.
논의. 10-12는 실제로 1조 중의 1 미만이며, 이러한 F 선택은 본 발명의 응용 분야에 적합한 것으로 고려한다는 점에 주목한다. 10-12는, 적대자가 정직한 사용자의 지불을 위조할 수 있는 확률이 아니라는 점을 강조하고자 한다. 모든 지불은 디지털 서명되므로, 적절한 디지털 서명이 사용되는 경우, 지불 위조 가능성은 10-12보다 훨씬 낮으며 실제로는 기본적으로 0이다. F 확률로 기꺼이 용납할 수 있는 좋지 않은 사건은 알고랜드의 블록체인이 포크되는 것이다. F 설정 및 1분 길이의 라운드에서는, 190만년에 (대략) 한 번처럼 드물게 알고랜드의 블록체인에서 포크가 발생할 것으로 예상된다는 점에 주목한다. 반대로, 비트코인에서는, 포크가 상당히 자주 발생한다.
요구가 많은 사람은, F를 더욱 작은 값으로 설정할 수 있다. 이를 위해, 제2 실시예에서는, F를 10-18로 설정하는 것을 고려한다. 블록이 1초마다 생성된다고 가정하면, 1018은 지금까지 즉 빅뱅부터 현재 시각까지 우주에서 소요된 예상 시간(초)이라는 점에 주목한다. 따라서, F=10-18인 경우, 블록이 1초로 생성되면, 우주의 나이에 걸쳐 한번의 포크를 볼 것으로 예상된다.
2.6. 적대적 모델
알고랜드는 매우 적대적 모델에서 안전하게 설계되었다. 이를 설명한다.
정직하고 악의적인 사용자. 사용자는, 자신의 모든 프로토콜 지침을 따르고 메시지를 완벽하게 송수신할 수 있으면 정직하다. 사용자는, 자신의 규정된 지침에서 임의로 벗어날 수 있다면 악의적이다(즉, 분산 연산의 관점에서 비잔틴이다).
대적자. 대적자는, 색상에 따라 개인화되는 효율적인 (기술적으로는 다항식-시간) 알고리즘으로서, (자신이 손상시킬 수 있는 사용자들의 수의 상한에만 영향을 받는) 자신이 원하는 어느 때라도 자신이 원하는 임의의 사용자를 악의적으로 만들 수 있다.
대적자는, 모든 악의적인 사용자를 완전히 제어하고 완벽하게 조율한다. 대적자는, 모든 메시지의 송수신을 포함하여 사용자를 대신하여 모든 행동을 취하며, 사용자를 규정된 지침에서 임의의 방식으로 벗어나게 할 수 있다. 또는 대적자는, 단순히 메시지를 송수신하는 손상된 사용자를 격리할 수 있다. 적대자가 사용자에게 취하게 하는 행동에 의해 i의 악의성이 발생할 수 있음에도 불구하고, 다른 어떠한 이도 사용자(i)가 악의적이라는 점을 자동으로 학습하지 못한다는 점을 분명히 한다.
그러나, 이러한 강력한 적대자는,
* 무한한 연산 능력이 없으며, 무시할만한 확률을 제외하고 정직한 사용자의 디지털 서명을 성공적으로 위조할 수 없고,
* 정직한 사용자들 간의 메시지 교환을 어떠한 식으로든 간섭할 수 없다.
또한, 정직한 사용자를 공격할 수 있는 적대자의 능력은 다음에 따르는 가정 중 하나에 의해 한정된다.
정직한 대다수의 돈. 정직한 대다수의 돈(HMM; Honest Majority of Money) 가정의 연속체, 즉, 각각의 음이 아닌 정수 k와 실수 h>1/2을 고려한다.
HHMk > h : 모든 라운드(r)의 정직한 사용자들은, 라운드(r-k)의 시스템에서 모든 돈의 h보다 큰 분율을 소유하였다.
논의. 모든 악의적인 사용자가 (단일 엔티티인 적대자에 의해 제어되는 것처럼) 자신의 행동을 완벽하게 조율한다고 가정하는 것은 다소 비관적인 가설이다. 너무 많은 개인들 간의 완벽한 조율은 달성하기 어렵다. 아마도, 조율은 악의적인 플레이어들의 별도의 그룹들 내에서만 발생한다. 그러나, 악의적인 사용자들이 누릴 수 있는 조율 수준에 대해 확신할 수 없으므로, 후회하는 것보다는 안전한 게 낫다.
적대자가 사용자를 비밀리에, 동적으로, 그리고 즉시 손상시킬 수 있다고 가정하는 것도 비관적이다. 결국, 현실적으로, 사용자의 작업을 완전히 제어하려면 시간이 걸린다.
예를 들어, HMMk > h 가정은, 예를 들어, (평균적으로) 라운드가 1분에 구현되면, 주어진 라운드에서의 대부분의 돈이 k=120인 경우에는 적어도 2시간 동안 k=10,000인 경우에는 적어도 1주일 동안 정직한 이들에게 남아있음을 의미한다.
HMM 가정 및 이전의 정직한 대다수의 연산력 가정은, 연산력이 돈으로 구입될 수 있으므로, 악의적인 사용자들이 대부분의 돈을 소유하면, 대부분의 연산력을 취득할 수 있다는 의미에서 관련된다는 점에 주목한다.
2.7. 통신 모델
메시지 전파, 즉, 유일한 통신 수단으로서 "피어-투-피어 가십"을 그려볼 수 있다(주석 5: 본질적으로, 비트코인에서와 같이, 사용자가 메시지(m)를 전파할 때, 처음으로 m을 수신하는 모든 능동 사용자(i)는, 자신이 m을 포워딩하는 적절하게 적은 수의 능동 사용자들인 자신의 "이웃들"로부터 확인응답을 수신할 수 있을 때까지 그 이웃들을 랜덤하게 독립적으로 선택한다. m의 전파는, 어떠한 사용자도 처음으로 m을 수신하지 않을 때 종단된다). 본질적으로, 정직한 사용자에 의해 전파되는 각 메시지(m)가 모든 정직한 사용자에게 m의 길이에 의존하는 주어진 시간량 내에 도달한다고 가정한다(m이 정직한 사용자들의 충분히 높은 퍼센트에 도달하면 충분하다).
3 전통적인 환경에서의 BA 프로토콜(BA*)
이미 강조한 것처럼, 비잔틴 합의는 알고랜드의 핵심 요소이다. 실제로, 이는 포크에 의한 영향을 받지 않는 이러한 BA 프로토콜을 사용하는 것이다. 그러나, 알고랜드는, 강력한 적대자를 막기 위해, 새로운 플레이어-교체가능성 제약을 충족하는 BA 프로토콜에 의존해야 한다. 또한, 알고랜드가 효율적으로 되도록, 이러한 BA 프로토콜은 매우 효율적이어야 한다.
BA 프로토콜은, 이상화된 통신 모델인 완전한 동기식 네트워크(SC 네트워크)를 위해 처음 규정되었다. 이러한 모델은 BA 프로토콜을 보다 간단하게 설계하고 분석할 수 있게 한다. 이에 따라, 이 섹션에서는, 플레이어 교체가능성 문제를 모두 무시하며 SC 네트워크를 위한 새로운 BA 프로토콜인 BA*를 도입한다. 프로토콜(BA*)은 별도의 가치를 제공한다. 실제로, 이것은 지금까지 알려진 SC 네트워크를 위한 가장 효율적인 암호화 BA 프로토콜이다.
이것을 알고랜드 프로토콜 내에서 사용하기 위해서는, BA*를 약간 수정하여 다른 통신 모델과 컨텍스트를 고려한다.
BA*가 동작하는 모델과 비잔틴 합의의 개념을 회상하는 것으로 시작한다.
3.1 동기 완전 네트워크 및 일치 적대자
SC 네트워크에서는, 각 적분 시각(r=1, 2,...)에 똑딱거리는 공통 클록이 있다.
각 짝수 시각 클릭(r)에서, 각 플레이어(i)는, 자신을 포함하여 각 플레이어(j)에게 단일 메시지(
Figure pct00098
)(비어 있는 메시지일 수 있음)를 즉각적으로 동시에 전송한다.
Figure pct00099
각각은, 전송자(i)의 아이덴티티와 함께 플레이어(j)에 의한 시각 클릭(r+1) 때 올바르게 수신된다.
다시 한 번, 통신 프로토콜에서, 플레이어는, 자신의 규정된 모든 지침을 따르면 정직하고, 그렇지 않은 경우에는 악의적이다. 모든 악의적인 플레이어는, 특히, 악의적인 플레이어에게 전달되는 모든 메시지를 즉시 수신하고 이러한 플레이어가 전송하는 메시지를 선택하는 적대자에 의해 완전히 제어되고 완벽하게 조율된다.
적대자는, 악의적 플레이어의 수의 상한(t)에만 적용될 수 있는, 자신이 원하는 임의의 정직한 사용자를 자신이 원하는 임의의 홀수 시각 클릭에서 즉시 악의적으로 만들 수 있다. 즉, 적대자는, 평소와 같이 전달되는, "정직한 사용자(i)에 의해 이미 전송된 메시지를 간섭할 수 없다".
또한, 적대자는, 각 짝수 라운드에서 현재 정직한 플레이어들이 전송하는 메시지를 즉시 볼 수 있고 이 정보를 즉시 사용하여 악의적인 플레이어들이 동시에 전송하는 메시지들을 선택하는 추가 기능을 갖는다.
3.2. 비잔틴 합의의 개념
비잔틴 합의의 개념은, 이진 경우에, 즉, 모든 초기값이 비트로 이루어지는 경우에 처음 도입되었을 수 있다. 그러나, 이것은 임의의 초기값들로 빠르게 확장되었다. BA 프로토콜에 의하면, 임의의 값 하나를 의미한다.
정의 3.1.
동기식 네트워크에서, P는 n-플레이어 프로토콜이라고 하고, 플레이어 세트는 플레이어들 간에 공통으로 알려져 있고, t는
Figure pct00100
인 것처럼 양수이다. P는, 플레이어들 중 최대 t가 악의적이고 모든 플레이어(i)가 초기값(
Figure pct00101
)으로 시작되는 실행에 있어서, 특별한 기호(
Figure pct00102
)(각각, V={0,1}에 대한 것임)를 포함하지 않는 값들(V)의 모든 세트에 대하여, 모든 정직한 플레이어(j)가 확률 1로 중단되면, 적어도
Figure pct00103
의 확률로 다음에 따르는 두 가지 조건을 충족하도록 값(
Figure pct00104
)을 출력하는, 건전성(
Figure pct00105
)을 갖는 임의의 값(각각 이진)(n, f)-비잔틴 합의 프로토콜이라고 한다.
1. 합의:
Figure pct00106
= 모든 정직한 플레이어(i)에 대한 out이도록
Figure pct00107
가 존재한다.
2. 일관성: 만약 모든 플레이어(i)에 대한 어떤 값(
Figure pct00108
)이 있다면, out = v이다.
out을 본 발명의 P의 출력이라고 하고, each out을 플레이어(i)의 출력이라고 한다.
3.3. BA 개념 #
본 발명의 BA 프로토콜에서, 플레이어는, 주어진 단계에서 주어진 메시지를 얼마나 많은 플레이어에게 전송하였는지를 카운트해야 한다. 이에 따라, 전송될 수 있는 가능한 각 값(v)에 대하여,
Figure pct00109
(또는, s가 명백한 경우 단순히
Figure pct00110
)는, 단계(s)에서 i가 플레이어(j)로부터 v를 수신한 그 플레이어의 수이다.
플레이어의 수가 n인 경우, 플레이어(i)는 각각의 플레이어(j)로부터 정확히 하나의 메시지를 수신한다는 점을 상기하면, 모든 i 및 s에 대해,
Figure pct00111
이다.
3.4. 새로운 이진 BA 프로토콜(BBA*)
이 섹션에서는, 새로운 이진 BA 프로토콜인 BBA*를 제시하며, 이는 플레이어들의 2/3을 초과하는 플레이어의 정직에 의존하며, 매우 빠르고, 악의적 플레이어들이 어떤 짓을 하든지, 그 메인 루프의 각 실행은 평범하게 실행될 뿐만 아니라 플레이어들이 확률(1/3)에 합의하게 한다.
BBA*에서, 각 플레이어는, 고유한 서명 특성을 충족하는 디지털 서명 체계의 자신의 고유한 공개 키를 갖고 있다. 이 프로토콜은 완전한 동기식 네트워크에서 실행되도록 되어 있으므로, 플레이어(i)가 자신의 각 메시지를 서명할 필요가 없다.
디지털 서명은, 단계(3)에서 충분히 일반적인 랜덤 비트를 생성하는 데 사용된다(알고랜드에서는, 디지털 서명이 다른 모든 메시지를 인증하는 데에도 사용된다).
이 프로토콜은, 최소한의 설정을 필요로 하는데, 즉, 플레이어의 키와는 무관한 공통 랜덤 스트링(r)을 필요로 한다(알고랜드에서는, r이 사실상 양(Qr)에 의해 대체된다).
프로토콜(BBA*)은, 플레이어들이 불린(Boolean) 값을 반복적으로 교환하는 3-단계 루프이며, 상이한 플레이어들이 상이한 시간에 이 루프를 종료할 수 있다. 플레이어(i)는, 소정의 단계에서 특수 값(0*) 또는 특수 값(1*)을 전파함으로써 이 루프를 종료하므로, 모든 플레이어가 향후 모든 단계에서 i로부터 각각 0과 1을 수신하는 "것처럼" 지시한다(대안으로, 다른 플레이어(i)로부터 플레이어(j)에 의해 수신된 최종 메시지는 비트 b라고 가정한다. 이어서, i로부터 어떠한 메시지도 수신하지 않는 임의의 단계에서, j는 i가 자신에게 비트 b를 전송한 것처럼 기능한다).
이 프로토콜은, 3-단계 루프가 몇 번 실행되었는지를 나타내는 카운터(
Figure pct00112
)를 사용한다. BBA*의 시작시,
Figure pct00113
이다(
Figure pct00114
를 글로벌 카운터라고 생각할 수 있지만, 이것은, 루프가 실행될 때마다 각각의 개별 플레이어에 의해 사실상 증가된다).
n≥3t+1이 있으며, 여기서 t는 악의적 플레이어들의 가능한 최대 수이다. 이진 스트링(x)은, (선행 0을 가질 수 있는) 이진 표현이 x인 정수로 식별되며, lsb(x)는 x의 최하위 비트를 나타낸다.
프로토콜 BBA*
(통신) 단계 1. [코인-고정-To-0 단계] 각 플레이어(i)가 bi를 전송한다.
Figure pct00115
이면, i가 bi = 0을 설정하고, 0*을 전송하고, outi = 0을 출력하고, 중단한다.
Figure pct00116
이면, i가 bi = 1을 설정한다.
그 외에는, i가 bi = 0을 설정한다.
(통신) 단계 2. [코인-고정- To-1 단계] 각 플레이어(i)가 bi를 전송한다.
Figure pct00117
이면, i가 bi = 1을 설정하고, 1*을 전송하고, outi = 1을 출력하고, 중단한다.
Figure pct00118
이면, i가 bi = 0을 설정한다.
그 외에는, i가 bi = 0을 설정한다.
(통신) 단계 3. [코인-실제로-뒤집힌 단계] 각 플레이어(i)가 bi
Figure pct00119
를 전송한다.
Figure pct00120
이면, i가 bi = 0을 설정한다.
Figure pct00121
이면, i가 bi = 1을 설정한다.
3.3. 그 외에는, Si={단계 3에서 i에게 적절한 메시지를 전송한 이
Figure pct00122
}라고 하고,
i가
Figure pct00123
를 설정하고,
Figure pct00124
를 1씩 증가시키고, 단계(1)로 복귀한다.
정리 3.1. n ≥ 3t + 1일 때마다, BBA*는 건전성(1)을 갖는 이진 (n,t)-BA 프로토콜이다.
정리 3.1의 증거는, https://people.csail.mit.edu/silvio/Selected-ScientificPapers/DistributedComputation/BYZANTINEAGREEMENTMADETRIVIAL.15 pdf에서 찾을 수 있다.
3.5 등급화된 콘센서스 및 프로토콜(GC)
임의의 값에 대하여, 비잔틴 합의보다 훨씬 약한 콘센서스의 개념을 상기하자.
정의 3.2. P를, 모든 플레이어의 세트가 공통적으로 알려져 있으며, 각 플레이어(i)가 임의의 초기값(
Figure pct00125
)을 비밀리에 알고 있는 프로토콜이라고 하자.
n 플레이어의 모든 실행에 있어서, 이들 중 최대 t가 악의적이면, 모든 정직한 플레이어(i)가 값-등급 쌍
Figure pct00126
의 출력을 중단하는 P를, (n,t)-등급화된 콘센서스 프로토콜이라고 하며, 여기서, 다음에 따르는 세 개의 조건을 충족하도록
Figure pct00127
이다.
1. 모든 정직한 플레이어(i, j)에 대하여,
Figure pct00128
2. 모든 정직한 플레이어(i, j)에 대하여,
Figure pct00129
3. 일부 값(v)에 대하여
Figure pct00130
이면, 모든 정직한 플레이어(i)에 대하여
Figure pct00131
이고
Figure pct00132
이다.
다음에 따르는 2-단계 프로토콜(GC)은 문헌에서의 등급화된 콘센서스 프로토콜이다. 섹션 4.1의 프로토콜(
Figure pct00133
)의 단계들과 일치시키기 위해, 2와 3을 GC의 단계들로 각각 명명한다(실제로,
Figure pct00134
의 제1 단계는 다른 것과 관련이 있으며, 즉, 새로운 블록을 제안하는 것이다).
프로토콜(GC)
단계 2. 각 플레이어(i)는
Figure pct00135
를 모든 플레이어에게 전송한다.
단계 3. 각 플레이어(i)는,
Figure pct00136
인 경우에만 스트링(x)을 모든 플레이어에게 전송한다.
출력 결정. 각 플레이어(i)는 다음과 같이 연산된 쌍(vi, gi)을 출력한다.
* 일부 x에 대하여,
Figure pct00137
이면, vi=x 및 gi=2이다.
* 일부 x에 대하여,
Figure pct00138
이면, vi=x 및 gi=1이다.
* 그 외에는, vi=
Figure pct00139
이고, gi=1이다.
프로토콜(GC)은, 문헌에서의 프로토콜이므로, 다음에 따르는 정리가 적용되는 것으로 알려져 있다.
정리 3.2.
Figure pct00140
이면, GC는 (n, t)-등급화된 브로드캐스트 프로토콜이다.
3.6. 프로토콜(BA*)
이제, 이진 BA 프로토콜(BBA*) 및 등급화된-콘센서스 프로토콜(GC)을 통해 임의-값 BA 프로토콜(BA*)을 설명한다. 아래에서, 각 플레이어(i)의 초기값은
Figure pct00141
이다.
프로토콜(BA*)
단계 1 및 2. 각 플레이어(i)는 쌍(vi, gi)을 연산하기 위해
Figure pct00142
입력시 GC를 실행한다.
단계 3,... 각 플레이어(i)는, 비트(outi)를 연산하기 위해 gi = 2이면 초기값 입력을 0으로 하고 그 외에는 1로 하여 BBA*를 실행한다.
출력 결정. 각 플레이어(i)는 outi = 0이면 vi를 출력하고, 그렇지 않으면
Figure pct00143
를 출력한다.
정리 3.3. n ≥ 3t + 1일 때마다, BA*는 건전성이 1인 (n, t)-BA 프로토콜이다.
증명. 먼저, 일관성을 증명한 다음 합의를 증명한다.
일관성 증거. 소정의 값(
Figure pct00144
)에 대해,
Figure pct00145
라고 가정한다. 이어서, 등급화된 콘센서스의 특성(3)에 의해, GC 실행 후에, 모든 정직한 플레이어가 (v, 2)를 출력한다. 이에 따라, 0은, BBA* 실행의 종료시 모든 정직한 플레이어의 초기 비트이다. 따라서, 이진 비잔틴 합의의 합의 특성에 의해, BA* 실행의 종료시, 모든 정직한 플레이어에 대해 outi = 0이다. 이는 BA*에서 각각의 정직한 플레이어(i)의 출력이 vi = v임을 의미한다.
Figure pct00146
합의 증거. BBA*는 이진 BA 프로토콜이므로,
(A) 모든 정직한 플레이어(i)에 대하여 outi = 1, 또는
(B) 모든 정직한 플레이어(i)에 대하여 outi = 0이다.
A의 경우, 모든 정직한 플레이어는 BA*에서
Figure pct00147
를 출력하므로, 합의가 유지된다. 이제 B의 경우를 고려한다. 이 경우에, BBA*의 실행시, 적어도 하나의 정직한 플레이어(i)의 초기 비트는 0이다(실제로, 모든 정직한 플레이어의 초기 비트가 1이면, BBA*의 일관성 특성에 의해, 모든 정직한 j에 대해 outj = 1이다). 이에 따라, GC의 실행 후, i는 소정의 값(v)에 대한 쌍(v, 2)을 출력한다. 따라서, 등급화된 콘센서스의 특성(1)에 의해, 모든 정직한 플레이어(j)에 대해 gj > 0이다. 이에 따라, 등급화된 콘센서스의 특성(2)에 의해, 모든 정직한 플레이어(j)에 대해 vj = v이다. 이것은, BA*의 종료시, 모든 정직한 플레이어(j)가 v를 출력한다는 것을 의미한다. 따라서, B의 경우에도 합의가 유지된다.
Figure pct00148
일관성과 합의가 모두 유지되므로, BA*는 임의-값 BA 프로토콜이다.
Figure pct00149
프로토콜(BA*)은, 가십 네트워크에서도 동작하며, 실제로, 알고랜드가 예상되는 매우 적대적인 모델에서 보안을 유지하는 데 중요한 플레이어 교체가능성 특성을 충족한다.
BBA*와 BA*의 플레이어 교체가능성. 이제, 피어-투-피어 가십을 통한 통신이 플레이어 교체가능성을 충족하는 네트워크에서 프로토콜들(BA* 및 BBA*)이 실행되도록 구성될 수 있는 이유에 대한 일부 직관을 제공하고자 한다. 구체적으로, 네트워크에 10M 명의 사용자가 있고, BBA*(또는 BA*)의 각 단계(x)는 비밀 암호화 추첨을 통해 랜덤하게 선택되었으며 이에 따라 단계(x)에서 메시지를 전송할 자격이 있음을 증명하는 자격증명이 있는 10,000명의 플레이어로 구성된 위원회에 의해 실행된다고 가정한다. 주어진 단계에서 전송되는 각 메시지는, 단계 번호를 특정하고, 그 전송자에 의해 디지털 서명되고, 그 전송자가 해당 단계에서 발언할 자격이 있음을 증명하는 자격증명을 포함한다고 가정한다.
우선, 정직한 플레이어들의 퍼센트(h)가 2/3보다 충분히 큰 경우(예를 들어, 75%), 압도적인 확률로, 각 단계에서 선택된 위원회는 필요로 하는 2/3의 정직한 대다수를 갖는다.
또한, 10,000개의 강력하게 랜덤으로 선택된 위원회가 각 단계에서 변경된다는 사실은, BBA* 또는 BA*의 올바른 동작을 방해하지 않는다. 실제로, 어느 프로토콜에서, 단계(s)의 플레이어(i)는 단계(s-1)에서 주어진 메시지(m)를 수신한 다수에만 반응한다. 우리는 가십 네트워크에 있으므로, 단계(s-1)에서 전송되는 모든 메시지는, 단계(s)에서 플레이하도록 선택된 사용자를 포함하는 모든 사용자에게 (이러한 직관의 목적을 위해 즉시) 도달한다. 또한 단계(s-1)에서 전송되는 모든 메시지는, 단계 번호를 특정하고, 전송자가 실제로 단계(s-1)에서 발언할 자격이 있었다는 자격증명을 포함하기 때문이다. 이에 따라, 사용자가 단계(s-1)에서도 선택되었는지 여부에 상관없이, 단계(s)에서 플레이하도록 선택된 사용자(i)는, 올바른 단계(s-1) 메시지를 수신하게 한 다수를 정확하게 카운트할 수 있다. 사용자가 지금까지 모든 단계를 플레이하였는지 여부는 전혀 중요하지 않다. 모든 사용자는, "동일한 보트에" 있으므로, 다른 사용자에 의해 쉽게 교체될 수 있다.
4. 알고랜드의 두 개의 실시예
논의된 바와 같이, 매우 높은 수준으로, 알고랜드의 라운드가 다음과 같이 이상적으로 진행된다. 먼저, 랜덤하게 선택된 사용자인 리더가 새로운 블록을 제안하고 배포한다(이 프로세스는, 초기에 소수의 잠재적 리더를 선택한 다음 시간의 적어도 양호한 분율로, 단일 공통 리더의 출현을 보장하는 것을 포함한다). 둘째, 랜덤하게 선택된 사용자들의 위원회가 선택되고, 리더에 의해 제안된 블록에 대한 비잔틴 합의에 도달한다(이 프로세스는, BA 프로토콜의 각 단계가 별도로 선택된 위원회에 의해 실행되는 것을 포함한다). 이어서, 합의된 블록은 위원회 구성원들의 주어진 임계값(TH)에 의해 디지털 서명된다. 이들 디지털 서명은, 어떤 것이 새로운 블록인지를 모든 사람이 확신하도록 전파된다(이는, 서명자의 자격증명을 순환시키고, 새로운 블록의 해시만을 인증하고, 일단 그 해시가 명확해지면 모든 사람이 블록 학습을 보장받는 것을 포함한다).
다음 두 개의 섹션에서는, 기본 알고랜드 설계의 두 개의 실시예이면서 대다수가 정직한 사용자(
Figure pct00150
)라는 적절한 가정하에 각각 기능하는
Figure pct00151
Figure pct00152
를 제시한다. 섹션 ??에서는, 대다수가 정직한 돈(
Figure pct00153
)이라는 가정하에 기능하도록 이러한 실시예들을 채택하는 방법을 보여준다.
Figure pct00154
은 단지 위원회 구성원들의 2/3가 넘는 구성원들이 정직한 것으로 고려한다. 또한
Figure pct00155
에서, 비잔틴 합의에 도달하기 위한 단계들의 수는 적절하게 높은 수로 제한되어 있으므로, 단계들의 고정된 수 내에서 압도적인 확률로 합의에 도달하는 것을 보장한다(그러나,
Figure pct00156
의 단계들보다 긴 시간을 잠재적으로 필요로 한다). 마지막 단계에 의해 아직 합의에 도달하지 않은 원격 예의 경우, 위원회는 항상 유효한 빈 블록에 합의한다.
Figure pct00157
는, 위원회의 정직한 구성원들의 수가 항상 고정된 임계값(tH) 이상인 것으로 고려한다(이는, 압도적인 확률로, 위원회 구성들의 적어도 2/3이 정직함을 보장한다). 또한,
Figure pct00158
는, 단계들의 임의의 수로 비잔틴 합의에 도달할 수 있게 한다(그러나,
Figure pct00159
보다 잠재적으로 짧은 시간이 걸린다).
통상의 기술자는 이러한 기본 실시예들의 많은 변형이 도출될 수 있음을 인식할 것이다. 특히,
Figure pct00160
가 주어진 경우, 단계들의 임의의 수로 비잔틴 합의에 도달할 수 있도록
Figure pct00161
를 쉽게 수정할 수 있다.
양측 실시예는 다음에 따르는 공통 핵심, 표기법, 개념, 및 파라미터를 공유한다.
4.1. 공통 핵심
목표. 이상적으로, 각 라운드(r)에 대해, 알고랜드는 다음에 따르는 특성들을 충족해야 한다.
1. 완벽한 정확성. 모든 정직한 사용자는 동일한 블록(Br)에 합의한다.
2. 완전성 1. 확률(1)로, 블록(Br)은 정직한 사용자에 의해 선택되었다(실제로, 악의적인 사용자는, 페이세트가 자신의 "친구들"의 지불만을 포함하는 블록을 항상 선택할 수 있다).
물론, 완벽한 정확성만 보장하는 것은 대수롭지 않은 것이며, 모든 사람은 항상 공식 페이세트(PAYr)를 비워두는 것으로 선택한다. 그러나, 이 경우, 시스템의 완전성은 0이다. 그러나, 악의적인 사용자가 존재하는 가운데 완벽한 정확성과 완전성(1)을 모두 보장하는 것은 쉽지 않다. 따라서, 알고랜드는 보다 현실적인 목표를 채택한다. 비공식적으로, h는 정직한 사용자들의 퍼센트(h > 2/3)를 나타낸다고 하면, 알고랜드의 목표는, 압도적인 확률로, h에 가까운 완벽한 정확성과 완전성을 보장하는 것이다.
완전성에 비해 정확성에 특권을 부여하는 것은 합리적인 선택으로 보이며, 한 라운드에서 처리되지 않은 지불은 다음 라운드에 처리될 수 있지만, 가능하다면 포크를 피해야 한다.
주도된 비잔틴 계약. 과도한 시간과 통신을 잠깐 무시함으로써, 완벽한 정확성을 다음과 같이 보장할 수 있다. 라운드(r)의 시작시, 각 사용자(i)는 자신의 후보 블록(
Figure pct00162
)을 제안한다. 이어서, 모든 사용자는 후보 블록들 중 하나의 후보 블록에 대해서만 비잔틴 합의에 도달한다. 이러한 도입에 따르면, 사용된 BA 프로토콜은, 2/3의 정직한 다수를 필요로 하며, 플레이어 교체가 가능하다. 각 단계는, 어떠한 내부 변수도 공유하지 않는 검증자들의 랜덤하게 선택된 작은 세트에 의해 실행될 수 있다.
그러나, 이 방안은 제대로 기능하지 못한다. 이는, 정직한 사용자들에 의해 제안되는 후보 블록들이 서로 완전히 다를 수 있기 때문이다. 실제로 각각의 정직한 사용자는 다른 지불을 본다. 따라서, 서로 다른 정직한 사용자들이 보는 일련의 지불이 많이 중복될 수 있지만, 모든 정직한 사용자들이 동일한 블록을 제안할 가능성은 낮다. 이에 따라, BA 프로토콜의 일관성 합의는 결코 구속력이 없으며, 단지 합의 하나만이 존재하므로, 합의는 항상 양호한 블록이 아닌
Figure pct00163
에 도달하였을 수 있다.
Figure pct00164
는 다음과 같이 이 문제점을 피한다. 먼저, 라운드(r)의 리더인
Figure pct00165
가 선택된다. 이어서,
Figure pct00166
는 자신의 고유한 후보 블록(
Figure pct00167
)을 전파한다. 마지막으로, 사용자들은 자신들이
Figure pct00168
로부터 실제로 수신하는 블록에 대한 합의에 도달한다.
Figure pct00169
가 정직할 때마다, 완전한 정확성과 완전성(1)이 모두 유지되기 때문에,
Figure pct00170
는,
Figure pct00171
가 h에 가까운 확률로 정직함을 보장한다.
리더 선택. 알고랜드에서, 제r 블록은 아래와 같은 형태로 된다.
Figure pct00172
도입부에서 이미 언급했듯이, 양(Qr - 1)은, 강력한 적대자에 의해 본질적으로 조작될 수 없도록 신중하게 구성된다(이 섹션의 뒷부분에서는, 이것이 왜 그런지에 대한 일부 직관을 제공한다). 라운드(r)의 시작시, 모든 사용자는, 모든 이전 라운드의 사용자들의 세트, 즉,
Figure pct00173
를 추론하게 되는 지금까지의 블록체인(
Figure pct00174
)을 알고 있다. 라운드(r)의 잠재적 리더는, 아래와 같이 되도록 사용자(i)이다.
Figure pct00175
.
설명해본다. 기본 디지털 서명 체계의 메시지 검색가능성 특성 때문에 양(Qr -1)이 블록(Br-1)으로부터 추론될 수 있다는 점에 주목한다. 또한, 기본 서명 체계는 고유성 특성을 충족한다. 따라서,
Figure pct00176
는 i 및 r에 고유하게 연관된 이진 스트링이다. 이에 따라, H는 랜덤 오라클이므로,
Figure pct00177
는 i 및 r에 고유하게 연관된 랜덤 256-비트 길이의 스트링이다.
Figure pct00178
앞에 있는 "." 기호는, 소수(이 경우, 이진)점이어서,
Figure pct00179
는 i와 r에 고유하게 연관된 0 내지 1의 랜덤 256-비트 숫자의 이진 확장이다. 따라서, ri가 p 이하일 확률은 본질적으로 p이다.
확률(p)은, 압도적인(즉, 1-F) 확률로, 적어도 하나의 잠재적 검증자가 정직하도록 선택된다(사실, p는 이러한 최소 확률로 선택된다).
i는 자신의 고유한 서명을 연산할 수 있는 유일한 사람이므로, 자신이 라운드(1)의 잠재적 검증자인지 여부를 자신만이 결정할 수 있다는 점에 주목한다. 그러나, 자신의 고유한 자격증명(
Figure pct00180
)을 공개함으로써, i는, 라운드(r)의 잠재적 검증자라는 것을 모든 이에게 증명할 수 있다.
리더(
Figure pct00181
)는, 해시 자격증명이 다른 모든 잠재적 리더(j)의 해시 자격증명보다 작은, 즉,
Figure pct00182
인 잠재적 리더로 정의된다.
악의적인
Figure pct00183
가 자신의 자격증명을 공개하지 않을 수 있으므로, 라운드(r)의 올바른 리더는 알려져 있지 않을 수 있으며, 있을 수 없는 타이를 제외하고,
Figure pct00184
가 실제로 라운드(r)의 유일한 리더라는 점에 주목한다.
마지막으로, 중요한 세부 사항을 밝히자면, 사용자(i)는, 적어도 k개 라운드 동안 시스템에 속한 경우에만 라운드(r)의 잠재적 리더 (이에 따라 리더)일 수 있다. 이는, Qr 및 향후의 모든 Q 양의 조작이 불가능함을 보장한다. 실제로, 잠재적 리더들 중 하나가 사실상 Qr을 결정한다.
검증자 선택. 라운드(r)의 각 단계(s>1)는 검증자들의 작은 세트(
Figure pct00185
)에 의해 실행된다. 다시, 각각의 검증자(
Figure pct00186
)는, r 앞의 k개 라운드에서 시스템에 이미 있는 사용자들 중에서 랜덤하게 선택되고, 다시 특수한 양(Qr - 1)을 통해 선택된다. 구체적으로,
Figure pct00187
는, 아래와 같은 경우에
Figure pct00188
의 검증자이다.
Figure pct00189
다시 한 번, i는, 자신이
Figure pct00190
에 속하는지 여부만을 알지만, 이 경우에는, 자신의 자격증명(
Figure pct00191
)을 표시함으로써 이를 증명할 수 있다. 검증자(
Figure pct00192
)는 라운드(r)의 단계(s)에서 메시지(
Figure pct00193
)를 전송하고, 이 메시지는,
Figure pct00194
가 적법한 단계-s 메시지라는 것을 다음 단계의 검증자들(f)이 인식할 수 있도록 자신의 자격증명(
Figure pct00195
)을 포함한다.
확률(p')은,
Figure pct00196
에서, #good를 정직한 사용자들의 수라고 하고 #bad를 악의적인 사용자들의 수라고 하고 압도적인 확률로 다음에 따르는 두 개의 조건이 적용되는 것을 보장하도록 선택된다.
Figure pct00197
실시예에 대하여
(1)
Figure pct00198
(2)
Figure pct00199
, 여기서 n은
Figure pct00200
의 예상 기수성이다.
Figure pct00201
실시예에 대하여
(1)
Figure pct00202
(2)
Figure pct00203
, 여기서 tH는 특정 임계값이다.
이들 조건은, 충분히 높은 확률로, (a) BA 프로토콜의 최종 단계에서, 새로운 블록(Br)을 디지털 서명하는 적어도 주어진 수의 정직한 플레이어들이 있고, (b) 라운드당 한 블록만이 필요한 수의 서명을 가질 수 있고, (c) 사용된 BA 프로토콜이 (각 단계에서) 필요한 2/3의 정직한 다수를 갖는다는 것을 의미한다.
명확하게 블록 생성. 라운드-r 리더(
Figure pct00204
)가 정직하다면, 해당 블록의 형태는 다음과 같다.
Figure pct00205
여기서, 페이세트(PAYr)는 최대이다(모든 페이세트가 정의상 전체적으로 유효함을 상기한다).
그렇지 않은 경우(즉,
Figure pct00206
가 악의적인 경우), Br은 다음에 따르는 두 개의 가능한 형태 중 하나를 갖다.
Figure pct00207
Figure pct00208
제1 형태에서, PAYr은, (반드시 최대는 아닌) 페이세트이며,
Figure pct00209
일 수 있으며, i는 라운드(r)의 잠재적 리더이다(그러나, i는 리더(
Figure pct00210
)가 아닐 수도 있다. 이는,
Figure pct00211
가 자신의 자격증명을 비밀로 유지하고 자신을 공개하지 않으면 실제로 발생할 수 있다).
제2 형태는, BA 프로토콜의 라운드-r 실행시, 모든 정직한 플레이어가 기본값을 출력할 때 발생하며, 이 값은 이 응용 분야에서 비어있는 블록(
Figure pct00212
)이다(정의에 의하면, BA 프로토콜의 가능한 출력은, 일반적으로
Figure pct00213
로 표시되는 기본값을 포함한다. 섹션 3.2를 참조한다).
페이세트는 양측 경우에서 비어있지만,
Figure pct00214
Figure pct00215
은, 구문적으로 상이한 블록들이며, 두 개의 상이한 상황, 예컨대, "BA 프로토콜의 실행시 모두 원활하게 진행되었다" 및 "BA 프로토콜에서 문제점이 발생하였으며, 기본값이 출력되었다"는 상황에서 각각 발생한다는 점에 주목한다.
이제, 블록(r)의 생성이
Figure pct00216
의 라운드(r)에서 어떻게 진행되는지를 직관적으로 설명한다. 제1 단계에서, 각각의 적격 플레이어, 즉, 각 플레이어(
Figure pct00217
)는 자신이 잠재적 리더인지를 확인한다. 이 경우, i는, 지금까지 본 모든 지불 및 현재 블록체인(
Figure pct00218
)을 사용하여, 최대 지불 세트(
Figure pct00219
)를 비밀리에 준비하고 후보 블록(Br =
Figure pct00220
)을 비밀리에 조립하도록 요청된다. 즉, 사용자는, 방금 준비된 페이세트를 제2 구성요소로서
Figure pct00221
내에 포함할 뿐만 아니라, 최종 블록(Br-1)의 제3 구성요소인 Qr -1의 자신의 고유한 서명도 제3 구성요소로서 포함한다. 마지막으로, 사용자는, (a) 자신의 후보 블록(
Figure pct00222
), (b) 자신의 후보 블록의 자신의 적절한 서명(즉,
Figure pct00223
의 해시의 자신의 서명), 및 (c) 자신이 실제로 라운드(r)의 잠재적 검증자임을 증명하는 자신의 고유한 자격증명(
Figure pct00224
)을 포함하는 자신의 라운드-r-단계-1 메시지(
Figure pct00225
)를 전파한다.
(정직한 i가 자신의 메시지(
Figure pct00226
)를 생성할 때까지, 적대자는 i가 잠재적인 검증자라는 단서를 갖고 있지 않는다는 점에 주목한다. 적대자는, 정직한 잠재적 리더들을 손상시키고자 한다면, 랜덤한 정직한 플레이어들도 손상시킬 수 있다. 그러나, 일단 그가
Figure pct00227
를 보게 되면, 이것은 i의 자격증명을 포함하고 있으므로, 적대자는 i를 알게 되어 i를 손상시킬 수 있지만, 바이러스처럼 전파되는
Figure pct00228
가 시스템의 모든 사용자에게 도달하는 것을 막을 수는 없다).
제2 단계에서, 선택된 각 검증자(
Figure pct00229
)는 라운드의 리더를 식별하려 한다. 특히, j는, 자신이 수신한 적절한 단계-1 메시지(
Figure pct00230
)에 포함된 단계-1 자격증명(
Figure pct00231
)을 취하며, 이들을 모두 해시하고, 즉,
Figure pct00232
를 연산하고, 해시가 구문적으로 최소인 자격증명(
Figure pct00233
)을 찾고,
Figure pct00234
를 라운드(r)의 리더로 간주한다.
고려되는 각 자격증명은 Qr -1의 디지털 서명이며,
Figure pct00235
는 i 및 Qr-1에 의해 고유하게 결정되고, H는 랜덤 오라클이므로, 각
Figure pct00236
는 라운드(r)의 각각의 잠재적 리더(i)에 대하여 고유한 랜덤 256비트 길이의 스트링이라는 점을 상기해본다.
이것으로부터, 256-비트 스트링(Qr - 1)이 자체적으로 랜덤하게 독립적으로 선택된다면, 라운드(r)의 모든 잠재적 리더의 해시된 자격증명도 선택될 것이라고 결론 내릴 수 있다. 실제로, 모든 잠재적 리더는 잘 정의되어 있으며, 따라서 이들의 자격증명도 (실제로 연산되었는지 여부에 상관없이) 잘 정의되어 있다. 또한, 라운드(r)의 잠재적 리더들의 세트는 라운드(r-k)의 사용자들의 랜덤한 서브세트이며, 정직한 잠재적 리더(i)는 항상 i의 자격증명을 포함하는 메시지(
Figure pct00237
)를 올바르게 구성하고 전파한다. 따라서, 정직한 사용자들의 퍼센트가 h이므로, 악의적인 잠재적 리더들이 무엇을 하든지 간에(예를 들어, 자신의 자격증명을 공개하거나 숨기든), 최소 해시된 잠재적인-리더 자격증명은, 모든 이에 의해 라운드(r)의 리더(
Figure pct00238
)라고 반드시 식별되는 정직한 사용자에게 속한다. 이에 따라, 256-비트 스트링(Qr - 1)이 자체적으로 랜덤하게 독립적으로 선택되었다면, 정확하게 h의 확률로, (a) 리더(
Figure pct00239
)는 정직하고, (b) 모든 정직한 단계-2 검증자(j)에 대해서는
Figure pct00240
이다.
실제로, 해시된 자격증명은, 물론, 랜덤하게 선택되지만, 랜덤하게 독립적으로 선택되지 않은 Qr -1에 의존한다. 그러나, 신중한 분석을 통해, 라운드의 리더가 h에 충분히 근접한 확률 h', 즉,
Figure pct00241
로 정직함을 보장하도록 Qr -1이 충분히 조작불가능함을 보장한다. 예를 들어, h = 80%이면, h' > .7424이다.
라운드의 리더를 식별하였으므로(리더(
Figure pct00242
)가 정직할 때 올바르게 수행함), 단계-2 검증자의 작업은, 리더의 블록이라고 여기는 것을 초기값으로서 사용하여 BA* 실행을 시작하는 것이다. 실제로, 요구되는 통신량을 최소화하기 위해, 검증자(
Figure pct00243
)는, 리더, 그 블록의 해시, 즉,
Figure pct00244
를 제외하고, 자신이
Figure pct00245
(j가 리더라고 여기는 사용자)로부터 실제로 수신한 블록(Bj)을, 비잔틴 프로토콜에 대한 자신의 입력값(
Figure pct00246
)으로서 사용하지 않는다. 따라서, BA 프로토콜의 종료시, 최종 단계의 검증자들은, 원하는 라운드-r 블록(Br)을 연산하지 않고, H(Br)를 연산(인증 및 전파)한다. 이에 따라, H(Br)는 BA 프로토콜의 최종 단계의 충분히 많은 검증자에 의해 디지털 서명되므로, 시스템의 사용자들은, H(Br)가 새로운 블록의 해시임을 인식할 것이다. 그러나, 사용자들은, 또한, 블록(Br) 자체를 검색(또는 실행이 비동기식이기 때문에, 대기)해야 하며, 적대자의 행동에 관계없이, 프로토콜이 실제로 이용가능함을 보장한다.
비동기성 및 타이밍.
Figure pct00247
Figure pct00248
는 상당한 정도의 비동기성을 갖는다. 이는, 적대자가 전파되는 메시지의 전달을 예약하는 데 큰 자유를 갖기 때문이다. 또한, 라운드의 총 단계 수에 제한이 있는지 여부에 상관없이, 실제로 수행된 단계의 수에 따라 변동이 존재한다.
사용자(i)는
Figure pct00249
의 자격증명을 학습하게 되자마자, Qr -1을 연산하고, 라운드(r)에 대한 작업을 시작하여, 자신이 잠재적 리더인지 또는 라운드(r)의 일부 단계(s)에서의 검증자인지를 확인한다.
논의된 비동기성에 비추어 볼 때 i가 단계(s)에서 행동하고 있다고 가정하면, i는 자신이 행동하기 전에 충분한 정보를 가고 있음을 보장하도록 다양한 전략에 의존한다.
예를 들어, 사용자는, (
Figure pct00250
에서와 같이) 이전 단계의 검증자들로부터 최소한 주어진 수의 메시지를 수신하기를 기다릴 수 있거나, (
Figure pct00251
에서와 같이) 이전 단계의 충분히 많은 검증자의 메시지를 수신하는 것을 보장하도록 충분한 시간을 기다릴 수 있다.
시드(Qr) 및 룩-백 파라미터(k). 이상적으로, 양(Qr)은 랜덤이며 독립적이어야 하지만, 적대자에 의해 충분히 조작될 수 없는 것으로 충분하다는 점을 상기해본다.
언뜻 보면, H(PAYr - 1)와 일치시키도록 Qr -1을 선택할 수 있다. 그러나, 기본 분석에 따르면, 악의적인 사용자들이 이 선택 메커니즘을 활용할 수 있다는 점이 밝혀졌다(주석 6: 라운드(r-1)의 시작에 있다. 따라서,
Figure pct00252
는 공개적으로 알려져 있으며, 적대자는 자신이 제어할 수 있는 잠재적 리더가 누구인지를 개인적으로 알고 있다. 적대자가 사용자들의 10%를 제어하고, 매우 높은 확률로, 악의적인 사용자(w)가 라운드(r-1)의 잠재적 리더라고 가정한다. 즉,
Figure pct00253
가 너무 작아서 정직한 잠재적 리더가 실제로 라운드(r-1)의 리더일 가능성이 높다고 가정한다. (비밀 암호화 추첨 메커니즘을 통해 잠재적 리더를 선택하므로, 적대자는 정직한 잠재적 리더가 누구인지 모른다는 점을 상기해본다). 그러므로, 적대자는, 자신이 원하는 페이세트(PAY')를 선택하는 선망의 위치에 있고, 이것을 라운드(r-1)의 공식 페이세트로 되게 한다. 그러나, 사용자는 더 많은 일을 할 수 있다. 사용자는, 또한, 높은 확률로, 자신의 악의적인 사용자들 중 한 명이 또한 라운드(r)의 리더이어서, PAYr가 무엇인지를 자유롭게 선택할 수 있음을 보장할 수 있다(*). (그리고 등등. 적어도 오랫동안, 즉, 이러한 고 확률 이벤트가 실제로 발생하는 한 그러하다). (*)를 보장하기 위해, 적대자는 다음과 같이 행동한다. PAY'를 적대자가 라운드(r-1)에 대해 선호하는 페이세트라고 하자. 그런 다음, 사용자는, H(PAY')를 연산하고, 이미 일부 악의적 플레이어(z)에 대해,
Figure pct00254
가 특히 작은 지를, 즉, 매우 높은 확률로 z가 라운드(r)의 리더가 될 정도로 작은지를 확인한다. 이 경우, 사용자는 w에게 후보 블록을
Figure pct00255
이도록 선택할 것을 지시한다. 아니면, 그는, 일부 악의적인 사용자(z)에 대하여(또는 심지어 일부 고정된 사용자(z)에 대하여)
Figure pct00256
가 역시 매우 작아질 때까지, 두 명의 다른 악의적인 사용자(x와 y)가 새로운 지불(
Figure pct00257
)을 서로에 대하여 계속 생성하게 한다. 이 실험은 매우 빨리 중단될 것이다. 그리고, 그렇게 되는 경우, 적대자는 w에게 후보 블록(
Figure pct00258
)을 제안하도록 요청한다). 일부 추가 노력은, 전통적인 블록 양을 기반으로 한 수많은 다른 대안이, 악의적 리더들이 매우 빈번함을 확실히 하도록 적대자에 의해 쉽게 이용될 수 있음을 보여준다. 이것이 적대자에 의해 조작될 수 없음을 증명할 수 있도록 우리의 새로운 양(Qr)을 특정하게 유도적으로 정의한다. 즉,
Br이 비어있는 블록이 아니면
Figure pct00259
이고, 그 외에는
Figure pct00260
이다.
Qr의 이러한 구조가 기능하는 이유의 직관은 다음과 같다. Qr -1이 랜덤하게 독립적으로 선택되는 순간을 가정한다. 그렇다면, Qr도 마찬가지인가?
Figure pct00261
가 정직할 때, 답은 (대략적으로 말하자면) 예이다. 그 이유는,
Figure pct00262
이 랜덤 함수이기 때문이다. 그러나
Figure pct00263
가 악의적인 경우, Qr은 더 이상 Qr -1
Figure pct00264
로부터 분명하게 정의되지 않는다. Qr에 대해 적어도 두 개의 개별 값이 있다. 하나는 계속
Figure pct00265
이고, 다른 하나는
Figure pct00266
이다. 먼저, 두 번째 선택은 다소 임의적이지만, 두 번째 선택은 절대적으로 필수라고 먼저 주장해 본다. 그 이유는, 악의적
Figure pct00267
가 항상 두 번째 단계의 정직한 검증자들에 의해 완전히 상이한 후보 블록들을 수신할 수 있기 때문이다(주석 7: 예를 들어, "두 번째 단계의 시간이 만료될 때"를 간단하게(그렇지만 극단적으로) 유지하기 위해,
Figure pct00268
는 각 사용자(i)에게 다른 후보 블록(Bi)을 이메일로 직접 전송할 수 있다. 이러한 방식으로, 단계-2 검증자들이 누구이든지 간에, 검증자들은 완전히 상이한 블록들을 수신하였을 수 있다). 일단 이 경우라면, 라운드(r)의 BA 프로토콜을 통해 최종적으로 합의된 블록이 기본 블록이 되며 이에 따라 Qr -1의 디지털 서명을 포함하지 않음을 보장하는 것은 쉽다. 그러나 시스템은 계속되어야 하며, 이를 위해서는, 라운드(r)의 리더가 필요하다. 이 리더가 자동적으로 공개적으로 선택되면, 적대자는 그를 대수롭지 않게 손상시킬 것이다. 이것이 동일한 프로세스를 통해 이전 Qr -1에 의해 선택되면,
Figure pct00269
은 다시 라운드(r+1)에서의 리더로 된다. 구체적으로, 새로운 Q-양, 즉
Figure pct00270
에 적용되는 동일한 비밀 암호화 추첨 메커니즘을 사용하도록 제안한다. 이 양을 H의 출력으로 되게 함으로써, 출력이 랜덤임을 보장하고, r을 H의 제2 입력으로서 포함하면서 H의 다른 모든 사용이 단일 입력 또는 적어도 세 개의 입력을 갖게 함으로써, 이러한 Qr이 독립적으로 선택되는 것을 "보장"한다. 다시 한번, 대체 Qr의 특정한 선택은 중요하지 않으며, 중요한 것은,
Figure pct00271
가 Qr에 대한 두 개의 선택을 갖고, 이에 따라 다른 악의적인 사용자가 다음 리더로 될 가능성을 두 배로 할 수 있다는 점이다.
Qr에 대한 옵션은 악의적인 사용자(
Figure pct00272
)를 제어하는 적대자에게 더 많을 수 있다. 예를 들어, x, y 및 z가 라운드(r)의 잠재적인 3명의 악의적 리더라고 하고 이때
Figure pct00273
이면,
Figure pct00274
는 매우 작다. 즉, 너무 작아서,
Figure pct00275
가 모든 정직한 잠재적 리더의 해시 자격증명보다 작을 가능성이 높다. 이어서, x에게 자신의 자격증명을 숨기도록 요청하면, 적대자는 y를 라운드(r-1)의 리더로 되게 할 가능성이 높다. 이것은 그가 Qr에 대한 다른 옵션, 즉
Figure pct00276
을 가지고 있음을 의미한다. 마찬가지로, 적대자는, z가 라운드(r-1)의 리더가 되게 하고 Qr에 대한 또 다른 옵션, 즉,
Figure pct00277
를 얻도록 x와 y 모두에게 해당 자격증명의 보류를 요청할 수 있다.
그러나, 물론, 적대자가 정직한 잠재적 사용자들의 디지털 서명의 해시를 예측할 수 없기 때문에, 이러한 옵션 및 기타 옵션의 각각은, 0이 아닌 실패 확률을 갖는다.
신중한 마르코프-체인형 분석에 따르면, 적대자가 라운드(r-1)에서 어떤 옵션을 선택하더라도, 적대자가 시스템에서 새로운 사용자를 주입할 수 없다면, 정직한 사용자가 라운드(r+40)의 리더로 될 확률을 h보다 훨씬 낮게 감소시킬 수 없다. 이것이 라운드(r)의 잠재적 리더들이 라운드(r-k)에 이미 존재하고 있는 사용자들로 되는 것을 요구하는 이유이다. 이것은, 라운드(r-k)에서, 적대자가 정직한 사용자가 라운드(r)의 리더로 되는 확률을 크게 변경할 수 없도록 하는 방식이다. 실제로, 라운드(r-k 내지 r)에서 시스템에 어떠한 사용자들을 추가할 수 있는지에 관계없이, 이들은 라운드(r)의 잠재적 리더들(및 더욱 강한 이유로 리더)로 될 수 없다. 따라서, 룩-백 파라미터(k)는 궁극적으로 보안 파라미터이다(섹션 ??에서 살펴 보겠지만, 이것은 일종의 "편의 파라미터"일 수도 있다).
임시 키. 무시할만한 확률을 제외하고는 프로토콜의 실행이 포크를 생성할 수 없지만, 적대자는, 적법한 블록(r)이 생성된 후 제r 블록에서 포크를 생성할 수 있다.
대략적으로 말하자면, 일단 Br이 생성되었다면, 적대자는 라운드(r)의 각 단계의 검증자가 누구인지를 학습하였다. 따라서, 적대자는, 이들 모두를 손상시킬 수 있고 이들에게 새로운 블록(
Figure pct00278
)을 증명하도록 강요할 수 있다. 이러한 가짜 블록은 합법적 블록 후에만 전파될 수 있으므로, 주의를 기울인 사용자들은 속지 않을 것이다(주석 8: 주요 TV 네트워크의 뉴스 앵커를 손상시키고, 오늘 클린턴 장관이 마지막 대통령 선거에서 이겼음을 보여주는 뉴스릴을 제작 및 방송하는 것을 고려해 본다. 우리 대부분은 이를 사기로 인식할 것이다. 그러나, 혼란한 상황을 벗어난 누군가는 속을 수도 있다). 그럼에도 불구하고,
Figure pct00279
는 구문상 정확하고, 그 제조를 방지하고자 한다.
우리는 새로운 규칙에 의해 그렇게 한다. 본질적으로, 라운드(r)의 단계(s)의 검증자 세트(
Figure pct00280
)의 구성원들은, 임시 공개 키(
Figure pct00281
)를 사용하여 메시지를 디지털 서명한다. 이들 키는 일회용이며, 이들의 해당 비밀 키들(
Figure pct00282
)은 일단 사용되면 폐기된다. 이러한 방식으로, 검증자가 나중에 손상되면, 적대자는 원래 서명하지 않은 어떠한 것도 서명하도록 검증자에게 강요할 수 없다.
당연히, 적대자가 새로운 키(
Figure pct00283
)를 연산하는 것이 불가능하고 이것이 단계(s)에서 사용할 검증자(
Figure pct00284
)의 올바른 임시 키라고 정직한 사용자를 확신시키는 것은 불가능하다는 점을 보장해야 한다.
4.2. 표기법, 개념, 및 파라미터의 공통 요약
표기법
* r ≥ 0: 현재 라운드 수.
* s ≥ 1: 라운드(r)의 현재 단계 번호
* Br: 라운드(r)에서 생성된 블록
* PKr: 라운드(r-1)의 종료와 라운드(r)의 시작에 의한 공개 키들의 세트.
* Sr: 라운드(r-1)의 종료 및 라운드(r)의 시작까지의 시스템 상태(주석 9: 동기식이 아닌 시스템에서, "라운드(r-1)의 종료"와 "라운드(r)의 시작"이라는 개념은 신중하게 정의되어야 한다. 수학적으로, PKr 및 Sr은 초기 상태(S0) 및 블록(
Figure pct00285
)으로부터 연산된다.
* PAYr: Br에 포함된 페이세트
*
Figure pct00286
: 라운드-r 리더.
Figure pct00287
은 라운드(r)의 페이세트(PAYr)를 선택한다(그리고 다음 Qr을 결정한다).
* Qr: 라운드(r)의 시드로서, 라운드(r)의 종료시 생성되고 라운드(r+1)에 대한 검증자를 선택하는 데 사용되는 양(즉, 이진 스트링). Qr은 블록들의 페이세트들과는 독립적이며
Figure pct00288
에 의해 조작될 수 없다.
* SVr,s: 라운드(r)의 단계(s)에 대하여 선택된 검증자들의 세트
* SVr: 라운드(r)에 대해 선택된 검증자들의 세트.
Figure pct00289
.
* MSVr,s 및 HSVr,s: 각각,
Figure pct00290
Figure pct00291
의 악의적인 검증자들의 세트 및 정직한 검증자들의 세트
*
Figure pct00292
Figure pct00293
: 각각, 각 SVr,1에 있는 잠재적 리더들의 예상 수 및 s>1에 대하여 각 SVr,s에 있는 검증자들의 예상 수
n1 << n, 이것은, SVr,1에서 적어도 하나의 정직한 구성원이 필요하지만, s>1에 대하여 각 SVr,s에 있는 적어도 정직한 구성원들의 대다수에 해당함에 주목한다.
*
Figure pct00294
: 2/3보다 큰 상수. h는 시스템의 정직 비이다. 즉, 사용된 가정에 따라 정직한 사용자 또는 정직한 돈의 분율은 각 PKr에서 적어도 h이다.
* H: 임의의 오라클로서 모델링된 암호화 해시 함수
*
Figure pct00295
: H의 출력과 길이가 같은 특수 스트링
*
Figure pct00296
: 허용 오차 확률을 특정하는 파라미터. 확률(≤F)은 "무시할 수 있는" 것으로 간주되고, 확률(≥1-F)은 "압도적인" 것으로 간주된다.
*
Figure pct00297
: 라운드(r)의 리더(
Figure pct00298
)가 정직할 확률. 이상적으로는, Ph = h이다. 적대자가 존재하는 경우, ph의 값은 분석에서 결정된다.
*
Figure pct00299
: 룩-백 파라미터. 즉, 라운드(r-k)는, 라운드(r)에 대한 검증자들이 선택되는 곳으로서, 즉,
Figure pct00300
이다(주석 10: 엄밀히 말하면, "r-k"는 "max{0, r-k}"이어야 한다).
*
Figure pct00301
: 라운드(r)의 제1 단계에 대하여, 라운드(r-k)의 사용자는
Figure pct00302
의 확률로 SVr,1에 있도록 선택된다.
*
Figure pct00303
: 라운드(r)의 각 단계(s>1)에 대하여, 라운드(r-k)의 사용자는
Figure pct00304
의 확률로 SVr,s에 있도록 선택된다.
* CERTr: Br에 대한 증명서. 이것은 라운드(r)의 적절한 검증자들로부터의 H(Br)의 tH 서명들의 세트이다.
*
Figure pct00305
는 증명된 블록이다.
사용자(i)는, 증명된 블록의 양측 부분을 보유(및 성공적으로 검증)하면 Br을 알고 있다. 상이한 사용자들이 보는 CERTr은 다를 수 있다는 점에 주목한다.
*
Figure pct00306
: 사용자(i)가 Br을 알고 있는 (현지) 시간이다. 알고랜드 프로토콜에서, 각 사용자는 자신의 고유한 시계를 갖고 있다. 다른 사용자들의 시계는 동기화될 필요가 없지만, 속도는 동일해야 한다. 분석만을 목적으로 할 때, 기준 시계를 고려하여 기준 시계에 대한 플레이어들의 관련 시간을 측정한다.
*
Figure pct00307
Figure pct00308
: 각각, 사용자(i)가 라운드(r)의 단계(s)의 실행을 시작하고 종료하는 (현지) 시간.
*
Figure pct00309
및 λ: 본질적으로, 각각, 단계(1)를 실행하는 데 필요한 시간 및 알고랜드 프로토콜의 다른 임의의 단계에 필요한 시간에 대한 상한.
파라미터(
Figure pct00310
)는 단일 1MB 블록을 전파하기 위한 시간을 상한으로 한다.
파라미터(λ)는 단계(s>1)에서 검증자당 하나의 작은 메시지를 전파하기 위한 시간을 상한으로 한다.
Λ ≤ 4λ라고 가정한다.
개념
* 검증자 선택
각 라운드(r) 및 단계(s>1)에 대하여,
Figure pct00311
이다. 각 사용자(
Figure pct00312
)는, 자신의 장기간 키를 사용하여 서명을 개인적으로 연산하고,
Figure pct00313
인지 여부를 결정한다.
Figure pct00314
이면,
Figure pct00315
은 i의 (r, s) 자격증명이며,
Figure pct00316
에 의해 간단하게 표시된다.
라운드(r)의 제1 단계에서,
Figure pct00317
Figure pct00318
도 비슷하게 정의되며, 이때, p는 p1로 교체된다.
Figure pct00319
의 검증자는 잠재적 리더이다.
* 리더 선택.
사용자(
Figure pct00320
)는, 모든 잠재적 리더(
Figure pct00321
)에 대해
Figure pct00322
인 경우
Figure pct00323
에 의해 표시되는 라운드(r)의 리더이다. 두 명의 플레이어의 자격증명의 해시들이 비교될 때마다, 가능성이 거의 없는 타이의 경우, 프로토콜은 잠재적 리더들의 (장기간 공개 키들)에 따라 구문적으로 타이들을 끊는다.
정의에 따르면, 플레이어(
Figure pct00324
)의 자격증명의 해시값도 PKr -k의 모든 사용자 중에서 가장 작다. 잠재적 리더는, 다른 잠재적 리더의 자격증명을 보지 않고는 자신이 리더인지 아닌지를 개인적으로 결정할 수 없다는 점에 주목한다.
해시값들은 랜덤하게 균일하므로, SVr,1이 비어 있지 않은 경우,
Figure pct00325
는 항상 존재하며 적어도 h의 확률로 정직하다. 파라미터(n1)는, 각각의 SVr,1이 압도적인 확률로 비어 있지 않음을 보장하도록 충분히 크다.
* 블록 구조.
비어 있지 않은 블록은
Figure pct00326
의 형태이며, 비어 있는 블록은
Figure pct00327
의 형태이다.
비어 있지 않은 블록은, 이 라운드에서 지불이 이루어지지 않거나 리더가 악의적인 경우 빈 페이세트(PAYr)를 여전히 포함할 수 있다는 점에 주목한다. 그러나, 비어 있지 않은 블록은,
Figure pct00328
의 아이덴티티,
Figure pct00329
의 자격증명(
Figure pct00330
), 및
Figure pct00331
가 모두 적시에 공개되었음을 의미한다. 이 프로토콜은, 리더가 정직하면 블록이 압도적인 확률로 비어 있지 않음을 보장한다.
* 시드(Qr).
Br이 비어 있지 않으면,
Figure pct00332
이고, 그렇지 않으면
Figure pct00333
이다.
파라미터
* 다양한 파라미터 간의 관계.
- 라운드(r)의 검증자들과 잠재적 리더들은 PKr -k의 사용자들로부터 선택되며, 여기서, k는, 적대자가 F보다 양호한 확률로 라운드(r-k-1)에서 Qr -1을 다시 예측할 수 없도록 선택되며, 그 외에는, 라운드(r-k)에 대하여 악의적인 사용자들을 도입할 수 있고, 이들 모두는 라운드(r)의 잠재적 리더들/검증자들이며, SVr,s의 악의적 리더 또는 악의적 다수가 원하는 일부 단계(s)에 대하여 이러한 리더 또는 다수를 갖는데 성공한다.
- 각 라운드(r)의 단계(1)에 대해, n1은 압도적인 확률(
Figure pct00334
)을 갖도록 선택된다.
* 중요한 파라미터의 선택 예.
- H의 출력은 256-비트 길이이다.
- h = 80%, n1 = 35.
- Λ = 1분 및 λ = 15초
* 프로토콜의 초기화.
프로토콜은 시각 0에서 r=0으로 시작한다. "B-1" 또는 "CERT-1"이 없으므로, 구문적으로, B-1은, 제3 구성요소가 Q-1을 특정하는 공개 파라미터이며, 모든 사용자는 시각 0에서 B-1을 알고 있다.
5.
Figure pct00335
이 섹션에서는, 다음에 따르는 가정 하에서 동작하는
Figure pct00336
의 버전을 구성한다.
다수의 정직한 사용자 가정: 각 PKr의 사용자들 중 2/3가 넘는 사용자들이 정직하다.
섹션 ??에서는, 위 가정을 바람직한 다수의 정직한 돈 가정으로 대체하는 방법을 나타낸다.
5.1. 추가 표기법 및 파라미터
표기법
*
Figure pct00337
: 이진 BA 프로토콜의 단계들의 최대 수, 3의 배수임.
*
Figure pct00338
: 각 시행이
Figure pct00339
의 확률로 1이고 최대 m/3개의 시행이 있을 때 1을 보는 데 필요한 베르누이 시행 횟수를 나타내는 랜덤 변수이다. 모든 시도가 실패하면,
Figure pct00340
이다.
Figure pct00341
는 블록(Br)을 생성하는 데 필요한 시간을 상한으로 하는 데 사용된다.
*
Figure pct00342
: 프로토콜의 종료 조건에 필요한 서명의 수
* CERTr: Br에 대한 증명서. 이것은 라운드(r)의 적절한 검증자들로부터의 H(Br)의 tH 서명들의 세트이다.
파라미터
* 다양한 파라미터 간의 관계
- 라운드(r)의 각 단계(s>1)에 대하여, n은, 압도적인 확률로,
Figure pct00343
Figure pct00344
이도록 선택된다.
h 값이 1에 가까울수록, n은 작아야 한다. 특히, 원하는 조건이 압도적인 확률로 유지되는 것을 보장하도록 체르노프 바운드(의 변형)를 사용한다.
- m은, 압도적인 확률로 Lr < m/3이 되도록 선택된다.
* 중요한 파라미터들의 선택 예
- F = 10-12
-
Figure pct00345
및 m = 180
5.2.
Figure pct00346
에서의 임시 키 구현
이미 언급했듯이, 검증자(
Figure pct00347
)는, 사용 후 즉시 삭제하는 임시 비밀 키(
Figure pct00348
)를 사용하여 임시 공개 키(
Figure pct00349
)에 대해 라운드(r)에서 단계(s)의 자신의 메시지(
Figure pct00350
)를 디지털 서명하고자 한다. 따라서,
Figure pct00351
가 모든 사용자가 i의 서명(
Figure pct00352
)을 검증하는 데 실제로 사용되는 키임을 확인할 수 있는 것을 보장하는 효율적인 방법이 필요하다. 이를, (알고 있는 한) 아이덴티티 기반 서명 체계의 새로운 사용에 의해 행한다.
높은 수준으로, 이러한 체계에서, 중앙 기관(A)은 공개 마스터 키(PMK) 및 대응하는 비밀 마스터 키(SMK)를 생성한다. 플레이어(U)의 아이덴티티(U)가 주어지면, A는, 공개 키(U)에 비해 비밀 서명 키(skU)를 SMK를 통해 연산하고, skU를 U에 개인적으로 제공한다(사실, 아이덴티티 기반 디지털 서명 체계에서, 사용자(U)의 공개 키는 U 자체이다). 이러한 방식으로, A가 디지털 서명을 생성할 수 있도록 자신이 원하는 사용자의 비밀 키를 연산한 후 SMK를 파괴하고 어떠한 연산된 비밀 키도 유지하지 않으면, U는 공개 키(U)와 관련하여 메시지를 디지털 서명할 수 있는 유일한 사람이다. 따라서, "U의 이름"을 아는 누구라도, U의 공개 키를 자동으로 알고 있으므로, (공개 마스터 키(PMK)도 사용할 수 있어서) U의 서명을 검증할 수 있다.
본원에서, 기관(A)은 사용자(i)이고, 가능한 모든 사용자들(U)의 세트는, 예를 들어,
Figure pct00353
에서 라운드-단계 쌍(r, s)과 일치하고, 여기서 r'은 주어진 라운드이고, m+3은 한 라운드 내에서 발생할 수 있는 단계들의 수의 상한이다. 이러한 방식으로,
Figure pct00354
이며, 이에 따라 i의 서명(
Figure pct00355
)을 보는 모든 사람이, 압도적인 확률로, r' 다음에 오는 첫 번째 백만 개 라운드(r)에 대해 그 서명을 즉시 검증할 수 있다.
다시 말하면, i는 먼저 PMK와 SMK를 생성한다. 이어서, 사용자는, PMK가 모든 라운드(
Figure pct00356
)에 대한 i의 마스터 공개 키임을 공개하고, SMK를 사용하여 각 트리플(
Figure pct00357
)에 대해 비밀 키(
Figure pct00358
)를 개인적으로 생성하고 저장한다. 이렇게 완료된 후, 사용자는 SMK를 파괴한다. i는, 자신이
Figure pct00359
의 일부가 아니라고 결정하면, (자신이 라운드(r)의 단계(s)에서 어떠한 메시지도 인증할 것을 프로토콜이 요구하지 않으므로)
Figure pct00360
만을 남겨둘 수 있다. 그렇지 않다면, i는 먼저
Figure pct00361
를 사용하여 자신의 메시지(
Figure pct00362
) 디지털 서명한 다음
Figure pct00363
를 파괴한다.
i는 처음 시스템에 진입할 때 자신의 제1 공개 마스터 키를 공개할 수 있다는 점에 주목한다. 즉, (라운드(r')에서 또는 r'에 가까운 라운드에서) i를 시스템으로 가져오는 동일한 지불(
Figure pct00364
)은, 또한, i의 요청시, 예를 들어, 한 쌍의 형태(
Figure pct00365
)를 포함함으로써 임의의 라운드(
Figure pct00366
)에 대한 i의 공개 마스터 키가 PMK임을 특정할 수 있다.
또한, m+3이 라운드에서 단계들의 최대 수이므로, 라운드는 1분이 걸린다고 가정할 때, 이렇게 생성된 임시 키들의 스태시(stash)가 거의 2년 동안 i를 지속시킨다는 점에 주목한다. 동시에, 이들 임시 비밀 키는 생성하는 데 너무 오래 걸리지 않는다. 32B 키가 있는 타원-곡선 기반 시스템을 사용함으로써, 각 비밀 키가 몇 마이크로초로 연산된다. 따라서, m+3 = 180이면, 모든 180M 비밀 키를 1시간 이내로 연산할 수 있다.
현재 라운드가
Figure pct00367
에 가까워지면, 다음 백만 라운드를 처리하기 위해, i는, 새로운
Figure pct00368
쌍을 생성하고, 예를 들어,
Figure pct00369
이 새로운 블록에 별도의 "트랜잭션"으로서 또는 지불의 일부인 일부 추가 정보로서 진입하게 함으로써 자신의 임시 키들의 다음 스태시가 무엇인지를 통지한다. 이렇게 함으로써, i는, PMK'를 사용하여 다음 백만 라운드에서 i의 임시 서명을 검증해야 함을 모두에게 통지한다. 계속 이러한 식으로 진행된다.
(이러한 기본 방안에 따르면, 아이덴티티 기반 서명을 사용하지 않고 임시 키를 구현하는 다른 방식들이 확실히 가능한다는 점에 주목한다. 예를 들어, 머클 트리를 통해서이다(주석 11: 이 방법에서, i는,
Figure pct00370
라는 각 라운드-단계 쌍(r, s)에 대하여 공개-비밀 키 쌍
Figure pct00371
을 생성한다. 이어서, 이들 공개 키를 정준(canonical) 방식으로 주문하고, 머클 트리의 제j 리프에 제j 공개 키를 저장하고, 루트값(Ri)을 연산하여, 공개한다. i는, 키(
Figure pct00372
)에 관하여 메시지를 서명하려고 할 때, 실제 서명뿐만 아니라 Ri에 관한
Figure pct00373
에 대한 인증 경로도 제공한다. 이 인증 경로는, 또한,
Figure pct00374
가 제j 리프에 저장되어 있음을 증명한다는 점에 주목한다. 이 아이디어를 바탕으로, 나머지 세부 사항을 쉽게 채울 수 있다)).
임시 키를 구현하는 다른 방식들은 (예를 들어, 머클 트리를 통해) 확실히 가능하다.
5.3
Figure pct00375
의 단계를 BA*의 단계와 일치
전술한 바와 같이,
Figure pct00376
의 라운드는 최대 m+3개의 단계를 갖는다.
단계 1. 이 단계에서, 각각의 잠재적 리더(i)는, 자신의 후보 블록(
Figure pct00377
)을 연산하고 자신의 고유한 자격증명(
Figure pct00378
)과 함께 전파한다.
이 자격증명은 i를 명시적으로 식별한다는 점을 상기해본다. 이는,
Figure pct00379
Figure pct00380
때문이다.
잠재적 검증자(i)는, 또한, 자신의 메시지의 일부로서,
Figure pct00381
의 자신의 적절한 디지털 서명을 전파한다. 지불 또는 자격증명을 다루지 않기에, 이러한 i의 서명은 자신의 임시 공개 키(
Figure pct00382
)에 관련되며, 즉,
Figure pct00383
를 전파한다.
본 발명의 규칙을 고려할 때,
Figure pct00384
Figure pct00385
을 전파하는 것이 아니라,
Figure pct00386
를 전파할 수 있었다. 그러나, 분석에 의하면,
Figure pct00387
에 명시 적으로 액세스해야 한다.
단계 2. 이 단계에서, 각 검증자(i)는,
Figure pct00388
를 해시된 자격증명이 가장 작은 잠재적 리더로 설정하고,
Figure pct00389
Figure pct00390
에 의해 제안된 블록으로 설정한다. 효율성을 위해, 직접 Br이 아니라 H(Br)에 합의하기를 원하므로, i는 BA*의 제1 단계에서 전파했을 메시지를 초기값(
Figure pct00391
Figure pct00392
)과 함께 전파한다. 즉, 사용자는, 물론,
Figure pct00393
를 임시 서명한 후 전파한다(즉, 올바른 임시 공개 키, 이 경우,
Figure pct00394
와 관련하여 서명한 후이다). 물론, i는 또한 자신의 자격증명을 송신한다. BA*의 제1 단계는 등급별 콘센서스 프로토콜(GC)의 제1 단계로 이루어지므로,
Figure pct00395
의 단계(2)는 GC의 제1 단계에 해당한다.
단계 3. 이 단계에서, 각 검증자(
Figure pct00396
)는 BA*의 제2 단계를 실행한다. 즉, 사용자는 GC의 제2 단계에서 전송했을 동일한 메시지를 전송한다. 다시 한 번, i의 메시지는, i의 자격증명에 의해 임시 서명되고 이러한 자격증명을 동반한다(이제부터, 검증자가 자신의 메시지를 임시 서명하고 또한 자신의 자격증명을 전파한다는 말을 생략한다.)
단계 4. 이 단계에서, 모든 검증자(
Figure pct00397
)는, GC의 출력(vi, gi)을 연산하고, BA*의 제3 단계, 즉, BBA*의 제1 단계에서 전송했을 동일한 메시지를 임시 서명하고 gi=2이면 초기 비트(0)와 함께 그외에는 초기 비트(1)와 함께 전송한다.
단계
Figure pct00398
. 이러한 단계는, 도달한 경우, BA*의 단계(s-1)에 해당하고, 따라서 BBA*의 단계(s-3)에 해당한다.
본 발명의 전파 모델이 충분히 비동기식이므로, 이러한 단계(s)의 중간에, 블록(Br)이 이미 선택되었다는 것을 입증하는 정보에 의해 검증자(
Figure pct00399
)에 도달할 가능성을 고려해야 한다. 이 경우, i는,
Figure pct00400
의 라운드(r)의 자신의 고유한 실행을 중단하고, 라운드-(r+1) 명령 실행을 시작한다.
이에 따라, BBA*의 단계(s-3)에 대응하는 명령어에 추가하여 검증자(
Figure pct00401
)의 명령어는, BBA*의 실행이 이전 단계(s')에서 정지되었는지를 확인하는 것을 포함한다. BBA*는 코인-고정-to-0 단계에서 또는 코인-고정-to-1 단계에서만 중단할 수 있으므로, 명령어는, 아래의 경우를 구별한다.
A (종료 조건 0): s' - 2 ≡ 0 mod 3 또는
B (종료 조건 1): s' - 2 ≡ 1 mod 3.
실제로, A의 경우, 블록(Br)은 비어 있지 않으므로, i가 적절한 증명서(CERTr)와 함께 Br을 적절하게 재구성하는 것을 보장하도록 추가 명령어가 필요하다. B의 경우, 블록(Br)이 비어 있으므로, i는
Figure pct00402
Figure pct00403
을 설정하고 CERTr을 연산하도록 지시받는다.
i는, 단계(s)를 실행하는 동안, 블록(Br)이 이미 생성되었다는 어떠한 증거도 보지 못하면, BBA*의 단계(s-3)에서 전송했던 것과 동일한 메시지를 전송한다.
단계(m+3). 단계(m+3) 동안,
Figure pct00404
는, 블록(Br)이 이전 단계(s')에서 이미 생성된 것을 본다면, 상술 한 바와 같이 진행한다.
그렇지 않으면, BBA*의 단계(m)에서 전송했던 것과 동일한 메시지를 전송하는 것이 아니라, i는, 소유하고 있는 정보에 기초하여 Br 및 해당 증명서(CERTr)를 연산하도록 지시받는다.
사실, 라운드의 단계들의 총 수를 m+3만큼 상한으로 하였다는 점을 상기해본다.
5.4. 실제 프로토콜
라운드(r)의 각 단계(s)에서, 검증자(
Figure pct00405
)는, 자신의 장기간 공개-비밀 키 쌍을 사용하여 자신의 자격증명인
Figure pct00406
및 s=1인 경우의
Figure pct00407
를 생성한다는 점을 상기해본다. 검증자(i)는 자신의 임시 비밀 키(
Figure pct00408
)를 사용하여 (r,s) 메시지(
Figure pct00409
)를 서명한다. 간략화를 위해, r과 s가 명확할 때에는,
Figure pct00410
가 아니라
Figure pct00411
를 써서 라운드(r)의 단계(s)에서 i의 값(x)의 적절한 임시 서명을 나타내고,
Figure pct00412
대신
Figure pct00413
를 써서
Figure pct00414
를 나타낸다.
단계 1: 제안 차단
모든 사용자(
Figure pct00415
)에 대한 지침: 사용자(i)는 Br-1을 알게 되자마자 자신의 라운드(r)의 단계 1을 시작한다.
* 사용자(i)는 Br-1의 제3 구성요소로부터 Qr - 1를 연산하고
Figure pct00416
여부를 확인한다.
*
Figure pct00417
이면, i는 단계(1)의 자신의 고유한 실행을 즉시 중지한다.
*
Figure pct00418
이면, 즉, i가 잠재적 리더라면, 사용자는 지금까지 자신에게 전파된 라운드-r 지불을 모으고 이로부터 최대 페이세트(
Figure pct00419
)를 연산한다. 다음으로, 사용자는 자신의 "후보 블록"인
Figure pct00420
=
Figure pct00421
를 연산한다. 마지막으로, 사용자는 메시지(
Figure pct00422
)를 연산하고, 자신의 임시 비밀 키(
Figure pct00423
)를 파괴한 다음,
Figure pct00424
를 전파한다.
비고. 실제로 단계(1)의 전체 실행을 줄이려면, (r, 1) 메시지가 선택적으로 전파되는 것이 중요하다. 즉, 시스템의 모든 사용자(i)에 대해, 그가 수신하고 성공적으로 검증하는 제1 (r,1) 메시지에 대해(주석 12: 즉, 모든 서명이 정확하고, 블록과 해시가 모두 유효하지만, i는 포함된 페이세트가 제안자에 대해 최대인지 여부를 확인하지 않는다), 플레이어(i)는 그 메시지를 평소대로 전파한다. 플레이어(i)가 수신하고 성공적으로 검증하는 다른 모든 (r,1) 메시지에 대해, 사용자는, 해당 메시지가 포함하고 있는 자격증명의 해시값이 지금까지 수신하고 성공적으로 검증한 모든 (r,1)에 포함된 자격증명의 해시값들 중 가장 작은 경우에만 해당 메시지를 전파한다. 또한, Georgios Vlachos가 제안한 것처럼, 각 잠재적 리더(i)는 또한 자신의 자격증명(
Figure pct00425
)을 개별적으로 전파하는 것이 유용하며, 그러한 작은 메시지들은 블록들보다 빠르게 이동하고, 포함되어 있는 자격증명들이 작은 해시값들을 갖는
Figure pct00426
의 적시 전파를 보장하는 한편, 큰 해시값들을 갖는 메시지들을 빠르게 사라지게 한다.
단계 2: 등급화된 콘센서스 프로토콜(GC)의 제1 단계
모든 사용자(
Figure pct00427
)에 대한 지침: 사용자(i)는 Br-1을 알게 되자마자 자신의 라운드(r)의 단계(2)를 시작한다.
* 사용자(i)는, Br-1의 제3 구성요소로부터 Qr -1을 연산하고,
Figure pct00428
여부를 확인한다.
*
Figure pct00429
이면, i는 단계(2)의 자신의 고유한 실행을 즉시 중지한다.
*
Figure pct00430
이면, i는 시간(
Figure pct00431
)을 기다린 후 다음과 같이 행동한다.
1. 사용자는, 지금까지 수신한 성공적으로 검증된 (r,1)-메시지의 일부인 모든 자격증명(
Figure pct00432
)에 대해
Figure pct00433
이도록 사용자(
Figure pct00434
)를 찾다(주석 13: 본질적으로, 사용자(i)는 라운드(r)의 리더가 사용자(
Figure pct00435
)라고 개인적으로 결정한다).
2. 그가 유효한 메시지(
Figure pct00436
)로부터
Figure pct00437
를 수신하였다면(주석 14: 다시 한 번, 플레이어(
Figure pct00438
) 서명 및 해시는 모두 성공적으로 검증되고,
Figure pct00439
Figure pct00440
는 라운드(r)에 대한 유효한 페이세트이지만, i는
Figure pct00441
Figure pct00442
에 대하여 최대인지 여부를 확인하지 않는다), i는
Figure pct00443
를 설정하고, 그렇지 않으면
Figure pct00444
를 설정한다.
3. i는, 메시지(
Figure pct00445
)(주석 15: 메시지(
Figure pct00446
)는, 플레이어(i)가
Figure pct00447
를 다음 블록의 해시로 간주하거나 다음 블록이 비어 있는 것으로 간주함을 시그널링한다)를 연산하고, 자신의 임시 키(
Figure pct00448
)를 파괴한 후,
Figure pct00449
를 전파한다.
단계 3: GC의 제2 단계
모든 사용자에 대한 지침(
Figure pct00450
): 사용자(i)는 Br-1을 알게 되자마자 라운드(r)의 자신의 고유한 단계(3)를 시작한다.
* 사용자(i)는 Br-1의 제3 구성요소로부터 Qr -1을 연산하고,
Figure pct00451
여부를 확인한다.
*
Figure pct00452
이면, i는 단계(3)의 자신의 고유한 실행을 즉시 중지한다.
*
Figure pct00453
이면, i는, 시간(
Figure pct00454
)을 기다린 후 다음과 같이 행동한다.
1. 자신이 수신한 모든 유효한 메시지 중에서 이들 메시지의 2/3이 넘는 메시지가
Figure pct00455
의 형태로 되도록 어떠한 모순 없이도 값(
Figure pct00456
)이 존재하면(주석 16: 즉, 플레이어(j)로부터
Figure pct00457
및 상이한
Figure pct00458
를 포함하는 두 개의 유효한 메시지를 각각 수신하지 못했다. 여기서, 이제부터, 이후에 규정되는 종료 조건을 제외하고는, 정직한 플레이어가 주어진 형태의 메시지를 원할 때마다, 서로 모순되는 메시지들은 결코 카운트되지 않거나 유효한 것으로 간주되지 않는다), 메시지(
Figure pct00459
)를 연산한다. 아니라면,
Figure pct00460
를 연산한다.
2. i는 자신의 임시 비밀 키(
Figure pct00461
)를 파괴한 다음
Figure pct00462
를 전파한다.
단계 4: GC의 출력 및 BBA*의 제1 단계
모든 사용자(
Figure pct00463
)를 위한 지침: 사용자(i)는 Br-1을 알게 되자마자 라운드(r)의 자신의 고유한 단계(4)를 시작한다.
* 사용자(i)는 Br-1의 제3 구성요소로부터 Qr -1을 연산하고
Figure pct00464
여부를 확인한다.
*
Figure pct00465
이면, i는 단계(4)의 자신의 고유한 실행을 즉시 중지한다.
*
Figure pct00466
이면, i는, 시간(
Figure pct00467
)을 대기한 후 다음과 같이 행동한다.
1. 사용자는 다음과 같이 GC의 결과인 vi와 gi를 연산한다.
(a) 자신이 수신한 모든 유효한 메시지들 중 2/3를 넘는 메시지가
Figure pct00468
형태이도록 값(
Figure pct00469
)이 존재하면,
Figure pct00470
Figure pct00471
를 설정한다.
(b) 그러나, 자신이 수신한 모든 유효한 메시지들 중에서 1/3을 넘는 메시지가
Figure pct00472
형태이도록 값(
Figure pct00473
)이 존재하면,
Figure pct00474
Figure pct00475
를 설정한다(주석 17: 이것은, (b)의 경우에 v'이, 존재하는 경우, 고유함에 틀림이 없다는 점이 증명될 수 있다).
(c) 그 외에는,
Figure pct00476
Figure pct00477
를 설정한다.
2. 사용자는, 다음과 같이 BBA*의 입력인 bi를 연산한다.
Figure pct00478
이면
Figure pct00479
이고, 그렇지 않으면
Figure pct00480
이다.
3. 사용자는, 메시지(
Figure pct00481
)를 연산하고, 자신의 임시 비밀 키(
Figure pct00482
)를 파괴한 다음,
Figure pct00483
를 전파한다.
단계
Figure pct00484
: BBA*의 코인-고정-To-0 단계
모든 사용자(
Figure pct00485
)에 대한 지침: 사용자(i)는 Br-1을 알게 되자마자 라운드(r)의 자신의 고유한 단계(s)를 시작한다.
* 사용자(i)는 Br-1의 제3 구성요소로부터 Qr -1을 연산하고
Figure pct00486
Figure pct00487
여부를 확인한다.
*
Figure pct00488
인 경우, i는 단계(s)의 자신의 고유한 실행을 즉시 중단한다.
*
Figure pct00489
인 경우, 다음과 같이 행동한다.
- 사용자는, 시간(
Figure pct00490
)이 경과할 때까지 기다린다.
- 종료 조건 0 : 이러한 대기 중 및 임의의 시점에,
(a)
Figure pct00491
와 함께
Figure pct00492
, 즉, 단계(s')가 코인-고정-To-0 단계이고,
(b) i가, 적어도
Figure pct00493
개의 유효한 메시지(
Figure pct00494
Figure pct00495
)를 수신하였고(주석 18: 이러한 플레이어(j)의 메시지는, 플레이어(i)가 1에 대하여 서명하는 j로부터 메시지를 수신하였더라도 카운트된다. 종료 조건 1에 대하여 유사하다. 분석에서 알 수 있듯이, 이는 모든 정직한 사용자가 서로 시간(λ) 내에 Br을 아는 것을 보장하도록 행해진다), 및
(c) i가 v =
Figure pct00496
와 함께 유효한 메시지(
Figure pct00497
)를 수신한 것으로 되도록 스트링(
Figure pct00498
) 및 단계(s')가 존재하면,
i는, 아무 것도 전파하지 않고 즉시 단계(s)(및 실제로 라운드(r)의 단계)의 자신의 고유한 실행을 중지하고,
Figure pct00499
로 설정하고, 자신의 고유한 CERTr을 하위 단계(b)의 메시지들(
Figure pct00500
)의 세트로 되도록 설정한다(주석 19 : 사용자(i)는, 이제 Br를 알고 자신의 고유한 라운드(r)가 완료됨을 안다. 사용자는, 또한, 일반 사용자로서 메시지 전파를 돕지만, (r,s)-검증자로서 어떠한 전파도 개시하지 않는다. 특히, 사용자는, 자신의 CERTr의 모든 메시지를 전파하는 데 일조하였으며, 이는 우리의 프로토콜에 충분하다. 또한, 이진 BA 프로토콜에 대해
Figure pct00501
도 설정해야 하지만, 어쨌든 이 경우에 bi는 필요하지 않다는 점에 주목한다. 향후 모든 지침에 대해서도 유사하다).
- 종료 조건 1: 이러한 대기 중 및 임의의 시점에,
(a')
Figure pct00502
와 함께
Figure pct00503
- 즉, 단계(s')가 코인-고정-To-1 단계이고,
(b') i가 적어도 tH개의 유효한 메시지(
Figure pct00504
Figure pct00505
)(주석 20: 이 경우, vj들이 무엇인지는 중요하지 않음)를 수신한 것으로 되도록 단계(s')가 존재한다면,
i는, 아무것도 전파하지 않고 바로 단계(s)(및 실제로 라운드(r)의 단계)의 실행을 중지하고,
Figure pct00506
로 설정하고, 자신의 고유한 CERTr을 하위 단계(b')의 메시지들(
Figure pct00507
)의 세트로 되도록 설정한다.
- 그렇지 않으면, 대기 종료시, 사용자(i)는 다음을 수행한다.
사용자는, vi를, 자신이 수신한 모든 유효한
Figure pct00508
의 제2 구성요소들의 vj의 다수표로 되도록 설정한다.
사용자는, 다음과 같이 bi를 연산한다.
사용자는, 자신이 수신한 모든 유효한
Figure pct00509
중 2/3를 넘는 메시지가
Figure pct00510
의 형태를 가지면,
Figure pct00511
로 설정한다.
그렇지 않으면, 사용자는, 자신이 수신한 모든 유효한
Figure pct00512
중 2/3를 넘는 메시지가
Figure pct00513
의 형태를 가지면,
Figure pct00514
로 설정한다.
그 외에는, 사용자는
Figure pct00515
로 설정한다.
사용자는, 메시지(
Figure pct00516
)를 연산하고, 자신의 임시 비밀 키(
Figure pct00517
)를 파괴한 다음,
Figure pct00518
를 전파한다.
단계
Figure pct00519
: BBA*의 코인-고정-To-1 단계
모든 사용자(
Figure pct00520
)에 대한 지침: 사용자(i)는 Br-1을 알게 되자마자 라운드(r) 자신의 고유한 단계(s)를 시작한다.
* 사용자(i)는, Br-1의 제3 구성요소로부터 Qr -1을 연산하고
Figure pct00521
여부를 확인한다.
*
Figure pct00522
인 경우, i는 단계(s)의 자신의 고유한 실행을 즉시 중단한다.
*
Figure pct00523
인 경우, 사용자는 다음을 수행한다.
- 시간량
Figure pct00524
이 경화할 때까지 기다린다.
- 종료 조건 0: 코인-고정-To-0 단계와 동일한 지침.
- 종료 조건 1: 코인-고정-To-0 단계와 동일한 지침.
- 그렇지 않으면, 대기 종료시, 사용자(i)는 다음을 수행한다.
사용자는, 자신이 수신한 모든 유효한
Figure pct00525
의 제2 구성요소에서 vj의 다수표로 설정한다.
사용자는 다음과 같이 bi를 연산한다.
사용자는, 자신이 수신한 모든 유효한
Figure pct00526
중 2/3를 넘는 메시지가
Figure pct00527
의 형태를 가지면,
Figure pct00528
로 설정한다.
그렇지 않으면, 사용자는, 자신의 수신한 모든 유효한
Figure pct00529
중 2/3을 넘는 메시지가
Figure pct00530
의 형태를 가지면,
Figure pct00531
로 설정한다.
그렇지 않으면, 사용자는
Figure pct00532
로 설정한다.
사용자는, 메시지(
Figure pct00533
)를 연산하고, 자신의 임시 비밀 키(
Figure pct00534
)를 파괴한 다음,
Figure pct00535
를 전파한다.
단계
Figure pct00536
: BBA*의 코인-실제-뒤집힘 단계
모든 사용자(
Figure pct00537
)에 대한 지침: 사용자(i)는 Br-1을 알게 되자마자 라운드(r)의 자신의 고유한 단계(s)를 시작한다.
* 사용자(i)는 Br-1의 제3 구성요소로부터 Qr -1을 연산하고,
Figure pct00538
여부를 확인한다.
*
Figure pct00539
인 경우, i는 단계(s)의 자신의 고유한 실행을 즉시 중단한다.
*
Figure pct00540
인 경우, 다음을 수행한다.
- 사용자는 시간(
Figure pct00541
)이 경과할 때까지 기다린다.
- 종료 조건 0: 코인-고정-To-0 단계와 동일한 지침.
- 종료 조건 1: 코인-고정-To-0 단계와 동일한 지침.
- 그 외에는, 사용자(i)는, 대기 종료시, 다음을 수행한다.
사용자는, vj를, 자신이 수신한 모든 유효한
Figure pct00542
의 제2 구성요소의 vj의 다수표로 설정한다.
사용자는 다음과 같이 bi를 연산한다.
사용자는, 자신이 수신한 모든 유효한
Figure pct00543
의 2/3을 넘는 메시지가
Figure pct00544
의 형태를 갖는다면,
Figure pct00545
로 설정한다.
그렇지 않으면, 사용자는, 자신이 수신한 모든 유효한
Figure pct00546
의 2/3을 넘는 메시지가
Figure pct00547
의 형태를 갖는다면,
Figure pct00548
로 설정한다.
그 외에는,
Figure pct00549
를, 사용자가 유효한 메시지(
Figure pct00550
)를 수신하게 되는 (r,s-1)-검증자들의 세트라고 한다. 사용자는
Figure pct00551
로 설정한다.
사용자는, 메시지(
Figure pct00552
)를 연산하고, 자신의 임시 비밀 키(
Figure pct00553
)를 파괴한 다음,
Figure pct00554
를 전파한다.
단계 m+3: BBA*의 최종 단계(주석 21 : 압도적인 확률로, BBA*는 이 단계 전에 종료되었으며, 완전성을 위해 이 단계를 특정한다.)
모든 사용자(
Figure pct00555
)에 대한 지침: 사용자(i)는 Br-1을 알게 되자마자 라운드(r)의 자신의 고유한 단계(m+3)를 시작한다.
* 사용자(i)는 Br-1의 제3 구성요소로부터 Qr -1을 연산하고,
Figure pct00556
Figure pct00557
여부를 확인한다.
*
Figure pct00558
인 경우, i는 단계(m+3)의 자신의 고유한 실행을 즉시 중단한다.
*
Figure pct00559
인 경우, 다음을 수행한다.
- 사용자는, 시간량(
Figure pct00560
)이 경과할 때까지 기다린다.
- 종료 조건 0: 코인-고정-To-0 단계와 동일한 지침.
- 종료 조건 1: 코인-고정-To-0 단계와 동일한 지침.
- 그렇지 않으면, 대기 종료시, 사용자(i)는 다음을 수행한다.
사용자는
Figure pct00561
Figure pct00562
를 설정한다.
사용자는, 메시지(
Figure pct00563
)를 연산하고, 자신의 임시 비밀 키(
Figure pct00564
)를 파괴한 다음,
Figure pct00565
를 전파하여 Br을 증명한다(주석 22: 단계(m+3)로부터의 증명서는
Figure pct00566
를 포함할 필요가 없다. 이것은 균일성을 위해 포함된 것이며, 증명서는, 이제, 생성 단계에 상관없이 균일한 포맷을 갖는다).
비검증자에 의한 라운드-r 블록의 재구성
시스템의 모든 사용자(i)에 대한 지침: 사용자(i)는, Br-1을 알게 되자마자 자신의 고유한 라운드(r)를 시작하고, 다음과 같이 블록 정보를 기다린다.
- 대기 중 및 임의의 시점에,
(a)
Figure pct00567
와 함께
Figure pct00568
이고,
(b) i가 적어도 tH 개의 유효한 메시지(
Figure pct00569
)를 수신하였고,
(c) i가,
Figure pct00570
와 함께 유효한 메시지(
Figure pct00571
)를 수신한 것이도록 스트링(v) 및 단계(s')가 존재한다면,
i는, 라운드(r)의 자신의 고유한 실행을 즉시 중지하고,
Figure pct00572
로 설정하고, 자신의 고유한 CERTr을 하위 단계(b)의 메시지들(
Figure pct00573
)의 세트로 설정한다.
- 이러한 대기 중 및 특정 시점에,
(a')
Figure pct00574
와 함께
Figure pct00575
이고,
(b') i가 적어도 tH개의 유효한 메시지(
Figure pct00576
)를 수신한 것이도록 단계(s')가 존재한다면,
i는, 라운드(r)의 자신의 고유한 실행을 즉시 중지하고,
Figure pct00577
로 설정하고, 자신의 고유한 CERTr을 하위 단계(b')의 메시지들(
Figure pct00578
)의 세트로 설정한다.
- 이러한 대기 중 및 임의의 시점에서, i가 적어도 tH개의 유효한 메시지(
Figure pct00579
)를 수신하였다면, i는, 라운드(r)의 자신의 고유한 실행을 즉시 중지하고,
Figure pct00580
로 설정하고, 자신의 고유한 CERTr을 1 및
Figure pct00581
에 대한 메시지들(
Figure pct00582
)의 세트로 설정한다.
6. 임시 키를 이용한 알고랜드
본질적으로, 알고랜드에서, 블록은 라운드에서 생성된다. 라운드(r)에서,
(1) 적절히 자격증명된 리더는 새로운 블록을 제안하고, 이어서
(2) 적절히 자격증명된 사용자는, 여러 단계에 걸쳐, 제안된 블록에 대하여 적절한 비잔틴 합의(BA) 프로토콜을 실행한다.
바람직한 BA 프로토콜은 BA*이다. 블록 제안 단계는 단계(1)로 간주될 수 있으므로, BA*의 단계들은 2,3,...이다.
시스템의 사용자들 중에서 랜덤하게 선택된 적절한 사용자(i)만이 라운드(r)의 단계(s)에서 메시지(
Figure pct00583
)를 전송할 권리가 있다. 알고랜드는, 이러한 사용자(i)가 자신이 말할 자격이 있는지를 확인하기 때문에, 매우 빠르고 안전하다. 이러한 경우, 사용자(i)는 실제로 증거인 자격증명을 취득한다. i는, 라운드(r)의 단계(s)에서 발언할 차례가 되면, 네트워크에서 자신의 자격증명(
Figure pct00584
)과 디지털 서명된 메시지(
Figure pct00585
)를 모두 전파한다. 자격증명은, 다른 사용자들이 메시지(
Figure pct00586
)를 고려해야 한다는 점을 그 다른 사용자들에게 증명한다.
사용자(i)가 라운드(r)의 단계(s)에서 발언할 자격이 있도록 필요한 조건은, 사용자가 몇 라운드 전에 시스템에 이미 있었다는 것이다. 특히, k 라운드들은 라운드(r) 앞에 있으며, 여기서 k는 '룩-백' 파라미터라고 칭하는 파라미터이다. 즉, 라운드(r')에서 발언할 수 있으려면, i는, 라운드(r-k)에서 시스템에 이미 있는 모든 공개 키/사용자의 세트인 PKr -k에 속해야 한다(사용자들은 자신들의 공개 키로 식별될 수 있다). 이 조건은, 블록체인에서 파생될 수 있다는 의미에서 쉽게 검증될 수 있다.
다른 조건은
Figure pct00587
이며,
여기서, p는, SVr,s의 검증자들의 예상 수, 즉, 라운드(r)의 단계(s)에서 발언할 자격이 있는 사용자들의 세트를 제어하는 주어진 확률이다. 이 조건이 충족되면, i의 자격증명은
Figure pct00588
로 정의된다.
물론, i만이 자신이 SVr,s에 속하는지 여부를 알아낼 수 있으며, 비밀 서명 키를 모르는 다른 모든 사용자는 그것에 대해 전혀 모른다. 그러나
Figure pct00589
이면, i는, 지금까지 블록체인이 주어진 상태에서 자신의 자격증명(
Figure pct00590
)을 전파함으로써 이것이 누구에게나 해당함을 입증할 수 있다. 사실, (1) Qr -1은 이전 블록(Br-1)으로부터 쉽게 연산될 수 있지만 본질적으로 이전에 예측할 수 없을 정도로 충분히 많은 블록이 있고, (2) 누구든지 (시스템의 해당 장기간 키에 관하여) i의 디지털 서명을 검증할 수 있다는 점을 상기해 본다.
또한, 지금까지의 알고랜드의 버전에서, 검증자(
Figure pct00591
)는 임시 공개 키(
Figure pct00592
)에 관하여 자신의 단계(s)-라운드(r) 메시지(
Figure pct00593
)를 디지털 서명하고, 이는, 블록체인이 주어진 경우, 라운드(r)의 단계(s)에서 누구라도 i에 진정으로 해당한다는 점을 인식할 수 있다는 점을 상기해 본다. 이러한 "임시 서명"은,
Figure pct00594
로 표시되며, 대문자로 표시되는 "장기간" 키를 갖는 i 서명과 구별되도록 소문자를 사용하는 것이다.
요약하면, SVr,s의 사용자는, 라운드(r)의 단계(s)에서 두 개의 개별 메시지, 즉, (a) 자신의 자격증명(
Figure pct00595
) 및 (b) 디지털 서명된 단계(s)-라운드(r) 메시지(
Figure pct00596
)를 전파한다. i는, 이렇게 행한 후,
Figure pct00597
에 해당하는 자신의 비밀 임시 키를 삭제한다.
이러한 임시 키를 사용함으로써, 블록(Br)이 생성된 후 라운드(r)의 충분히 많은 검증자를 손상시키는 적대자가 다른 라운드(r) 블록을 생성할 수 있는 상황을 방지한다.
사실상, 단계(1)의 검증자들은 잠재적 리더들이며, 이들의 단계(1)-라운드(r) 메시지가 자신들이 제안하는 블록들이라는 점을 상기해 본다(라운드(r)의 리더(
Figure pct00598
)는, 해시된 자격증명이 가장 작은 잠재적 리더로 규정된다. 있음직하지 않은 타이의 경우, 사전적으로 먼저인 잠재적 리더를 선택할 수 있다). 임의의 단계(s>1)에서, 메시지(
Figure pct00599
)는, 자신의 "제어 메시지", 즉, BA 프로토콜(BA*)에 있는 메시지이다.
i의 자격증명을 자신의 (디지털 서명된) 메시지(
Figure pct00600
)로부터 분리하면, 두 개의 주요 이점이 있다.
A1. 이것은, 여러 잠재적 리더가 자신의 제안된 새로운 블록을 전파하는 제1 단계에서, 리더가 정직한 경우 사용자들이 라운드 리더(
Figure pct00601
)를 신속하게 식별할 수 있음을 보장한다. 실제로, 모든 자격증명, 특히, 단계(1)의 자격증명은 매우 작지만, 제안된 블록은 클 수 있다(
Figure pct00602
에 의해 제안되는 실제 블록은 곧 식별될 수 있다).
A2. 이것은 게으른 정직을 구현할 수 있게 한다. 즉, 이것은, 사용자(i)가 자신이 어떤 라운드와 단계에서 행동해야 하는지 비밀리에 미리 인식할 수 있게 한다.
7 메시지-자격증명된 블록체인을 이용한 알고랜드
궁극적으로 블록을 증명하기 위해 임시 키를 사용하지 않고 다른 모든 단계에 대해서는 임시 키를 사용하는 알고랜드의 새로운 실시예를 먼저 설명한다.
이어서, 알고랜드에서, 제1 단계인 블록-제안 단계를 제외한 모든 단계에서 임시 키를 제거하는 방법을 설명한다.
블록 제안. 새로운 실시예는 이전과 동일한 단계(1)를 사용한다. 따라서, 라운드(r)의 잠재적 리더(i)는, 자신의 대응하는 임시 키에 관하여 자신이 제안한 블록(
Figure pct00603
)을 서명하고, 해당 비밀 임시 키를 삭제한 후,
Figure pct00604
의 서명 및 자신의 자격증명을 전파한다.
비잔틴 계약. 라운드(r)에서, BA 프로토콜(BA*)의 모든 단계(s)는 이전과 동일하게 유지된다. 따라서, 특히, 검증자(
Figure pct00605
)는, 자신의 r-s 임시 공개 키에 관하여 디지털 서명된 자신의 자격증명과 자신의 고유한 단계(s)-라운드(r) 메시지(
Figure pct00606
)를 전파하고, 대응하는 비밀 임시 키를 제거한다. 그러나, 다음에 따르는 변경 사항은, 제1 코인-고정-to-1 단계의 종료 조건 및 BBA*의 모든 후속 단계에 적용된다.
이러한 단계(s)에서, 사용자(i)가 처음으로 종료 조건에 도달했다고 가정한다. 그렇다면, 이는,
* 일부 비트(b)에 대하여, i가 동일한
Figure pct00607
를 가진 적어도 tH개의 유효한 메시지(
Figure pct00608
Figure pct00609
)를 수신하였고,
* i가
Figure pct00610
와 함께 유효한 메시지(
Figure pct00611
)를 수신한 경우일 것이다.
이에 따라, i가 SVr,s에서 검증자라면, 알고랜드의 이전 실시예들에서, 사용자는 실행을 즉시 중단했을 것이고 CERTr을 소유할 블록(Br)을 학습하게 되었을 것이다. CERTr은 임시 디지털 서명들의 주어진 수로 이루어졌다는 점을 상기해 본다. 이제, 이러한 CERTr을 Br의 '임시 증명서'라고 한다.
알고랜드의 새로운 실시예에서, 사용자(i)는,
Figure pct00612
의 임의의 사용자일 수 있으며, 여기서, k는 (반드시
Figure pct00613
에 속하는) SVr,s의 검증자가 아니라 룩-백 파라미터이다. 이러한 임의의 사용자(i)는, 이제 더 이상 라운드(r)의 실행을 중지(시뮬레이션)하지 않는다. 오히려, 자신의 장기간 비밀 키를 사용하여, 블록(B)을 최종적인 것으로 간주하고 서명이 적절히 고려될 수 있는 적절한 기회를 보장함을 나타내는 데이터의 서명을 생성한다. 예를 들어, 어떠한 의도로도 제한하지 않고, i는
Figure pct00614
를 연산하며,
여기서, B는 블록체인에서 방금 구성된 최신 블록이다.
Figure pct00615
이면, i는 Si를 전파하고, Si를 자격증명된 증명 서명이라고 한다(여기서, p는 [0, 1] 범위에서의 주어진 파라미터이다.)
이러한 서명들의 주어진 임계값(T)은 B에 대한 비임시 증명서를 구성한다.
이제는, 비임시 증명서만이 실제로 중요하다. 임시 증명서는 단지 실제 비임시 증명서를 향한 '스텝핑 스톤'(stepping stone)으로서 간주될 수 있다.
블록(Br)에 대한 최종 증명서를 보는 정직한 사용자는, 더 이상 라운드(r)의 블록의 생성 또는 최종 증명에 기여하지 않는다.
분석. 비임시 증명서가 장기간 서명들로 이루어지더라도, 실시예는 안전하다. 본질적으로, 이는, p와 T를 적절히 선택하기 위해, 적대자가
Figure pct00616
형태의 T 서명(Sj)을 생성할 수 있는 스트링(X)을 실행할 수 있게 찾을 수 없기 때문에 그러하며, 여기서, j는 손상된 사용자이고
Figure pct00617
이다.
(이 응용분야에서, T는 아주 작을 수 있으며, 예를 들어, 약 500일 수 있다. 이는, T 서명들 중 적어도 하나가 정직한 사용자로부터 온 것이면 충분하기 때문이다. 실제로, T는, 비임시 증명서를 생성하는 데 충분하지만 모든 블록에 대해 반드시 그럴 필요는 없기 때문에, 훨씬 더 작을 수 있다.)
또한, 새로운 실시 예에서, 적대자는, 정직한 사용자가 손상된 사용자에 의해 연산된 '임의의 자격증명된 증명 서명'을 전파하게 함으로써 네트워크를 플러드(flood) 공격할 수 없다는 점에 주목한다. 실제로, 임의의 악의적
Figure pct00618
는 전파 규칙의 적절한 사용에 의해
Figure pct00619
와 같은 임의의 일부 스트링(xj)을 찾을 수 있지만, 서명(
Figure pct00620
)은 정직한 사용자에 의해 결코 중계되지 않는다. 실제로, 사용자(u)는, (1)
Figure pct00621
이고 (2)
Figure pct00622
인 경우뿐만 아니라 (3) H(B)가 u 자신이 비임시 증명서를 본 블록(B)의 해시인 경우에도 서명(
Figure pct00623
)을 포워딩한다.
실제로, 위의 조건(3)을 다음과 같이 약한 조건으로 교체할 수 있다.
3'. H(B)는, 블록(B)의 해시로서, 이를 위해 u 자신이 가능한 임시 증명서의 충분히 큰 서브세트를 보았다.
사실, 정직한 사용자(i)가 B에 대한 전체 임시 증명서를 보았을 때, (파티션이 없는 경우) 다른 정직한 사용자들은, 적절한 단계의 많은 검증자에 의해 승인된 B를 봤을 것이다. 이 수는, 실제로 비임시 증명될 가능성이 있는 유일한 블록을 식별하는 데 충분하다.
다른 단계에서의 임시 키 제거. 상술한 실시예는 원래의 알고랜드 프로토콜에 대한 최소 수의 변화를 필요로 한다. 이제, 제1 단계를 제외한 모든 단계에서 임시 키를 피하는 방법을 설명한다. 아이디어는, 모든 단계 s> 1에 대해 단계(s) 검증자들이 없다는 것이다. 오히려, 모든 라운드(r)에 대해, 모든 사용자는, 자신의 단계(s)-라운드(r) 메시지(
Figure pct00624
)를 내부적으로 연산하도록
Figure pct00625
의 검증자인 것처럼 단계(s)를 내부적으로 실행한다. 이때,
Figure pct00626
를 임시 키(
Figure pct00627
)로 디지털 서명하는 것이 아니라, i는 다음과 같이 자신이 메시지(
Figure pct00628
)를 전파할 자격이 있는지를 확인한다. 먼저, i는, 자신이 이전 라운드에서 시스템(k)에 있었는지를 확인하며, 즉,
Figure pct00629
를 확인한다. 이러한 경우라면, i는,
Figure pct00630
를 양(Qr - 1)과 함께 자신의 장기간 키로 디지털 서명하며, 예를 들어,
Figure pct00631
를 연산하고, 주어진 확률(p)에 대해 이 서명의 해시가
Figure pct00632
인지를 확인한다. 이러한 경우라면, i는
Figure pct00633
로 전파될 자격이 있으며 실제로
Figure pct00634
를 전파한다.
Figure pct00635
가 주어지면, 모든 이가 i가
Figure pct00636
를 전파할 자격이 있다고 검증할 수 있다는 점에 주목한다. 단계(s+1)에서, 사용자들은, 자격이 있는 사용자들에 의해 전파되는 단계(s) 메시지들만을 고려한다.
라운드(r)의 단계(s)를 (적어도 내부적으로) 실행한 정직한 사용자는, 더 이상 이러한 단계를 실행하지 않거나 그 실행에 참여하지 않는다.
8. 범위
본원에서 설명하는 메커니즘은, 일반적으로 검증가능한 방식으로, 검증 등의 특정 목적을 위해 사용자들의 서브세트를 랜덤하게 선택하는 것이 바람직한 다른 블록체인 시스템에 적용가능하다는 점에 주목한다. 따라서, 본원에서 설명하는 시스템은, 이더리움 또는 라이트코인 등의 다른 블록체인 체계 또는 심지어 통화와 직접 관련되지 않은 블록체인 체계로 구성될 수 있다.
본원에서 설명하는 시스템은, 2017년 5월 4일에 출원된 국제출원번호 PCT/US2017/031037, 2017년 8월 17일에 출원된 미국 특허출원번호 제15/551,678호, 2017년 9월 28일에 출원된 미국 특허출원번호 제62/564,670호, 2017년 10월 4일에 출원된 미국 특허출원번호 제62/567,864호, 2017년 10월 10일에 출원된 미국 특허출원번호 제62/570,256호, 2017년 11월 2일에 출원된 미국 특허출원번호 제62/580,757호, 2017년 12월 19일에 출원된 미국 특허출원번호 제62/607,558호, 2018년 2월 20일에 출원된 미국 특허출원번호 제62/632,944호, 및 2018년 3월 15일에 출원된 미국 특허출원번호 제62/643,331호 중 임의의 것 또는 전부에서 설명하는 메커니즘에 적용되고 이러한 메커니즘과 결합되도록 구성될 수 있고, 이들 모두는 본원에 참고로 원용된다.
본원에서 설명하는 시스템의 소프트웨어 구현예는, 컴퓨터 판독가능 매체에 저장되고 하나 이상의 프로세서에 의해 실행되는 실행가능 코드를 포함할 수 있다. 컴퓨터 판독가능 매체는, 비일시적일 수 있고, 컴퓨터 하드 드라이브, ROM, RAM, 플래시 메모리, CD-ROM, DVD-ROM, 플래시 드라이브, SD 카드 및 USB 인터페이스 등의 휴대용 컴퓨터 저장 매체, 및/또는 실행가능 코드가 프로세서에 의해 저장 및 실행될 수 있는 다른 임의의 적절한 유형 또는 비일시적 컴퓨터 판독가능 매체 또는 컴퓨터 메모리를 포함한다. 본원에서 설명하는 시스템은 임의의 적절한 운영 체제와 관련하여 사용될 수 있다.
본 발명의 다른 실시예들은, 본원에 개시된 본 발명의 명세서 또는 실시를 고려하여 당업자에게 명백할 것이다. 본 명세서와 예들은 단지 예시적인 것으로 간주되며, 본 발명의 진정한 범위 및 사상은 다음에 따르는 청구범위에 의해 지시되는 것을 의도한 것이다.

Claims (16)

  1. 트랜잭션들이 블록들로 조직되는 트랜잭션 시스템에서, 엔티티가 이전 블록들(
    Figure pct00637
    )의 시퀀스에 관련하여 유효 트랜잭션들의 새로운 블록(Br)을 구성하는 방법으로서,
    상기 엔티티가 상기 이전 블록들로부터의 양(Q)을 결정하게 하는 단계;
    상기 엔티티와 Q에 고유하게 연관된 스트링(S)을 연산하도록 상기 엔티티가 비밀 키를 사용하게 하는 단계;
    상기 엔티티가 S로부터 S 자체, S의 함수, 및 S의 해시값 중 적어도 하나인 양(T)을 연산하게 하는 단계;
    T가 주어진 특성을 보유하는지 여부를 상기 엔티티가 결정하게 하는 단계; 및
    T가 상기 주어진 특성을 보유하는 경우, 상기 엔티티가 Br을 디지털 서명하게 하고 Br의 디지털 서명된 버전과 S를 이용가능하게 하는 단계를 포함하고,
    상기 엔티티는, Br의 디지털 서명에 따라 가변되는 난수에 기초하여 선택되는, 방법.
  2. 제1항에 있어서, 상기 비밀 키는 상기 엔티티의 공개 키에 대응하는 비밀 서명 키이고, S는 상기 엔티티에 의한 Q의 디지털 서명인, 방법.
  3. 제1항에 있어서, T는, 수이고, T가 주어진 수(p) 미만이면 상기 특성을 충족하는, 방법.
  4. 제2항에 있어서, S는 Br로부터 S를 추론할 수 있게 함으로써 이용가능해지는, 방법.
  5. 제2항에 있어서, 각 사용자는 상기 트랜잭션 시스템에 잔액을 갖고, p는 각 사용자의 잔액에 따라 사용자마다 가변되는, 방법.
  6. 제1항에 있어서, 상기 난수는 상기 엔티티의 디지털 서명의 해시인, 방법.
  7. 제6항에 있어서, 상기 엔티티는, 상기 난수가 상기 트랜잭션 시스템의 엔티티들의 최소값이 Br을 디지털 서명할 수 있도록 선택된 임계값 미만이면 선택되는, 방법.
  8. 블록체인 시스템에서 사용자들의 서브세트를 선택하여 이전 블록들(
    Figure pct00638
    )의 시퀀스에 관련하여 새로운 블록(Br)을 검증하는 방법으로서,
    상기 사용자들 중 적어도 일부가 상기 새로운 블록(Br)을 다른 정보와 함께 디지털 서명하여 디지털 서명을 생성하게 하는 단계;
    상기 사용자들 중 적어도 일부가 상기 디지털 서명의 해시값을 결정하게 하는 단계;
    상기 사용자들 중 적어도 일부가 상기 해시값을 미리 결정된 임계값과 비교하게 하는 단계; 및
    상기 서브세트의 사용자들의 각각에 대하여 상기 해시값이 미리 결정된 임계값 미만임에 응답하여 상기 사용자들의 서브세트가 상기 디지털 서명을 이용가능하게 하여 상기 새로운 블록(Br)을 검증하는 단계를 포함하는, 방법.
  9. 제8항에 있어서, 상기 사용자들 중 특정 사용자는, 상기 사용자들 중 상기 특정 사용자가 상기 새로운 블록(Br)에 제공된 정보를 검증하는 경우에만 상기 새로운 블록(Br)을 디지털 서명하는, 방법.
  10. 제8항에 있어서, 상기 미리 결정된 값은, 상기 사용자들의 서브세트가 상기 사용자들의 최소수를 포함하도록 선택되는, 방법.
  11. 제8항에 있어서, 상기 블록체인 시스템은, 트랜잭션들이 블록들로 조직되는 트랜잭션 시스템에서 사용되는, 방법.
  12. 블록체인에서 적어도 하나의 데이터 스트링(m)을 증명하기 위한 방법으로서,
    사용자들의 세트(S)가 m이 적어도 일부의 주어진 특성을 이용하는지 여부를 검증하게 하는 단계;
    상기 사용자들에 의한 m의 증명에 응답하여 사용자들이 m을 디지털 서명하게 하는 단계; 및
    상기 사용자들이 m의 자격증명된(credentialed) 서명인 m의 디지털 서명을 이용가능하게 하는 단계를 포함하는, 방법.
  13. 제12항에 있어서, 상기 m의 디지털 서명은, 상기 디지털 서명이 주어진 추가 특성을 충족하는 경우 자격증명되는, 방법.
  14. 제13항에 있어서, 상기 m의 디지털 서명은, 상기 디지털 서명의 해시가 주어진 타겟 수보다 작은 경우 상기 주어진 추가 특성을 충족하는, 방법.
  15. 제12항에 있어서, 상기 데이터 스트링(m)은 적어도 m의 자격증명된 서명들의 주어진 수에 의해 증명되는, 방법.
  16. 제1항 내지 제15항 중 한 항의 방법을 구현하는 실행가능 코드를 포함하는, 비일시적 컴퓨터 판독가능 매체에 제공된 컴퓨터 소프트웨어.
KR1020207011793A 2017-09-28 2018-09-28 메시지 자격증명된 블록체인 KR20200101326A (ko)

Applications Claiming Priority (15)

Application Number Priority Date Filing Date Title
US201762564670P 2017-09-28 2017-09-28
US62/564,670 2017-09-28
US201762567864P 2017-10-04 2017-10-04
US62/567,864 2017-10-04
US201762570256P 2017-10-10 2017-10-10
US62/570,256 2017-10-10
US201762580757P 2017-11-02 2017-11-02
US62/580,757 2017-11-02
US201762607558P 2017-12-19 2017-12-19
US62/607,558 2017-12-19
US201862632944P 2018-02-20 2018-02-20
US62/632,944 2018-02-20
US201862643331P 2018-03-15 2018-03-15
US62/643,331 2018-03-15
PCT/US2018/053360 WO2019067863A1 (en) 2017-09-28 2018-09-28 BLOCK CHAINS ACCREDITED BY MESSAGE

Publications (1)

Publication Number Publication Date
KR20200101326A true KR20200101326A (ko) 2020-08-27

Family

ID=65903286

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207011793A KR20200101326A (ko) 2017-09-28 2018-09-28 메시지 자격증명된 블록체인

Country Status (13)

Country Link
US (1) US20200304314A1 (ko)
EP (1) EP3688700A4 (ko)
JP (1) JP2020536473A (ko)
KR (1) KR20200101326A (ko)
CN (1) CN111566680A (ko)
AU (1) AU2018339067A1 (ko)
BR (1) BR112020006407A2 (ko)
CA (1) CA3077246A1 (ko)
IL (1) IL273623A (ko)
MX (1) MX2020004000A (ko)
RU (1) RU2020114756A (ko)
SG (1) SG11202002846TA (ko)
WO (1) WO2019067863A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110321732A (zh) * 2019-05-23 2019-10-11 深圳壹账通智能科技有限公司 区块链系统的数据授权方法、装置、存储介质及电子设备
CN110300167B (zh) * 2019-06-28 2020-07-31 京东数字科技控股有限公司 基于区块链的业务信息处理方法、设备及可读存储介质
CN110535629B (zh) * 2019-09-20 2022-06-10 奥科塞尔控股公司 一种异步网络条件下的出块共识方法
CN110838947B (zh) * 2019-11-21 2021-04-23 桂林电子科技大学 一种基于H-Algorand的多块输出公有链共识机制
CN111273897A (zh) * 2020-01-21 2020-06-12 北京艾鸥科技有限公司 一种区块链资源消耗方法、装置、储存介质及电子设备

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903882A (en) * 1996-12-13 1999-05-11 Certco, Llc Reliance server for electronic transaction system
US7047416B2 (en) * 1998-11-09 2006-05-16 First Data Corporation Account-based digital signature (ABDS) system
CN102017510B (zh) * 2007-10-23 2013-06-12 赵运磊 自封闭联合知识证明和Diffie-Hellman密钥交换方法与结构
US20150379510A1 (en) * 2012-07-10 2015-12-31 Stanley Benjamin Smith Method and system to use a block chain infrastructure and Smart Contracts to monetize data transactions involving changes to data included into a data supply chain.
US20160085955A1 (en) * 2013-06-10 2016-03-24 Doosra, Inc. Secure Storing and Offline Transferring of Digitally Transferable Assets
US11270298B2 (en) * 2014-04-14 2022-03-08 21, Inc. Digital currency mining circuitry
US20170048209A1 (en) 2015-07-14 2017-02-16 Fmr Llc Crypto Key Recovery and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
JP6355168B2 (ja) * 2015-11-09 2018-07-11 日本電信電話株式会社 ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム
KR20220088507A (ko) * 2016-05-04 2022-06-27 실비오 미칼리 분산 거래 전파 및 검증 시스템

Also Published As

Publication number Publication date
SG11202002846TA (en) 2020-04-29
BR112020006407A2 (pt) 2020-09-24
MX2020004000A (es) 2020-10-05
EP3688700A1 (en) 2020-08-05
EP3688700A4 (en) 2021-06-23
CN111566680A (zh) 2020-08-21
CA3077246A1 (en) 2019-04-04
RU2020114756A (ru) 2021-10-28
WO2019067863A1 (en) 2019-04-04
AU2018339067A1 (en) 2020-04-09
US20200304314A1 (en) 2020-09-24
JP2020536473A (ja) 2020-12-10
IL273623A (en) 2020-05-31

Similar Documents

Publication Publication Date Title
KR102409819B1 (ko) 분산 거래 전파 및 검증 시스템
Chen et al. Algorand
Chen et al. Algorand: A secure and efficient distributed ledger
US20200396059A1 (en) Fast and partition-resilient blockchains
KR20200101326A (ko) 메시지 자격증명된 블록체인
TW202046223A (zh) 在基於區塊鏈的私有交易中提供隱私和安全保護的系統和方法
KR20210135495A (ko) 블록체인 스마트 컨트랙트들에서 난수들을 발생하기 위한 방법
CN110061850A (zh) 变色龙哈希函数的碰撞计算方法及可编辑区块链构造方法
KR20200096241A (ko) 블라인드 결과 선택을 위한 블록체인 구현 보안 시스템 및 방법
WO2020102456A1 (en) Gambling systems and methods based on blockchain technology
Hubert Chan et al. Consensus through herding
CN108886466B (zh) 计算机实现的方法及设备
Van Hijfte Blockchain platforms: A look at the underbelly of distributed platforms
KR20200102460A (ko) 고속 파티션 탄력적 블록체인
Li et al. Cryptoeconomics: Economic Mechanisms Behind Blockchains
Maharramov et al. The Dusk network whitepaper
Cherniaeva et al. Game channels: State channels for the gambling industry with built-in PRNG
Van Hijfte Underlying Concepts and Technologies
Calabria et al. Sharing Responsibilities through Distributed Key Generation in the Chirotonia e-Voting Framework
Aggarwal et al. Phases of operation
Barber et al. Bitter to Better—How to Make Bitcoin

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application