Upgrade to Pro — share decks privately, control downloads, hide ads and more …

카카오 블록체인 Klaytn의 합의 알고리즘 A to Z

kakao
PRO
December 09, 2022

카카오 블록체인 Klaytn의 합의 알고리즘 A to Z

#DistributedSystem #Consensus #Klaytn

본 세션에서는 블록체인에 관심이 있는 개발자분들을 위해 분산 시스템의 한 분야에서 시작된 합의 알고리즘이 어떻게 블록체인의 핵심 기술이 되었는지 그 과정을 소개합니다.
더 나아가 카카오 블록체인 클레이튼이 추구하는, 실시간 서비스를 블록체인에서 제공하기 위한 고속 합의 알고리즘을 소개하고 클레이튼의 합의 알고리즘 성능 향상을 위해 개선된 부분을 설명합니다.

발표자 : louis.mck
크러스트유니버스의 코어 데브팀에서 클레이튼을 개발하고 있는 루이스입니다. 클레이튼의 강점인 안전성과 성능은 유지하면서 블록체인 플랫폼으로써 확장성과 탈중앙화를 증대시키기 위한 방법들을 고민하고 있습니다.

kakao
PRO

December 09, 2022
Tweet

More Decks by kakao

Other Decks in Programming

Transcript

  1. $PQZSJHIU,BLBP$PSQ"MMSJHIUTSFTFSWFE3FEJTUSJCVUJPOPSQVCMJDEJTQMBZJTOPUQFSNJUUFEXJUIPVUXSJUUFOQFSNJTTJPOGSPN,BLBP
    ஠஠য়࠶۾୓ੋ


    ,MBZUO੄೤੄ঌҊ્ܻ"UP;
    JG LBLBP

    ӣ޹୍MPVJTNDL


    ௼۞झ౟ਬפߡझ

    View Slide

  2. ߊ಴੗ࣗѐ
    Louis


    - 대학과 대학원에서 분산 시스템과 블록체인을 전공


    - Krust Universe, Protocol Part, Core Dev Team


    - Klaytn Consensus Algorithm 개발 및 연구

    View Slide

  3. ೤੄ঌҊ્ܻ੉ۆ


    ࠶۾୓ੋ೤੄ঌҊ્ܻ


    ,MBZUO೤੄ঌҊ્ܻ


    ,MBZUO೤੄ঌҊ્ܻ੄୶റѐࢶߑೱ

    View Slide

  4. ೤੄ঌҊ્ܻ੉ۆ


    ࠶۾୓ੋ೤੄ঌҊ્ܻ


    ,MBZUO೤੄ঌҊ્ܻ


    ,MBZUO೤੄ঌҊ્ܻ੄୶റѐࢶߑೱ

    View Slide

  5. 실생활에서 합의 방법
    형사합의
    선거 재판
    다수결 대화와 보상 판결

    View Slide

  6. 합의 알고리즘이란?
    दझమղ׮ࣻ੄֢٘оೞա੄чਵ۽೤੄ೞӝਤೠޙઁܳಽӝਤೠߑߨ


    ஹೊఠҕ೟੄࠺ਖ਼౯য়ܨೲਊޙઁܳ೧Ѿೞݴߊ੹


    ࠙࢑दझమীࢲп֢٘рؘ੉ఠزӝചޙઁܳബਯ੸ਵ۽೧Ѿೞӝਤ೧ߊ੹

    View Slide

  7. 분산 시스템의 오류 모델과 비잔틴 오류(Byzantine Fault)
    "%#Z[BOUJOF
    0NJTTJPO
    1FSGPSNBODF
    $SBTI
    'BJM
    -
    TUPQ
    ࠺ਖ਼౯য়ܨੌ߈੸ਵ۽दझమղঈ੄੸ੋߑ೧݈ܳೞݴӒ੉৻दझమীࢲߊࢤೡࣻ੓חݽٚয়ܨܳನೣ
    #Z[BOUJOF

    View Slide

  8. The Two General's Problem
    ࢲ۽ڄযઉ੓חف੢ҵ੉೤੄ܳా೧زदী੸ҵਸҕѺ೧ঠ੹ైীࢲथܻ
    ҕѺ
    ҕѺ

    View Slide

  9. The Two General's Problem
    ೠ੢ҵ੉׮ܲ੢ҵীѱҕѺदрਸ೤੄ೞӝਤ೧ݫद૑ܳ੹࣠
    ղੌয়റदҕѺ

    View Slide

  10. The Two General's Problem
    ݫद૑ܳ߉਷੢ҵ਷ݫद૑ܳࠁմ੢ҵҗ׮ܲ౵ߥ੉ۄݫद૑ܳޖद
    ղੌয়റदҕѺ
    ޖद

    View Slide

  11. The Two General's Problem
    ݫद૑ী؀ೠ׹੢ਸৢ߄ܰѱ೮૑݅੸ҵী੄೧઺рীݫद૑о੹׳غ૑ޅೣ
    ղੌয়റदҕѺ
    0,

    View Slide

  12. The Two General's Problem
    ف੢ҵ੉ޛܻ੸ਵ۽ڄযઉ੓׮ݶف੢ҵ਷উ੹ೞѱ೤੄ীب׳ೡࣻহ਺
    ҕѺ
    ҕѺ

    View Slide

  13. 비잔틴 오류 허용(Byzantine fault tolerance, BFT)
    ࠺ਖ਼౯য়ܨೲਊঌҊ્ܻ࠺ਖ਼౯য়ܨо੓؊ۄب੹୓दझమ੉੿࢚੘زೞӝਤೠঌҊ્ܻ


    ୭ୡ੄࠺ਖ਼౯য়ܨೲਊ೤੄ঌҊ્ܻ0SBMNFTTBHFBMHPSJUINCZ-FTMJF-BNQPSU "$.51-4

    tG੉ೞ੄੢ҵٜ਷Gߓन੗ী؀਽ೡࣻ੓חߑߨ਷হ׮


    ݺ੉࢚੄੢ҵ਷ݺ੄ߓन੗о੓؊ۄبݺ੉࢚਷೦࢚೤੄ܳೞৈदझమਸਬ૑
    ҕѺ ҕѺ
    റృ
    റృ
    ҕѺ
    ҕѺ

    View Slide

  14. 5XPHFOFSBMsTQSPCMFN


    زӝ֎౟ਕ௼ۄҊо੿೧ب ف੢ҵ੉૒੽োѾغয੓૑ঋҊ઺рীೠݺ੄੹׳଼݅Ѣ૙݈ਸೠ׮ݶ
    ف੢ҵ਷೤੄ীب׳ೡࣻহ਺


    '-1*NQPTTJCJMJUZ


    ࠺زӝ֎౟ਕ௼ীࢲೞա੄֢٘݅ޙઁоࢤӡࣻ੓؊ۄب ೤੄ޙઁܳಽࣻ੓ח࠙࢑ঌҊ્ܻ਷হ਺
    #Z'JTIFS -ZODIBOE1BUUFSTPO +"$.


    *NQPTTJCJMJUZ

    View Slide

  15. $PSSFDUOFTTQSPQFSUJFTJODPOTFOTVT


    "HSFFNFOU $
    زੌೠчী೤੄


    7BMJEJUZ $
    ୡӝч੉э׮ݶ೤੄റزੌೠѾҗ


    5FSNJOBUJPO $
    ੌ੿दрউীೞա੄чਵ۽೤੄


    $PSSFDUOFTTQSPQFSUJFTJOEJTUSJCVUFEDPNQVUJOH


    4BGFUZୡӝч੉э׮ݶزੌೠчী೤੄റزੌೠѾҗ $BOE$



    -JWFOFTT೦࢚೤੄о૓೯ $



    '-1JNQPTTJCJMJUZী੄ೞݶ࠙࢑दझమীࢲ4BGFUZ৬-JWFOFTTܳݽف݅઒ೞחঌҊ્ܻ਷হ਺
    ೤੄ঌҊ્ܻޙઁ

    View Slide

  16. ೤੄ঌҊ્ܻ੉ۆ


    ࠶۾୓ੋ೤੄ঌҊ્ܻ


    ,MBZUO೤੄ঌҊ્ܻ


    ,MBZUO೤੄ঌҊ્ܻ੄୶റѐࢶߑೱ

    View Slide

  17. ࠙࢑दझమ %JTUSJCVUFE4ZTUFNT

    View Slide

  18. ࠶۾୓ੋ #MPDL$IBJO

    View Slide

  19. ࠶۾୓ੋ #MPDL$IBJO

    View Slide

  20. ࠶۾୓ੋ੄ఎ઺ঔࢿҗైݺࢿ

    View Slide

  21. ࠶۾୓ੋ੄ఎ઺ঔࢿҗైݺࢿ

    View Slide

  22. ࠶۾୓ੋ೤੄ঌҊ્ܻ੄౟ܾۨ݃
    ഛ੢ࢿ
    ఎ઺ঔച
    ࠁউࢿ
    %FDFOUSBMJ[BUJPO

    4DBMBCJMJUZ
    4FDVSJUZ

    View Slide

  23. %FDFOUSBMJ[BUJPO೤੄ীଵৈೞҊर਷ଵৈ੗ח঱ઁٚ૑೤੄ଵৈ੗оؼࣻ੓਺


    4DBMBCJMJUZ౟ے੥࣌੄ࣻо݆ই૑؊ۄبࢿמ੉गহ੉୊ܻਊ۝ਸૐоदఆࣻ੓חמ۱ਸ੄޷


    4FDVSJUZӂೠ੉হחࢎਊ੗աঈ੄੸ੋࢎਊ੗о೤੄җ੿ਸߑ೧ೡࣻহب۾݄਺
    ࠶۾୓ੋ೤੄ঌҊ્ܻ੄౟ܾۨ݃
    4DBMBCJMJUZ
    %FDFOUSBMJ[BUJPO
    4FDVSJUZ

    View Slide

  24. ౟ܾۨ݃ࢎ੉ীࢲпౠࢿਸъઑೞݶ৔ೱਸ߉ח೤੄ঌҊ્ܻ੄ౠࢿ


    4BGFUZೠߣ೤੄ػ࠶۾਷׮द߸҃ؼࣻহਵݴ زੌೠਬബѾҗчਵ۽೤੄


    -JWFOFTT࠶۾ࢤࢿਸਤೠ೤੄җ੿੉Ү଱࢚కীࡅ૑૑ঋ਺


    ࠶۾୓ੋ೤੄ঌҊ્ܻ੄౟ܾۨ݃
    4BGFUZ -JWFOFTT

    View Slide

  25. BC BFT
    PoW PoS
    채굴 투표 지분

    View Slide

  26. 1SPPGPG8PSL 1P8



    ଻ҷ੉ۄҊܻࠛח֢ٜ٘੄੘সਸా೧о੢ݢ੷೧एчਸ଺ח֢٘੄ઁউਵ۽೤੄ܳ૓೯ೞחঌҊ્ܻ


    ੹୓दझమ઺੄֢٘о࠺ਖ਼౯೯ਤܳೞ؊ۄبदझమ੉ਬ૑


    #JUDPJO &UIFSFVN
    ࠶۾୓ੋ೤੄ঌҊ્ܻ

    View Slide

  27. 1SPPGPG4UBLF 1P4



    ࠶۾୓ੋ࢚੄૑࠙ਸӝ߈ਵ۽؀׮ࣻ੄૑࠙ਸо૓֢ٜ٘੉ز੄ೞৈ೤੄ܳ૓೯ೞחঌҊ્ܻ


    ,MBZUO &UIFSFVN١
    ࠶۾୓ੋ೤੄ঌҊ્ܻ

    View Slide

  28. #SPBEDBTU
    -
    CBTFE#'5


    1#'5 *#'5١ઁউ੗੄ઁউী೤੄ଵৈ੗ٜ੉ై಴ܳా೧ز੄ೞח೤੄ঌҊ્ܻ


    ੹୓दझమ઺੄֢٘о࠺ਖ਼౯೯ਤܳೞ؊ۄبदझమਬ૑


    ,MBZUO 5FOEFSNJOU "MHPSBOE "QUPT١
    ࠶۾୓ੋ೤੄ঌҊ્ܻ

    View Slide

  29. ೤੄ঌҊ્ܻ੉ۆ


    ࠶۾୓ੋ೤੄ঌҊ્ܻ


    ,MBZUO೤੄ঌҊ્ܻ


    ,MBZUO೤੄ঌҊ્ܻ੄୶റѐࢶߑೱ

    View Slide

  30. 1SBDUJDBM#Z[BOUJOF'BVMU5PMFSBODF 1#'5
    ܳѐࢶೠ*#'5ঌҊ્ܻਸࢎਊ


    ୡղী೤੄җ੿ਸݽف৮ܐೞৈೠߣ೤੄ػ࠶۾਷ߣࠂغ૑ঋחউ੹ೠ೤੄ঌҊ્ܻ


    *#'5ܳѐࢶೞৈ࠶۾୓ੋ௏যܳѐߊೠ೒ۖಬ ,BLBP,MBZUO +1.PSHBO2VPSVN



    ,MBZUO೤੄ঌҊ્ܻ੉୶ҳೞחߑೱ


    ,MBZUOীࢲपदрࢲ࠺झࢎਊоמೠ೤੄ঌҊ્ܻ


    -PX-BUFODZ౟ے੥࣌੄Ѿҗчਸ೤੄ܳ੉ܞਃ୒੗ীѱࡅܰѱ߈ജೞחঌҊ્ܻ


    "CTPMVUF'JOBMJUZ೤੄ܳઙܐೠ࠶۾਷׮दߣࠂࠛоמೠঌҊ્ܻ


    ,MBZUO೤੄ঌҊ્ܻ

    View Slide

  31. ೤੄ଵৈ੗ࢶ੿ (PWFSOBODF$PVODJMBOE$PNNJUUFF4UBLJOHBOE(JOJDPFGGJDJFOU



    ೤੄ز੘җ੿


    ࠶۾ઁউ੗ࢶ੿ 1SPQPTFS4FMFDUJPO



    ࠶۾ઁউ੗Ү୓ 3PVOE$IBOHF



    উ੿੸ੋ೤੄ܳਤೠ-PDLJOHNFDIBOJTN


    ,MBZUO೤੄ঌҊ્ܻ

    View Slide

  32. ೤੄ଵৈ੗ࢶ੿(PWFSOBODF$PVODJMBOE$PNNJUUFF
    (PWFSOBODF$PVODJM ($



    $PNNJUUFF


    %FNPUFE

    View Slide

  33. ೤੄ଵৈ੗ࢶ੿4UBLJOHBOE(JOJDPFGGJDJFOU
    ੋҳ࠙ನ
    ࣗٙ࠙ನ
    -PSFO[DVSWF




    ٙ
    Ӑ

    (JOJJOEFY
    ,MBZUO($੄पઁ4UBLJOH࠺ਯ ૑פ҅ࣻ (JOJDPFGGJDJFOU

    View Slide

  34. ೤੄ଵৈ੗ࢶ੿4UBLJOHBOE(JOJDPFGGJDJFOU
    3%
    3%
    13%
    27%
    54%
    ઺ঔചػ4UBLJOH࠺ਯ
    8%
    8%
    19%
    27%
    39%
    ࠛӐഋਸੌࠗ೧ࣗೠ4UBLJOH࠺ਯ
    ૑פ҅ࣻ੸ਊറ

    View Slide

  35. ࠶۾ઁউ੗ࢶ੿1SPQPTFS4FMFDUJPO
    (PWFSOBODF$PVODJM


    $PNNJUUFF


    4FMFDUJPO*OUFSWBM
    1SPQPTBM" 1SPQPTFS$ 1SPQPTFS# 1SPQPTFS$ 1SPQPTFS#
    ૑פ҅ࣻ੸ਊറ4UBLJOHনਸӝ߈ਵ۽ےؒೞѱ࠶۾߹1SPQPTFSࢶ੿
    #MPDL #MPDL #MPDL #MPDL #MPDL
    %FNPUFE

    View Slide

  36. ೤੄җ੿਷1SF
    -
    1SFQBSF 1SFQBSF $PNNJUױ҅۽ҳࢿ


    1SF
    -
    1SFQBSFױ҅࠶۾ઁউ੗о࢜۽਍࠶۾ਸઁউ


    1SFQBSFױ҅ݽ֢ٚ٘ীѱز੄੄ࢎܳ಴അ߂׮֢ܲ٘੄ز੄ৈࠗഛੋ


    $PNNJUױ҅୭ઙഛ੿ਸਤ೧ೠߣ؊ز੄੄ࢎ಴അ߂ഛੋ
    ೤੄ز੘җ੿
    1SPQPTFS
    1BSUJDJQBOU
    1BSUJDJQBOU
    1BSUJDJQBOU
    1SF
    -
    QSFQBSF 1SFQBSF $PNNJU

    View Slide

  37. ೤੄җ੿਷1SF
    -
    1SFQBSF 1SFQBSF $PNNJUױ҅۽ҳࢿ


    1SF
    -
    1SFQBSFױ҅࠶۾ઁউ੗о࢜۽਍࠶۾ਸઁউ


    1SFQBSFױ҅ݽ֢ٚ٘ীѱز੄੄ࢎܳ಴അ߂׮֢ܲ٘੄ز੄ৈࠗഛੋ


    $PNNJUױ҅୭ઙഛ੿ਸਤ೧ೠߣ؊ز੄੄ࢎ಴അ߂ഛੋ
    ೤੄ز੘җ੿
    1SPQPTFS
    1BSUJDJQBOU
    1BSUJDJQBOU
    1BSUJDJQBOU
    1SF
    -
    QSFQBSF 1SFQBSF $PNNJU

    View Slide

  38. ೤੄җ੿਷1SF
    -
    1SFQBSF 1SFQBSF $PNNJUױ҅۽ҳࢿ


    1SF
    -
    1SFQBSFױ҅࠶۾ઁউ੗о࢜۽਍࠶۾ਸઁউ


    1SFQBSFױ҅ݽ֢ٚ٘ীѱز੄੄ࢎܳ಴അ߂׮֢ܲ٘੄ز੄ৈࠗഛੋ


    $PNNJUױ҅୭ઙഛ੿ਸਤ೧ೠߣ؊ز੄੄ࢎ಴അ߂ഛੋ
    ೤੄ز੘җ੿
    1SPQPTFS
    1BSUJDJQBOU
    1BSUJDJQBOU
    1BSUJDJQBOU
    1SF
    -
    QSFQBSF 1SFQBSF $PNNJU

    View Slide

  39. ࠶۾೤੄ܳݥ୶૑ঋҊ૓೯ೞӝਤ೧࢜۽਍࠶۾ઁউ੗ঌҊ્ܻ୶о -JWFOFTTъച



    അ੤࠶۾ী؀ೠ೤੄оੌ੿दр T
    উী૓೯غ૑ঋח׮ݶ3PVOE$IBOHFҗ੿ਸ૓೯
    ࠶۾ઁউ੗Ү୓3PVOE$IBOHF
    1SPQPTFS
    1BSUJDJQBOU
    1BSUJDJQBOU
    1BSUJDJQBOU
    1SF
    -
    QSFQBSF 1SFQBSF$PNNJU 3PVOE$IBOHF
    /FX1SPQPTFS
    1SF
    -
    QSFQBSF

    View Slide

  40. ೤੄઺࠶۾ઁউ੗о߸҃ؼٸ 4BGFUZܳࠁ੢ೞӝਤ೧-PDLJOHNFDIBOJTNਸ୶о


    ੉࢚੄೤੄ݫद૑ܳ߉਷֢٘חઁউػ࠶۾ী-PDLFE࢚కоؽ


    -PDLFE֢٘חઁউ੗߸҃੉ੌযա࢜۽ઁউػ࠶۾੄ഋకо׮ܰ׮ݶ೤੄ܳ૓೯ೞ૑ঋ਺
    -PDLJOH.FDIBOJTN
    1SPQPTFS
    1BSUJDJQBOU
    1BSUJDJQBOU
    1BSUJDJQBOU
    1SF
    -
    QSFQBSF 1SFQBSF $PNNJU

    View Slide

  41. ,MBZUO೤੄ঌҊ્ܻ
    Avg Transaction
    Latency(sec)
    0
    5.5
    11
    Klaytn NEAR DOT AVAX SOL Polygon
    Finality
    Klaytn Absolute
    Ethereum Probabilistic
    Solana Probabilistic
    Algorand Probabilistic
    ,MBZUO೤੄ঌҊ્ܻ੉୶ҳೞחߑೱ


    ,MBZUOীࢲपदрࢲ࠺झࢎਊоמೠ೤੄ঌҊ્ܻ


    -PXMBUFODZ೤੄ܳ੉ܞ౟ے੥࣌੄Ѿҗчਸਃ୒੗ীѱࡅܰѱ߈ജೞחঌҊ્ܻ


    "CTPMVUF'JOBMJUZ೤੄ܳઙܐೠ࠶۾਷׮दߣࠂࠛоמೠঌҊ્ܻ


    View Slide

  42. ೤੄ঌҊ્ܻ੉ۆ


    ࠶۾୓ੋ೤੄ঌҊ્ܻ


    ,MBZUO೤੄ঌҊ્ܻ


    ,MBZUO೤੄ঌҊ્ܻ੄୶റѐࢶߑೱ

    View Slide

  43. ,MBZUO೤੄ঌҊ્ܻ੄୶റѐࢶߑೱ


    ૑৉੸ೠ҅ӓࠂ


    ࠶۾ઁউ੗ঌҊ્ܻࣻ੿


    ࠶۾੹౵ࠗೞхࣗ 0WFSMBQQJOH



    ࠛ೙ਃೠݫद૑ࠂ੟بܳхࣗ


    ೤੄җ੿1JQFMJOJOHোҳѐߊ


    ఎ઺ঔࢿഛࠁ


    ೤੄ଵৈ֢٘ࣻૐо৬п֢٘੄؀಴ࢿૐ؀
    1SPQPTFS
    1BSUJDJQBOU
    1BSUJDJQBOU
    1BSUJDJQBOU
    1SF
    -
    QSFQBSF 1SFQBSF $PNNJU
    0WFSMBQQJOH
    1JQFMJOJOH
    1IBTF 1IBTF 1IBTF
    1IBTF 1IBTF 1IBTF
    1IBTF 1IBTF 1IBTF

    View Slide

  44. ௿ۨ੉ౡী؀೧؊ੜঌҊर׮ݶ ௼۞झ౟ਬפߡझח૑Ә଻ਊ઺

    View Slide