Guide to Consensus Algorithms (Blockchain) - P1

Thảo luận trong 'ACM/Programming' bắt đầu bởi krone, 09/05/18, 10:05 PM.

  1. krone

    krone Moderator Thành viên BQT

    Tham gia: 26/07/16, 03:07 PM
    Bài viết: 236
    Đã được thích: 119
    Điểm thành tích:
    43
    Nếu mọi người đều biết rằng, đứng đằng sau những đồng tiền ảo trên Internet hiện tại đều là những thuật toán đồng thuận, triển khai những thuật toán đó vào technical blockchain là cả một vấn đề cần đến những bộ óc giỏi.

    Bài viết này không thiên về việc giải thích blockchain là gì, mà chỉ giới thiệu về những thuật toán đồng thuận, thuật toán tạo ra giá trị cho những đồng tiền (coin) cryptocurrencies.

    Những đồng tiền đem lại nhiều lợi ích, có nhiều tính hữu ích và giải quyết được nhiều vấn đề trong nền kinh tế tiền tệ truyền thống thì đứng đằng sau nó là một số các thuật toán về tính “Đồng thuận”. Tính đồng thuận được nhắc tới ở đây nói về một yếu tố là mọi người đều công nhận giá trị của đồng tiền đó hoặc đồng thuận để sử dụng giá trị của đồng tiền đó. Không có thuận toán đồng thuận nào là hoàn hảo, tuy nhiên mỗi loại thuận toán đồng thuận đều có một hoặc nhiều điểm mạnh riêng.

    Trong thế giới tiền ảo, các thuật toán đồng thuận tồn tại hoặc xuất hiện để ngăn chặn một vấn đề gọi là “Double spending” (Tôi sẽ không giải thích chi tiết trong bài viết này). Dưới đây là tóm tắt nhanh về một số thuật toán đồng thuận phổ biến nhất cho đến nay, từ Blockchain đến DAGs và mọi thứ xung quanh nó.

    Proof-of-work (PoW) – The OG Consensus
    [​IMG]


    - Một số loại coin sử dụng thuật toán PoW: Bitcoin, Ethereum(PoS trong tương lai), LiteCoin, DogeCoin (Và đa số coin khác).

    - Ưu điểm: Biết chắc chắn là hoạt động

    - Nhược điểm: Chậm, và tốn nhiều tài nguyên tự nhiên(điện, các khoáng chất sản xuất thiết bị,…)

    PoW từng là thuật toán đồng thuận đầu tiên, được phát minh bởi Satoshi Nakamoto để sử dụng trong Biblockchain blockchain, như chúng ta thấy các đồng tiền sử dụng PoW đều yêu cầu số lượng thiết bị lớn và tiêu thụ điện năng kinh khủng trên thế giới như chúng ta thấy qua nhiều bài viết trên nhiều trang tin tức hiện nay. Vì vậy, càng ngày, một số đồng tiền bắt đầu cải tiến, Ethereum cũng bắt đầu nghiên cứu chuyển đổi để thoát ra khỏi thuật toán PoW, từ đó mang lại hiệu quả kinh tế và giá trị cho đồng tiền hơn.

    Với thuật toán PoW, các miner liên tục giải quyết các mã hash để tạo ra các block. PoW sẽ hoạt động trên hệ thống có chuỗi dài nhất (Mình sẽ viết một bài viết nói rõ hơn về vấn đề này). PoW hiện tại cũng có thể giải quyết vấn đề tấn công 51%.


    Proof-of-Stake (PoS) – Mới xuất hiện trên blockchain
    [​IMG]

    - Một số triển khai với PoS: Decred, Ethereum(trong tương lai), Peercoin

    - Ưu điểm: khó tấn công hơn, tăng tính phân tán, sử dụng năng lượng có hiệu quả.

    - Nhược điểm: chưa phát triển.

    Với PoS, các block không được khai thác bởi các miner, nhưng được chọn lựa để tạo ra khối bởi những minters, chúng đặt các token mà chúng sở hữu để đặt cược cho khối mà nó chọn là hợp lệ.

    Trong trường hợp fork, các minter sẽ đặt token mà họ sở hữu để biết rằng chain nào sẽ hợp lệ.


    Delegated Proof-of-Stake ( DpoS ) – Bầu chọn xác thực
    [​IMG]

    - Một số các coin đã triển khai: Steemit, EOS, BitShares.

    - Ưu điểm: giao dịch rẻ, có thể mở rộng, tiết kiệm năng lượng.

    - Nhược điểm: tập trung.


    Trong DpoS, người giữ token không vote cho tính hợp lệ của block, nhưng lại vote để chọn các đại biểu thực hiện việc confirm trên nhân danh họ. Thường có khoảng 21 đến 100 đại biểu được bầu trong một hệ thống DPoS. Các đại biểu được xáo trộn định kỳ và đưa ra một đơn đặt hàng để phân phối các khối của chúng. Có ít đại biểu cho phép chúng tự tổ chức một cách hiệu quả và tạo các khoảng thời gian được chỉ định cho mỗi đại biểu tạo ra block của chúng.

    Nếu các đại biểu liên tục bỏ lỡ các khối của chúng hoặc tạo ra các giao dịch không hợp lệ, các người bỏ phiếu sẽ vote và thay thế chúng bằng một đại biểu tốt hơn.

    Trong DPoS, các miner có thể cộng tác để tạo ra các khối thay vì cạnh tranh như trong PoW và PoS.


    Proof-of-Authority (PoA) – Tin tưởng tất cả

    [​IMG]

    - Một số đã triển khai: POA.network, Ethereum Kovan Testnet

    - Ưu điểm: lưu lượng lớn, dễ mở rộng.

    - Nhược điểm: hệ thống tập trung.

    PoA là một thuật toán đồng thuận mà trong đó các giao dịch sẽ được xác thực bởi các tài khoản được chấp thuận, giống như quản trị viên của hệ thống. Các tài khoản này là các node nhận được sự chứng nhận. PoA có lưu lượng cao và được tối ưu hóa cho các mạng riêng. Bạn sẽ không thấy PoA chạy trên chuỗi công cộng do bản chất tập trung của nó.


    Phần tiếp theo mình sẽ nói về DAGs và BFT.
     
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan