Các thuật toán đồng thuận blockchain hiện nay và nguy cơ bị tấn công - P1

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

  1. krone

    krone Moderator Thành viên BQT

    Tham gia: 26/07/16, 03:07 PM
    Bài viết: 261
    Đã được thích: 137
    Điểm thành tích:
    43
    cac thuat toan dong thuan blockchain.png

    Trong vài năm qua, chúng ta đã nghe rất nhiều về cách mà blockchain làm thay đổi nền kinh tế và giao dịch tài chính trên toàn thế giới. Một vài khía cạnh mang tính quyết định của blockchain là tốc độ, ứng dụng và bảo mật. Một số topic thường nói về tốc độ và ứng dụng của blockchain, tuy nhiên điểm tiên quyết không thể thiếu để một “public ledger” có thể hoạt động đó là bảo mật hiệu quả. Và để bảo mật hiệu quả, chúng ta cần đến “Thuật toán đồng thuận” – Consensus Algorithm. Những người quen thuộc với công nghệ blockchain sẽ hiểu rằng các giao dịch trên một ledger (Ledger – Sổ cái) cần được đồng bộ hoá trên toàn mạng blockchain, điều đó để đảm bảo rằng ledger được xác nhận khi những người tham gia đã xác nhận giao dịch. Chúng ta sẽ thảo luận về thuật toán đồng thuận và các cơ chế đồng thuận khác nhau như thế nào?

    Thuật toán đồng thuận – Consensus Algorithm: Cơ sở

    Một thuật toán đồng thuận giống như Proof-of-work như Bitcoin thường yêu cầu các “Minner” giải quyết các bài toán mật mã phức tạp mà phần thưởng sẽ là một số lượng Bitcoin nhất định. Điều quan trọng đó là mỗi block được thêm vào blockchain cần tuân thủ theo một bộ quy tắc đồng thuận. Ví dụ: No double spending (Tức là một lượng tiền tệ không thể chi trả cho 2 giao dịch, như kiểu bạn có 1 đồng nhưng không thể mua 2 cuốn sách giá mỗi cuốn 1 đồng cùng lúc được), mỗi block đều có một định dạng nhất định, mỗi block được khai thác sẽ có một lượng tiền thưởng nhất định cho các minner... Các block không tuân theo quy tắc đồng thuận sẽ bị từ chối khỏi mạng. Sự kết hợp giữa thuật toán đồng thuận và các quy tắc đồng thuận sẽ cung cấp một mạng blockchain mạnh mẽ và đáng tin cậy, an toàn và luôn đảm bảo rằng tất các node trong mạng sẽ đồng thuận về trạng thái của blockchain trên toàn cầu.

    Một giao thức đồng thuận sẽ bao gồm 3 tính năng cơ bản và cũng dựa vào đó để xác định hiệu quả của chính nó.

    [​IMG]

    Không có tập trung vào một điểm trung gian, tức là tất cả các người dùng tham gia vào phát triển mạng blockchain đều phải đồng ý về tính hợp lệ của tất cả những gì sẽ được thêm vào một ledger (Điều này sẽ cần sử dụng một bộ quy tắc giao ước trước). Một thuận toán đồng thuận cần phải được triển khai cho phần lớn các node trong mạng, tức chúng phải sử dụng chung một thuật toán, tuy nhiên, việc thực hiện đồng thuận như thế nào thì vẫn đang được phát triển cho tới thời điểm hiện nay.

    Mục tiêu của giao thức đồng thuận là cho phép các node giao tiếp với nhau và cung cấp một tập hợp chung của các giao dịch đã được xác thực có thể thêm vào ledger. Việc này được thiết kế để ngăn chặn các công cụ khai thác trái phép thêm các giao dịch không đúng hoặc các block không đúng vào mạng blockchain. Cơ chế đồng thuận sẽ phụ thuộc vào loại blockchain, vì vậy chúng ta sẽ thảo luận về một số cơ chế bên dưới đây.

    Proof-of-Work (PoW)

    PoW hiện tại là phổ biến nhất và cũng là một trong những cơ chế đồng thuận mạnh mẽ nhất cho công nghệ Blockchain. Miners phải giải các bài toán mật mã phức tạp về mặt toán học trên mỗi block mới trước khi xác nhận block được thêm vào ledger. Sau khi giải được bài toán, solution sẽ được chuyển tiếp đến các miner khác và được chúng xác minh trước khi chấp nhận block mới được thêm vào các bản sao của ledger. Phương thức PoW định nghĩa rằng mỗi node phải chấp nhận một fork với các bằng chứng công việc cụ thể, vì vậy rất khó có khả năng có 2 node sẽ cạnh tranh nhau tạo ra block tiếp theo như nhau.

    [​IMG]

    Mạng blockchain bảo vệ và chống lại việc “double spending” bằng cách xác minh từng giao dịch với việc sử dụng cơ chế PoW. Giao dịch được hoàn thành và xác nhận bởi miner sau khi xác minh hoàn tất. Nếu ai đó cố gắng sao chép một giao dịch đã hoàn tất, nó sẽ được hiển thị trong mạng là giao dịch giả và sẽ không được chấp nhận. Bạn không thể tạo ra một double spending một khi giao dịch được chấp nhận.

    Proof-of-Stake (PoS)

    PoS là một cách tiếp cận mới của công nghệ blockchain thay thế cho PoW, cơ chế này yêu cầu khả năng tính toán của CPU ít hơn để khai thác. Mặc dù nó cũng là thuật toán đồng thuận và mục đích cuối cùng giống như PoW nhưng sẽ có một chút khác biệt. Đối với PoW, miner được thưởng bằng cách giải quyết các bài toán mật mã phức tạp về mặt toán học và tạo ra block mới, nhưng với PoS, người tạo ra block mới được chọn theo một phương thức xác định phụ thuộc vào mức độ giàu có của người đó (cũng có thể coi giống như việc xác định là chủ tịch hội đồng quản trị của một công ty, nhưng với blockchain nó luân phiên nhau thay đổi liên tục qua mỗi block), điều này cũng có nghĩa là trong PoS không phần thưởng cho mỗi block, vì vậy, các miner sẽ nhận được phần thưởng thông qua phí giao dịch. PoS có những ưu điểm và nhược điểm riêng, PoS cũng khá khó để triển khai thực tế vì quá phức tạp.

    Còn nữa...
     
    Last edited by a moderator: 25/11/19, 04:11 PM
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    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