런던 밋업 후기 - Aggelos Kiyaias 교수 강의 요약 및 비디오 (2018. 6. 11)

6 월에 있었던 런던 밋업에는 스페셜 게스트로 IOHK의 수석 과학자인 Aggelos Kiayias가 참석해 강의를 진행했습니다. 그리고 카르다노 재단 (Cardano Foundation)의 Tom Kelly는 밋업 참석자들에게 애프터 드링크 장소를 공지하는 것을 잊지 않았습니다😉 밋업을 위해 장소를 제공해주신 UCL 및 London Blackchain Labs에 매우 감사드립니다.

image

Aggelos Kiayias 교수의 프레젠테이션은 ‘Ouroboros PoS Research : 프로토콜 디자인, 스테이크 풀, 인센티브, 사이드 체인’을 주제로 진행되었습니다. IOHK의 Dominic도 프리젠 테이션을 녹음하기 위해 모임에 참석했으며, IOHK의 YouTube에 게시 될 예정입니다.

image

image

image

강력한 트랜잭션 원장

  • 이는 Bitcoin 프로토콜이 직면한 문제입니다.
  • 해결을 위해 문제를 완전히 이해해야 하며 이는 Aggelos의 연구의 일부입니다.
  • Garay와 Leonardos와 함께한 연구에서 "견고한 거래 원장"에 대한 최초의 공식적인 정의가 내려졌습니다. (관련 논문: https://eprint.iacr.org/2014/765)
  • 이에 대한 후속작업으로 속성 정의, 부분 동기화, 시뮬레이션 기반 정의 및 등이 있습니다.
  • Aggelos는 이 문제를 직면한 다른 사람들을 위해 공식적인 정의와 프레임웤을 갖는 것이 중요하다고 언급했습니다.
  • RBL에는 두 가지 속성이 있습니다.
    • 지속성 : 트랜잭션이 원장에서 유지되고 변하지 않음
    • 실시간(liveness) : 새로운 거래가 기록되어 장부에 통합됨

PoS에 대한 설명

  • Bitcoin에서 다음 블록을 생성하는 것은 선거와 같습니다.
  • 채굴자는 해싱 파워에 비례하는 확률로 선출됩니다.
  • 반면 PoS 시스템의 단계는 다음과 같습니다.
    • 해싱 파워가 아닌 스테이크 (가상 리소스) 사용
    • 채굴자는 스테이크홀더로 대체되며, 이는 원장에 기록됨
  • 블록을 생산할 자격이있는 다음 "채굴자"를 선출하기 위해 현재의 지분을 고려한 무작위의 프로세스를 사용함

Pure PoS Approaches

  • PoS 시스템이 연구 혹은 시스템 상에 제안되는 방식에는 여러 가지가 있으며 이를 구분하는 것은 중요합니다.
  1. PoS blockchains =이 프로토콜은 해시 체인과 가장 긴 체인 규칙의 일부 형태를 사용합니다. 이는 프로토콜이 Bitcoin 프로토콜을 어느 정도 모방 함을 의미합니다. 예시 : Ouroboros, Snow White, NXT
  2. PoS BFT = 고전 비잔틴 오류 허용 프로토콜을 업그레이드하여 PoS 설정에서 작동하는 방식입니다. 예시 : Tendermin, Casper

비트코인 통설

  • “Bitcoin의 통설적인 논리에 따르면 RTL 프로토콜을 작성하는 것은 불가능합니다.” 라는 주장에 대해, Aggelos는 두가지 논조를 들어 이를 설명했습니다.

    1. 비용이 들지 않는 시뮬레이션(costless simulation), 2. 장거리 공격 (long range attack)
  • 비용없는 시뮬레이션 = 블록을 생산하는 데에 물리적 자원이 사용되지 않으므로 본질적으로 비용없이 대체 거래 내역을 구축 할 수 있습니다
    (@aeropirates 주 : RTL은 register transfer level로, 하드웨어의 논리 신호 흐름 제어를 말합니다. 비트코인에도 데이터를 작성하고 전송하는 논리 흐름이 코드로 짜여있는데, 그 논리가 RTL 프로토콜과는 맞지 않아 하드웨어의 논리흐름 제어를 할 수없다는 뜻입니다. 비트코인에 시뮬레이션, 원거리 공격등의 해커 레벨의 시도가 가능한가? 라는 보안 관련 논의에 대한 답인 것으로 보입니다. 실질적으로 비트코인의 통신을 하는 전용 하드웨어가 따로 없으므로 그것은 불가능하다는 뜻)

  • 비트코인을 보자면, 한 버전의 이력을 확장할 때 커밋하고 제출된 데이터의 각각 의 버전에 대한 해싱파워도 소모됩니다.
    (@aeropirates 주 : 내가 확장한 블록 데이터 원장의 버전을 다른 체인에 존재하는 같은 원장의 내용과 취함 및 검증하기 위한 연산에 쓰는 해시파워도 소모해야한다는 내용이네요)

  • ‘스테이크가 되지 않는다’는 PoS 프로토콜의 결함으로 이런 질문이 제기될 수 있습니다. 이 프로토콜을 무력화 하거나 이 문제를 완화 할 수 있는 방법이 있는가?

  • 두 번째 논쟁은 장거리 공격에 대한 것입니다.

  • 피해자는 최신의 정보없이 네트워크상의 2 개의 대체 이력을 판별하려고 시도합니다.

  • 오랜 인터벌을 겪은 후, 혹은 혹은 새로운 노드로서 네트워크에 참여하시는 경우에는 부트스트랩 문제에 직면하게 됩니다.
    (@aeropirates 주: bootstrap은 어떤 소프트웨어가 구동되기까지 필요한 준비과정을 자동화가 패키징해서 일괄적으로 수행하게 하도록 하는 작업입니다. 오랫동안 블록체인에 기여하지 않았을때, 새로운 노드로 블록체인에 참여할 때, 실질적인 블록 참여를 하기 바로 전까지의 일련의 준비동작 과정이 만만치않다는 뜻입니다.)

  • 새로운 노드 (또는 장기간 동기화되지 않은 노드)가 블록 체인과 어떻게 동기화 되는지,

  • 이 새로운 노드가 "올바른"기록을 선택하는 방법 (대부분의 사람들이나 네트워크의 대다수가 따르게 되는 노드가 되는 것)은 무엇인지의 문제가 있을 수 있습니다.

  • 우리는 제 3 신뢰기관을 통해 어느 히스토리가 옳은지를 판별하는 방법을 원하지 않습니다.

  • PoW 시스템에서, 대립되는 버전은 실질적으로 (데이터의) 길이가 더 짧을 것입니다.
    (@aeropirates 주 : 비교 검증할 여러버전의 원장에서 정직하지 않은 노드가 생산하는 원장은 대체로 실질적인 트랜잭션 데이터의 길이가 길지 않으므로 그런 특성을 이용해서 필터링할 수있다는 것입니다.)

  • 따라서 새로운 노드는 누적 (누적 된 작업량)에 기반한 올바른 내역을 파악할 수 있습니다.

Dynamic Availability

  • Kiayias 교수와 연구팀에 의하면 Dynamic Availability는 실제 배치 된 블록 체인 프로토콜이 작동하는 것으로 가정되는 분산 환경을 자연스럽게 포착합니다. 이 ‘환경’은 아래와 같습니다.
    • 파티연합(party)은 자유롭게 가입하고 떠난다.
    • 시간이 지남에 따라 온라인 / 오프라인 파티 수가 동적으로 변경되거나 클록 동기화 네트워크 연결이 끊어짐
    • 프로토콜에는 참여 수준에 대한 선험적 지식이 없습니다.

PoS 질문

  • 순수한 PoS 프로토콜을 동적 가용성 설정에서 작동시켜서 :
    • 지분 50 % 미만에서 이 프로토콜이 지속되고 활동적이게 할 수 있습니까?
    • 프로토콜을 따르는 것이 곧 파티연합의 인센티브를 추구하는 것일 수 있습니까?
  • Ouroboros 연구팀은 이 문제들을 다루기 시작했습니다,

Ouroboros PoS

  • Ouroboros PoS는 Crypto 2017에서 처음 발표되었습니다.
  • 무엇이 Ouroboros 를 특별하게 만드는가?
  • Ouroboros는 프로토콜이 RTL의 기능을 실현한다는 목적을 달성했다는 증거와 함께 PoS 블록 체인을 개발하기 시작했습니다.
  • 증명과 프로토콜은 동시에 진행되고 있으며 PoW 프로토콜의 대체물이 될 수 있다는 주장을 제시하고자 합니다.
  • Ouroboros에는 다음과 같은 기능이 포함되었습니다.
    • 랜덤 비컨 생성 프로세스
    • 준 적응 형 보안 (semi-adaptive security)
  • Eurocrypt 2018에서는 Ouroboros Praos가 발표되었습다.
  • Praos는 적응형 보안 및 더 빠른 비컨 생성의 목적을 달성했습니다.
  • Ouroboros Genesis가 약 1 개월 전에 출시되었습니다.
  • 제네시스에는 연합파티가 제네시스로부터 부트 스트랩을 할 수있는 기능이 포함되어있어 동적 가용성 문제를 해결합니다.

다음으로 Kiayias 교수는 IOHK에서 시행중인 Ouroboros활용, 적용 연구에 대해서 소개했습니다.

스테이크 풀

  • PoS는 스테이크 홀더가 온라인 상태로 프로토콜 실행에 관여하도록 요구합니다
  • 프로토콜 참가자와 스테이크 홀더를 분리하는 Bitcoin 또는 PoW 프로토콜과 비교하면
  • 이것은 일부 사람들에게는 상식 일지라도, 실질적으로 코인을 소유 한 모든 사람이 이 수준에 참여하기를 기대할 수는 없습니다.
  • 어떻게 대응할 것인가? 스테이크 홀더들이 다른 사람들을 대표 할 수 있도록 스테이크 풀을 허용한다.
  • 이를 인지 하지 못하면 관심있는 스테이크 홀더들이 적은 비율로만 참여하는 상황에 직면하게되며, 이는 기능적인 시스템으로는 충분하지 않습니다

image

  • 주소와 관련된 키의 이중성을 확인하십시오 (이것은 PoS의 고유한 특징입니다.)

  • 다음과 같은 이중성이 있습니다 : 귀하가 지출하고자하는 코인과, 프로토콜에 참여하기 위해 가지고있는 스테이크

  • 암호화의 관점으로 말하면, 이러한 기능에 대해 동일한 키를 사용할 수 있지만 스테이킹 키는 “Hot” 해야만 한다는 단점이 있습니다. (즉, 스테이킹 키는 페이퍼 월렛에 저장할 수 없습니다.)

  • 추가적으로, 스테이킹 키에는 3 가지 기능이 있습니다 :

    • 기본 주소 = 표준 주소입니다. 기본 주소를 갖는 이점은 개인 정보 보호를위한 것입니다. 같은 지갑에있는 두 개의 주소는 구별 할 수 없으며 높은 수준의 프라이버시를 보장합니다. 그러나 스테킹시 사용자의 노력을 더 필요로 한다는 단점이 있습니다.
    • 포인터 주소 =는 독립적 인 스테이킹 키가 없습니다. 대신 ‘포인팅’ 하고 그 대상을 차용합니다. 포인터 주소는 포인터 주소를 포함할 수 있는 기본 주소에서 정상 작동 모드에 사용되며, 따라서 단일 주소 스테이킹 키만을 필요로합니다.
    • 엔터 프라이즈 주소 = 스테이킹 키를 갖지 않습니다. 이 주소는 거래소 나 비즈니스에서만 잠재적으로 사용됩니다.

스테이킹 풀 만들기

  • 스테이킹 풀 인증서를 사용해 풀의 이름을 지정하고, 스테이킹 키에 의해 서명 된 회원 관리 방법 및 기능 등을 결정합니다.
  • 서명은 기본 주소에서 포인터를 사용하거나 혹은 기본 주소 자체에서 가져올 수 있습니다
  • 각 기본 주소에는 연관된 스테이크가 있습니다.
  • 증서에 따르는 지분량은 모든 스테이크의 총합과 같습니다.

스테이크 풀에 참여하기

  • 스테이킹 키를 사용하여 해당 스테이킹 풀을 참조하는 위임 인증서에 서명합니다.
  • 스테이크 풀은 자신의 스테이크 + 위임된 스테이크로 구성됩니다
  • 그 다음에 스테이크 풀은 하나의 개체로서 노드를 운영합니다.

스테이크 풀의 당면과제들

  • 한 가지 과제는 이해 관계자가 단일 또는 소수의 풀로 집합하는 것을 방지하는 것입니다. 이는 시스템의 중앙집권화를 초래합니다.
  • 두 번째 과제는 Sybil 공격입니다. 등록된 여러 풀들이 실제로는 하나의 액터에 의해 제어되는 경우를 뜻합니다. 이는 여러 개체들이 산재된 분산화로 보이면서도 실제로는 단일 주체에 의해 중앙집중화 되는 문제를 야기합니다.

인센티브

  • 스테이크 풀 유지를 위한 아래의 작업들을 유인하기 위한 인센티브가 필요합니다.

    • 기본 프로토콜 작업 수행을 위한 온라인 상태 유지
    • 스테이크 풀 멤버가 슬롯에 선출 되는 때를 확인하고 이를 대신해 블록을 발행하는 일
    • 트랜잭션을 수집하여 다른 노트와 중계하는 일
  • 이 연구는 이에 해당하는 과업을 수행하는 당자들에게 프로토콜을 따르도록 장려하는 인센티브 체계를 설계하고있습니다.

  • Bitcoin의 경우 새로 발생한 비트코인과, 당시의 블록에서 발생하는 거래 수수료를 통해 채굴자에게 보상을 시행합니다.

  • 이 매커니즘에 의 정당성에 대해서는 논쟁이 있습니다.

  • 이기적인 채굴 공격과 같은 Bitcoin의 프로토콜에 문제가 발생할 수 있습니다.

  • 즉, 이기적인 채굴 공격은 이기적인 채굴자가 단기 이익을 위해 블록을 발행을 보류하는 것을 의미합니다.

  • 바람직한 보상 체계의 = 참여자들이 프로토콜을 따르는 것이 가장 합리적인 선택이 될 수 있는 보상체계여야 합니다.

  • Casper와 같이 보상 대신에 페널티를 부과하는 방법도 있을 수 있습니다.

  • Cardano 프로토콜의 보상 체계는 에포크 기반입니다.

  • 슬롯은 20 초 동안 지속되며, 하나의 에포크는 21,600 슬롯을 포함하고 5 일 동안 지속되고 5일마다 보상이 주어집니다.

  • 보상금은 예비금(140 억 Ada) 및 거래 수수료의 두가지를 통해 충당될 수 있습니다.

  • 거래 수수료에 대한 자세한 내용은 포럼의[공유] PoS 위임 및 인센티브 (Lars Brunjes) 프레젠테이션 요약 을 참고하시기 바랍니다.

  • 이 체계는 보상 배당을 위해 풀 리더와 회원에게 자동적으로 보상할 수 있습니다. (계좌 / UTXO의 크레딧 활용)

    • 풀 리더는 비용 및 이익 마진을 선언합니다
    • 풀 구성원이 그들의 지분을 풀에 위임합니다.
    • 분배 기능은 비용, 마진, 스테이크를 고려하여 풀의 보상을 분할합니다
  • Aggelos와 그의 연구 팀은 스테이크 풀의 안정적인 분배를 달성하는 방법을 연구하기 위해 많은 시뮬레이션과 분석을 수행했습니다

사이드체인

  • 사이드 체인은 IOHK에서 진행중인 또 다른 연구 분야입니다.
  • 사이드 체인은 블록 체인 사이의 통신 채널입니다.
  • IOHK는 사이드 체인 참여 독립성을 달성하고자 합니다.
  • Cardano 내의 1 세대 사이드체인 시스템은 “Star Stucture” 입니다.
  • 메인 체인은 세틀먼트 레이어에 있습니다.
  • 사이드체인은 컴퓨테이션 레이어와 같은 다양한 연산을 지원합니다.
  • KEVM, IELE, Plutus 등 여러 컴퓨테이셔널 계층이 공존 할 수 있습니다.
  • Ouroboros의 사이드 체인은 Threshold Multisignatures라고하는 기초 암호화에 의존합니다.
  • 사이드 체인의 스테이크 홀더들은 간단한 신호를 주는 것으로 메인 체인 관리자에게 사이드 체인의 상태를 간결하게 알릴 수 있습니다

내용이 마음에 드셨나요? 그렇다면 하단의 좋아요를, 코멘트나 질문사항은 아래 댓글로 남겨주세요!

1 Like