[Tài liệu] Kiến trúc blockchain mới EOS.IO - Phần 5

Thảo luận trong 'EOS' bắt đầu bởi Cờ ríp tô cơ rừn si, 21/2/18. Trả lời: 0 Xem: 1,349.

  1. Cờ ríp tô cơ rừn si
    Phần mềm EOS.IO sử dụng thuật toán đồng thuận phân tán duy nhất có khả năng đáp ứng các yêu cầu về hiệu suất của các ứng dụng trên nền tảng blockchain, Khai thác theo cổ phần uỷ viên (DPOS). Theo thuật toán này, những người nắm giữ các token trên hệ thống nền tảng blockchain của EOS.IO có thể lựa chọn các uỷ viên xây dựng block thông qua một hệ thống bỏ phiếu liên tục phê duyệt và bất cứ ai cũng có thể được lựa chọn để tham gia vào quá trình xây dựng các khối block và sẽ có cơ hội tạo ra khối lượng tỷ lệ thuận với tổng số phiếu bầu họ đã nhận được.

    Nội dung seri tài liệu
    Kiến trúc blockchain mới EOS.IO - Phần 1
    Kiến trúc blockchain mới EOS.IO - Phần 2
    Kiến trúc blockchain mới EOS.IO - Phần 3
    Kiến trúc blockchain mới EOS.IO - Phần 4

    eos-5.jpg
    Nguồn: https://goo.gl/1es8Vo

    D. Tài khoản
    (tiếp)
    D6. Đánh giá song song các quyền

    Quá trình đánh giá quyền là "read-only" và thay đổi đối với các quyền được thực hiện bởi các giao dịch sẽ không có hiệu lực cho đến khi kết thúc chu trình tạo khối block. Điều này có nghĩa là tất cả các khóa và quy trình thẩm định quyền cho tất cả các giao dịch có thể được thực hiện song song. Hơn nữa, điều này có nghĩa là việc xác nhận được thực hiện nhanh chóng mà không cần khởi động các chu trình tốn kém về mặt logic. Cuối cùng, điều đó có ý nghĩa khi các quyền giao dịch có thể được đánh giá và các giao dịch đang chờ được cấp phép không cần phải đánh giá lại khi chúng được áp dụng.

    Tất cả mọi thứ được xem xét, xác minh cho phép nó đại diện cho một tỷ lệ đáng kể các tính toán cần thiết để xác nhận các giao dịch. Điều đó làm cho quá trình này chỉ có thể đọc song song và đơn giản hoá quy trình cho phép tăng hiệu suất đáng kể.

    Khi phát lại blockchain để tạo lại trạng thái xác định từ nhật ký của các thông điệp thì không cần phải đánh giá lại quyền truy cập. Thực tế là một giao dịch trong một khối block được đánh giá là tốt thì có thể bỏ qua bước này. Điều này làm giảm đáng kể nguồn lực tính toán liên quan đến việc phát lại một blockchain đang hình thành.

    D7. Thông điệp bắt buộc Delay


    Thời gian là một thành phần quan trọng của an ninh thông tin. Trong hầu hết các trường hợp, không thể biết được khóa cá nhân đã bị đánh cắp cho đến khi nó đã được sử dụng. An ninh dựa trên thời gian thậm chí còn quan trọng hơn khi mọi người có các ứng dụng yêu cầu khóa được giữ trên các máy tính kết nối Internet để sử dụng hàng ngày. Phần mềm EOS.IO cho phép các nhà phát triển ứng dụng xác định các thông điệp nhất định phải chờ một khoảng thời gian tối thiểu sau khi được gộp trong khối block trước khi chúng có thể được áp dụng. Trong thời gian này chúng có thể bị hủy bỏ.

    Người dùng có thể nhận thông báo qua email hoặc tin nhắn văn bản khi một trong những tin nhắn này được phát tán. Nếu họ không ủy quyền, thì họ có thể sử dụng quy trình khôi phục tài khoản để khôi phục tài khoản của họ và rút lại thông báo.

    EOSIO Documentation.png
    Yêu cầu về delay phụ thuộc vào mức độ nhạy cảm của một hoạt động. Trả tiền cho cà phê có thể không có sự chậm trễ và không thể đảo ngược được trong vài giây, trong khi mua nhà có thể cần tới 72 giờ để quyết toán. Chuyển toàn bộ tài khoản sang mô hình kiểm soát mới có thể mất tối đa 30 ngày. Thời gian delay chính xác được chọn phụ thuộc vào các nhà phát triển ứng dụng và người dùng.

    D8. Phục hồi từ các khoá bị mất

    Phần mềm EOS.IO cung cấp cho người dùng tính năng khôi phục lại quyền kiểm soát tài khoản của họ khi các khoá bảo mật của họ bị đánh cắp. Chủ sở hữu tài khoản có thể sử dụng bất kỳ khóa chủ sở hữu nào với điều kiện tài khoản hoạt động trong 30 ngày, cùng với sự đồng ý của đối tác khôi phục tài khoản được chỉ định của họ để đặt lại khóa chủ sở hữu trong tài khoản của họ. Đối tác khôi phục tài khoản không thể đặt lại quyền kiểm soát tài khoản mà không có sự trợ giúp của chủ sở hữu.

    Với cơ chế này hacker sẽ không chiếm được quyền kiểm soát thông qua quy trình khôi phục tài khoản. Hơn nữa, nếu các chủ sở hữu đã thực hiện đầy đủ quy trình này thì đối tác khôi phục sẽ yêu cầu nhận dạng và xác thực thông qua nhiều yếu tố (điện thoại và email). Điều này có thể sẽ gây khó dễ cho các hacker hoặc ngăn cản các hacker thu thập thông tin quá trình này.

    Quá trình này cũng rất khác với cách khôi phục dựa trên đa chữ ký. Với giao dịch đa chữ ký, có một công ty khác tham gia vào mọi giao dịch được thực hiện, nhưng với quá trình khôi phục, đại lý chỉ là một bên tham gia vào quá trình khôi phục và không có quyền đối với các giao dịch hàng ngày. Điều này làm giảm đáng kể chi phí và trách nhiệm pháp lý cho tất cả những người có liên quan.

    EOS-p5.png
    E. Thi hành các ứng dụng song song xác định

    Sự đồng thuận của các máy tham gia vào mạng lưới Blockchain phụ thuộc vào hành vi xác định (tái thực thi). Điều này có nghĩa là tất cả các lệnh thực hiện song song phải được giải phóng và không chiếm quyền khoá nữa. Khi không khóa thì phải có một số cách để đảm bảo rằng tất cả các tài khoản chỉ có thể đọc và ghi vào cơ sở dữ liệu riêng của họ. Nó cũng có nghĩa là mỗi tài khoản sẽ xử lý các thông điệp tuần tự và sự trùng lặp đó sẽ chỉ ở cấp tài khoản.

    Trên nền tảng blockchain của phần mềm EOS.IO, công việc của nhà sản xuất khối block là tổ chức việc phân phối thông điệp thành các chủ đề độc lập để chúng có thể được đánh giá song song. Trạng thái của mỗi tài khoản chỉ phụ thuộc vào các thông điệp gửi tới nó. Lịch trình là đầu ra của một nhà sản xuất khối block và sẽ được thực hiện theo quy tắc, nhưng quá trình tạo ra lịch trình không cần phải được xác định. Điều này có nghĩa là các nhà sản xuất khối block có thể sử dụng các thuật toán song song để lập kế hoạch giao dịch.

    Một phần của chu trình thực hiện song song có nghĩa là khi một kịch bản tạo ra một thông điệp mới, nó sẽ không được gửi đi ngay lập tức, thay vào đó nó được lập lịch để được phân phối trong chu kỳ tiếp theo. Lý do nó không thể được gửi ngay lập tức là vì người nhận có thể chủ động sửa đổi trạng thái của riêng mình trong một luồng thực thi khác.

    E1. Giảm thiểu độ trễ giao tiếp


    Độ trễ là thời gian cần cho một tài khoản để gửi thông điệp đến một tài khoản khác và sau đó nhận được phản hồi. Mục đích của tham số này là để cho phép hai tài khoản trao đổi thông điệp qua lại trong một khối block duy nhất mà không cần phải chờ 3 giây giữa mỗi thông điệp. Để kích hoạt tính năng này, phần mềm EOS.IO chia từng khối block thành các vòng cycle. Mỗi vòng cycle được chia thành các luồng và mỗi luồng chứa một danh sách các giao dịch. Mỗi giao dịch chứa một tập hợp các thông điệp sẽ được gửi. Cấu trúc này như hình cây mà các lớp xen kẽ được xử lý tuần tự và song song.
    • Block
    • Vòng Cycles (tuần tự)
    • Luồng Threads (song song)
    • Giao dịch (tuần tự)
    • Thông điệp (tuần tự)
    • Người nhận và Tài khoản thông báo (song song)
    Các giao dịch được tạo ra trong một vòng có thể được phân phối trong bất kỳ vòng hoặc khối tiếp theo. Các nhà sản xuất khối block sẽ tiếp tục thêm vòng cho một khối block cho đến khi vượt quá thời gian tối đa hoặc không có giao dịch mới nào được] tạo ra để phân phối.

    Có thể sử dụng phương pháp phân tích tĩnh với một khối block để xác minh rằng trong một vong cycle nhất định không có hai luồng chứa các giao dịch cùng sửa đổi một tài khoản. Và miễn là điều kiện bất biến này được duy trì thì một khối block có thể được xử lý trên các luồng thread song song.

    EOS.IO Storage.png
    EOS.IO Storage

    E2. Trình xử lý thông điệp chỉ đọc

    Một số tài khoản có thể xử lý thông điệp theo cơ chế pass/fail mà không sửa đổi trạng thái nội bộ của chúng. Những trình xử lý này có thể được thực hiện song song với điều kiện chỉ có các trình xử lý thông điệp chỉ đọc read-only cho một tài khoản cụ thể trong một hoặc nhiều luồng thread trong một vòng cycle cụ thể.

    E3. Giao dịch nguyên tử với nhiều tài khoản

    Việc đảm bảo các thông điệp được gửi và chấp nhận bởi một nhóm các tài khoản đôi khi là rất cần thiết. Trong trường hợp này cả hai thông điệp được đặt trong một giao dịch và cả hai tài khoản sẽ được gán cùng một luồng thread và khi đó các thông điệp được xử lý tuần tự. Thuật toán này không phải là ý tưởng về hiệu suất đặc biệt cho ứng dụng thanh toán có sự tham gia của quy trình xuất hoá đơn bởi người dùng sẽ nhận được hoá đơn trong đó nhiều tài khoản tham chiếu tới một giao dịch.

    Vì lý do hiệu suất và chi phí nên tốt nhất là giảm thiểu các tính toán nguyên tử liên quan đến hai hoặc nhiều tài khoản tiện ích.

    E4. Đánh giá một phần trạng thái Blockchain

    Để đáp ứng tính chất mở rộng quy mô với các hệ thống ứng dụng công nghệ blockchain thì các hệ thống luôn cần các thành phần được thiết kế có tính mô đun hoá. Mọi người không nên chạy và thực thi tất cả mọi thứ, đặc biệt là nếu họ chỉ cần sử dụng một tập nhỏ các ứng dụng.

    Một nhà phát triển ứng dụng trao đổi triển khai toàn bộ node cho mục đích hiển thị trạng thái trao đổi cho người dùng. Ứng dụng trao đổi này không cần đến các trạng thái liên quan đến ứng dụng truyền thông xã hội. Bởi vậy phần mềm EOS.IO cho phép bất kỳ node đầy đủ có thể chọn bất kỳ tập hợp con của các ứng dụng để chạy. Thông điệp được gửi đến các ứng dụng khác bị bỏ qua một cách an toàn vì trạng thái của một ứng dụng được lấy hoàn toàn từ các thông điệp được gửi tới nó.

    Điều này có một số ý nghĩa quan trọng trong việc liên lạc giữa các tài khoản khác. Và đáng kể nhất khi chúng ta cùng đồng nhất rằng trạng thái của tài khoản khác trên cùng một máy không thể truy cập lẫn nhau. It also means that while it is tempting to enable "locks" that allow one account to synchronously call another account, this design pattern breaks down if the other account is not resident in memory.

    Tất cả các giao tiếp về trạng thái giữa các tài khoản phải được thông qua các thông điệp có trong hệ thống blockchain.

    eos-io-2.jpg
    F. Scripts & Máy ảo

    Phần mềm EOS.IO sẽ là nền tảng đầu tiên phối hợp việc phân phối các thông điệp đã được xác thực vào các tài khoản. Các chi tiết của ngôn ngữ kịch bản và máy ảo được thực hiện chi tiết cụ thể mà hầu hết là độc lập với thiết kế của công nghệ EOS.IO. Bất kỳ ngôn ngữ lập trình hoặc máy ảo nào là nền tảng sandbox với hiệu suất đáp ứng được đầy đủ yêu cầu thì có thể được tích hợp với phần mềm EOS.IO API.

    F1. Thông điệp tính cấu trúc

    Tất cả các thông điệp được gửi giữa các tài khoản được xác định bởi một giản đồ là một phần của trạng thái đồng thuận trên blockchain. Lược đồ này cho phép chuyển đổi liền mạch giữa hình thức nhị phân và cấu trúc JSON của thông điệp.

    F2. Cơ sở tính cấu trúc


    Cơ sở dữ liệu trạng thái cũng được xác định bằng cách sử dụng một giản đồ tương tự. Điều này đảm bảo rằng tất cả dữ liệu được lưu trữ bởi tất cả các ứng dụng đều ở định dạng đọc được (cấu trúc JSON) nhưng được lưu trữ và thao tác với hiệu suất nhị phân.

    F3. Tách tính năng xác thực khỏi ứng dụng

    Để tối đa hóa các cơ hội xử lý song song và giảm thiểu các khoản tính toán nợ liên quan đến việc tái sử dụng trạng thái ứng dụng từ nhật ký giao dịch, phần mềm EOS.IO tách logic xác minh thành ba phần:
    1. Xác nhận rằng một thông điệp là phù hợp nội bộ;
    2. Xác nhận rằng tất cả các điều kiện tiên quyết đều có giá trị; và
    3. Sửa đổi trạng thái ứng dụng.
    Xác nhận tính nhất quán trong nội bộ của một thông điệp là chỉ đọc (read-only) và không yêu cầu quyền truy cập vào trạng thái blockchain. Điều này có nghĩa là nó có thể được thực hiện song song với hiệu suất tối đa. Việc xác nhận điều kiện tiên quyết chẳng hạn như cân bằng tải, là tính chất chỉ đọc (read-only) và do đó cũng có thể có lợi từ tính chất xử lý song song. Chỉ có sửa đổi trạng thái ứng dụng là yêu cầu phải có quyền ghi và phải được xử lý tuần tự cho mỗi ứng dụng.

    Xác thực là quá trình chỉ đọc để xác minh rằng một thông điệp có thể được áp dụng và xử lý. Ứng dụng thực sự đang làm việc. Trong thời gian thực cả hai tính toán được yêu cầu phải được thực hiện, tuy nhiên một khi giao dịch được nhóm vào trong blockchain thì không cần thiết thực hiện các chu trình xác thực.

    brock-pierce-eos-io.jpg
    F4. Kiến trúc độc lập của Máy ảo

    Đây là một ý tưởng trong quá trình xây dựng hệ sinh thái blockchain của EOS.IO qua đó có thể hỗ trợ được nhiều máy ảo và các máy ảo mới được thêm vào theo thời gian khi cần thiết. Vì lý do này, bài viết này sẽ không thảo luận về các chi tiết của bất kỳ ngôn ngữ cụ thể hoặc máy ảo cụ thể nào. Hiện tại đang có hai máy ảo trong quá trình đánh giá để được sử dụng trên nền tảng blockchain của EOS.IO.

    F4.1. Nền Web (WASM)

    Web Assembly là một tiêu chuẩn web mới để xây dựng các ứng dụng web hiệu năng cao. Với một vài sửa đổi nhỏ Web Assembly có thể được xậy dựng hoàn toàn và đưa vào ứng dụng. Lợi ích của Web Assembly là sự hỗ trợ rộng rãi của ngành công nghiệp web và nó cho phép phát triển hợp đồng bằng các ngôn ngữ quen thuộc như C hoặc C ++.

    Các nhà phát triển Ethereum đã bắt đầu sửa đổi Web Assembly để cung cấp các dịch vụ phù hợp tương thích với Ethereum (WASM). Cách tiếp cận này có thể dễ dàng thích nghi và tích hợp với phần mềm EOS.IO.

    F4.2. Máy ảo Ethereum (EVM)

    Máy ảo này đã được sử dụng cho hầu hết các hợp đồng thông minh hiện tại và có thể được điều chỉnh để hoạt động trong ứng dụng blockchain EOS.IO. Có thể hiểu rằng các hợp đồng EVM có thể được thực thi trong nền tảng riêng của Ethereum và với một vài thay đổi thì các hợp đồng EVM này có thể có giao tiếp với các ứng dụng blockchain gắn liền với phần mềm EOS.IO.

    G. Giao tiếp giữa các Blockchain

    Phần mềm EOS.IO được thiết kế để tạo môi trường giao tiếp giữa các blockchain. Để hiện thực hoá tính năng này EOS đã đơn giản hoá quá trình xác thực sự tồn tại và diễn tiến của các thông điệp. Những tính năng xác thực kết hợp với một kiến trúc ứng dụng được thiết kế cho chức năng truyền tin cho phép giao tiếp một cách chi tiết giữa các blockchain truyền thông và chu trình xác minh qua đó được ẩn giấu từ các nhà phát triển ứng dụng.

    Blockchain.png
    G1. Bằng chứng Merkle cho Light Client Validation (LCV)

    Công việc tích hợp với các blockchains khác sẽ dễ dàng hơn nhiều nếu khách hàng không yêu cầu phải xử lý tất cả các giao dịch. Và khi đó, một giao dịch chỉ quan tâm đến trao đổi giá trị vào, ra. Và sẽ là lý tưởng nếu chuỗi trao đổi có thể sử dụng bằng chứng merkle của tiền gửi thay vì phải tin tưởng vào các nhà sản xuất khối riêng của mình. Ít nhất các nhà sản xuất khối của chuỗi muốn duy trì chi phí nhỏ nhất có thể khi đồng bộ hóa với một blockchain khác.

    Mục tiêu của LCV là cho phép tạo ra bằng chứng tương đối về sự tồn tại có thể được xác nhận bởi bất cứ ai theo dõi bộ dữ liệu tương đối. Trong trường hợp này, mục đích là để chứng minh rằng một giao dịch cụ thể đã được bao gồm trong một khối cụ thể và khối đó được bao gồm trong lịch sử đã được kiểm chứng của một blockchain cụ thể.

    Bitcoin hỗ trợ việc xác nhận các giao dịch thông qua giả định rằng tất cả các nút có quyền truy cập vào toàn bộ lịch sử của các tiêu đề khối có dung lượng 4MB mỗi năm. Với 10 giao dịch / giây, chứng cứ hợp lệ yêu cầu dung lượng khoảng 512 byte. Điều này sẽ đảm bảo hệ thống hoạt động tốt đối với một ứng dụng blockchain cho tần suất khoảng 10 phút, nhưng không phải là dung lượng tối thiểu cho blockchains với tần suất 3 giây.

    Phần mềm EOS.IO cung cấp tính năng chứng minh tối thiểu cho bất kỳ ai. Sử dụng cấu trúc liên kết băm được trình bày dưới đây, có thể chứng minh sự tồn tại của bất kỳ giao dịch nào với bằng chứng có kích thước dưới 1024 byte. Nếu giả định rằng các nút hợp lệ đang giữ tất cả các tiêu đề khối trong ngày vừa qua (2 MB dữ liệu), thì việc chứng minh các giao dịch này sẽ chỉ yêu cầu bằng chứng với dung lượng 200 byte.

    Đến khi cần kiểm chứng trên các chuỗi khác thì đã có rất nhiều công đoạn tối ưu cho thời gian/không gian/băng thông được thực hiện. Theo dõi tất cả các tiêu đề khối (420 MB / năm) sẽ chỉ cần dung lượng lưu trữ nhỏ. Chỉ theo dõi các tiêu đề gần đây có thể mang lại sự cân bằng giữa lưu trữ lâu dài tối thiểu và dung lượng để phục vụ lưu trữ bằng chứng.

    Blockchain-with-Smart-Contract.jpg
    Ngoài ra, một blockchain có thể sử dụng một cách tiếp cận đánh giá lười biếng khi đó các ứng dụng chỉ cần nhớ các băm trung gian của các bằng chứng trong quá khứ. Chứng cứ mới chỉ phải bao gồm các liên kết đến cấu trúc dạng cây thưa. Cách tiếp cận chính xác được sử dụng sẽ nhất thiết phụ thuộc vào tỷ lệ phần trăm khối ngoài bao gồm các giao dịch được tham chiếu bởi bằng chứng merkle.

    Sau một mật độ kết nối liên tục, nó sẽ trở nên hiệu quả hơn nếu chỉ có một chuỗi chứa toàn bộ lịch sử của một chuỗi khác và loại bỏ sự cần thiết phải có bằng chứng. Vì lý do hiệu suất, thì đây là điều kiện lý tưởng để giảm thiểu tần suất của các bằng chứng liên kết chuỗi.

    G2. Độ trễ của giao tiếp giữa các chuỗi

    Khi giao tiếp với một blockchain bên ngoài khác, các nhà sản xuất block phải đợi cho đến khi chắc chắn 100% rằng một giao dịch đã được xác nhận không thể bị đảo bởi blockchain khác trước khi chấp nhận nó như một đầu vào hợp lệ.

    Theo tính toán sử dụng blockchain dựa trên phần mềm EOS.IO và DPOS với khối 3 giây và 21 nhà sản xuất, mất khoảng 45 giây. Nếu các nhà sản xuất khối của chuỗi không chờ đợi đến lúc giao dịch không thể đảo được thì hệ thống sẽ xử lý giống như một trao đổi chấp nhận một khoản tiền gửi mà sau đó nó hoàn toàn có thể bị đảo ngược, khi đó nó có thể ảnh hưởng đến tính hợp lệ và cơ chế về sự đồng thuận trên blockchain.

    G3. Bằng chứng đầy đủ

    Khi sử dụng bằng chứng merkle từ các blockchains bên ngoài thì sẽ có một sự khác biệt đáng kể giữa minh chứng tất cả các giao dịch xử lý là hợp lệ và minh chứng không có giao dịch bị bỏ qua. Mặc dù không thể chứng minh rằng tất cả các giao dịch gần đây được truy vấn tuy nhiên có thể chứng minh rằng không có khoảng trống trong lịch sử giao dịch.

    Phần mềm EOS.IO sẽ tạo điều kiện thuận lợi bằng cách gán một số thứ tự cho mỗi thông điệp được gửi tới mọi tài khoản. Người dùng có thể sử dụng các số thứ tự này để chứng minh rằng tất cả các thông điệp tới một tài khoản cụ thể đã được xử lý và chúng được xử lý theo thứ tự.

    EOS+Team.png
    Đội ngũ thành lập EOS.IO

    Kết luận

    Phần mềm EOS.IO được thiết kế từ kinh nghiệm với các ý niệm đã được kiểm chứng bằng các phương pháp tối ưu nhất qua đó thể hiện những bước tiến cơ bản trong công nghệ blockchain.

    Phần mềm này là một phần của kế hoạch tổng thể cho một xã hội blockchain có khả năng mở rộng trên phạm vi toàn cầu, trong đó các ứng dụng phân quyền có thể dễ dàng triển khai và điều hành./.

    Nội dung seri tài liệu
    Kiến trúc blockchain mới EOS.IO - Phần 1
    Kiến trúc blockchain mới EOS.IO - Phần 2
    Kiến trúc blockchain mới EOS.IO - Phần 3
    Kiến trúc blockchain mới EOS.IO - Phần 4
    Kiến trúc blockchain mới EOS.IO - Phần 5
     
    #1 Cờ ríp tô cơ rừn si, 21/2/18
    Chỉnh sửa cuối: 30/5/18
    Tags:

Chia sẻ trang này lên mạng xã hội:

Đang tải...