Sách trắng AERGOSQL
AERGOSQL: Một Công Cụ Hợp Đồng Thông Minh Mới cho Blockchain (Chuỗi khối)
Lần Cập Nhật Gần Đây Nhất: 17 Tháng 7 2018, AERGO
AERGOSQL: Một Công Cụ Hợp Đồng Thông Minh Mới cho Blockchain
Won-Beom Kim, Trưởng ban kỹ thuật của AERGO Limited
MIỄN TRỪ PHÁP LÝ
Sách trắng này liên quan đến dự án AERGO và nên được đọc cùng với sách trắng chính thức có tại https://AERGO.io. Tài liệu này và các tài liệu khác có thể được sửa đổi hoặc thay thế bất cứ lúc nào mà không cần thông báo về bất kỳ sự thay đổi hoặc truy cập đến bất kỳ thông tin bổ sung nào.
Tài liệu này chỉ là thông tin chung. Nó chứa các phát biểu hướng về tương lai dựa trên niềm tin, cũng như các giả định và thông tin nhất định, của tác giả. Không có đại diện hoặc sự bảo đảm nào về sự đạt được hoặc tính hợp lý của bất kỳ kế hoạch, dự báo tương lai hoặc triển vọng nào trong tài liệu này. Quan điểm và ý kiến được thể hiện trong bài báo này chỉ là của tác giả. Những tuyên bố này không phải là lời khuyên, cũng không phải là một lời đề nghị dưới bất kỳ hình thức nào, và chúng cũng không được dựa vào bất kỳ mục đích nào. Nền tảng AERGO không nhằm mục đích thiết lập chứng khoán hoặc bất kỳ sản phẩm được quản lý nào khác trong bất kỳ lãnh vực pháp lý nào. Nếu cần, vui lòng thu thập thêm các lời khuyên cần thiết từ một chuyên gia có trình độ.
Sách trắng này chưa được xem xét bởi bất kỳ cơ quan pháp luật trong bất kỳ lãnh vực pháp lý nào. Tài liệu tham khảo trong sách trắng này của các công ty, mạng lưới và / hoặc các trường hợp sử dụng tiềm năng chỉ nhằm mục đích minh họa. Ngoài các đối tác hoặc nhà cung cấp được đề cập rõ ràng, việc sử dụng bất kỳ tên và thương hiệu của công ty và / hoặc nền tảng nào khác không ngụ ý bất kỳ liên kết, hoặc chứng thực bởi bất kỳ bên nào.
TÓM TẮT
Sách trắng này mô tả AERGOSQL, công cụ hợp đồng thông minh được đề xuất được dung để hoạt động trên nền tảng AERGO. Nó giả định một mức độ hiểu biết cơ bản liên quan đến mã hóa máy tính, hợp đồng thông minh, lập trình và blockchain.
AERGOSQL được đề xuất sẽ hỗ trợ một mô hình dữ liệu quan hệ và định nghĩa logic kinh doanh thông qua ngôn ngữ kịch bản giống PL / SQL. Về AERGOSQL, các mô hình dữ liệu có thể được tạo ra bằng cách sử dụng ngôn ngữ định nghĩa dữ liệu (“DDL”) và được thao tác hoặc được truy cập bằng ngôn ngữ thao tác dữ liệu. Logic kinh doanh sử dụng mô hình dữ liệu có thể được tạo và dẫn ra bằng cú pháp giống như PL / SQL.
Để hỗ trợ hiệu suất cấp độ doanh nghiệp, AERGOSQL đề xuất xử lý các định nghĩa hợp đồng thông minh và thực hiện thông qua LLVM để sử dụng trình biên dịch JIT (1). Công cụ lưu trữ có thể kết nối hỗ trợ bằng cách cho phép tận dụng các công cụ lưu trữ có thể mở rộng như là WiredTiger (2
)
1/ VẤN ĐỀ VỚI CÁC HỢP ĐỒNG THÔNG MINH
Các hệ thống xử lý blockchain chủ đạo như Ethereum thường làm việc một cách thủ tục, hỗ trợ Turing-complete (*) cho các hợp đồng thông minh.(3) Trong khi một hợp đồng thông minh theo thủ tục hỗ trợ cho phép các ứng dụng linh hoạt hơn, tính linh hoạt cũng là nguyên nhân gây nên nhiều lỗi và lỗ hổng hơn. (4)
(*)Turing-complete: Một đặc trưng chính của Ethereum, cho phép tính toán mọi thứ tư thời gian cho đến mức tiêu thụ điện chỉ vừa đủ và tiết kiệm thời gian.
Vì phần lớn các ngôn ngữ hợp đồng thông minh theo thủ tục được mô hình hóa theo nguyên tắc lập trình hướng đối tượng, việc truy cập dữ liệu trên các hợp đồng thông minh thủ tục cũng thường được mô hình hóa sau các cấu trúc dữ liệu trong bộ nhớ. Các loại ngôn ngữ khác của hợp đồng thông minh hỗ trợ các giao diện mạnh mẽ hơn cho kho lưu trữ giá trị chính hoặc kho lưu trữ tài liệu. (5) Tuy nhiên, chúng tôi tin rằng các chức năng truy cập dữ liệu được cung cấp bởi các ngôn ngữ hợp đồng thông minh thủ tục là nền tảng so với các cơ sở dữ liệu đã xuất hiện từ lâu như cơ sở dữ liệu NoSQL hoặc SQL, và điều này thường dẫn đến việc triển khai trở nên phức tạp và mất thời gian hơn, cùng lúc đó phải làm việc với những sự giới hạn hiện hữu.
(1) https://llvm.org/devmtg/2016-09/slides/Melnik-PostgreSQLLLVM.pdf
(2) http://www.wiredtiger.com/
(3) https://github.com/ethereum/wiki/wiki/White-Paper#scripting
(4) https://eprint.iacr.org/2016/1007.pdf
(5) https://medium.com/wearetheledger/hyperledger-fabric-couchdb-fantastic-queries-and-where-to-find-them-f8a3aecef767
2/ SQL VÀ CÁC HỢP ĐỒNG THÔNG MINH
Các mô hình dữ liệu quan hệ và giao diện SQL cung cấp những cách hiệu quả hơn để truy cập và thao tác dữ liệu được lưu trữ trong sổ cái so với các phương thức thủ tục. Trên thực tế, phần lớn logic kinh doanh được yêu cầu bởi hầu hết các trường hợp sử dụng hợp đồng thông minh có thể chỉ được đại diện bởi DDL và các ràng buộc. Các ngôn ngữ kịch bản được thiết kế xung quanh SQL, chẳng hạn như PL / SQL, cung cấp hỗ trợ một cách đầy đủ hơn để xây dựng các hợp đồng thông minh.
Hình dưới đây là một ví dụ minh họa của một hệ thống bản quyết toán kế toán được thực hiện bằng cách sử dụng PL / SQL.
Hệ thống bản quyết toán kế toán được thực hiện bằng cách sử dụng PL / SQL
3/ THIẾT KẾ CỦA ARGOSQL
Thiết kế đề xuất của AERGOSQL bao gồm ba lớp chức năng.
Giao Diện Người Dùng (The Frontend)
Giao diện của AERGOSQL phân tích PL / SQL và tạo ra một sự trình bày AST của tập lệnh. Một phương ngữ của PL / SQL được tối ưu hóa để sử dụng trên sổ cái được phép được sử dụng cho cả tính đơn giản lẫn chức năng. ANTLR6 được sử dụng để xử lý EBNF cho phương ngữ PL / SQL và tạo một trình phân tích trong ngôn ngữ Go.
Trình Tối Ưu Hóa (The Optimizer)
Dựa trên AST phát ra bởi giao diện người dùng, trình tối ưu hóa tạo ra IR của tập lệnh cho LLVM. Để tối đa hóa hiệu suất, trình tối ưu hóa phân bổ các nút phù hợp để thực thi bên trong IR.
Giao Diện Lập Trình Trên Server (The Backend)
Phần giao diện lập trình của AERGOSQL nhằm mục đích cung cấp lớp trừu tượng cho các chức năng được yêu cầu bởi các nút thực thi được sử dụng bởi IR. Để tối ưu hóa, giao diện lập trình cũng cung cấp số liệu thống kê có liên quan của dữ liệu được duy trì. Sự lựa chọn ưu tiên của giao diện lập trình trong thiết kế ban đầu là WiredTiger, nhưng AERGOSQL sẽ có thể sử dụng bất kỳ lưu trữ dữ liệu nào được hỗ trợ bởi cây tìm kiếm sự cân bằng (b-tree) hoặc cây LSM.
Để hỗ trợ các loại thuật toán đồng thuận khác nhau được thực hiện bởi các sổ cái khác nhau, AERGOSQL cung cấp cơ chế điểm-trong-khối để khôi phục và phục hồi. Chức năng này cho phép triển khai blockchain với việc tổ chức lại khối để sử dụng AERGOSQL.
4/ NHỮNG SỰ KÉO THEO
Giao diện SQL quen thuộc được hỗ trợ bởi AERGOSQL nhằm mục đích cho phép các blockchain hỗ trợ các phương pháp thân thiện với nhà phát triển hơn để xây dựng các hợp đồng thông minh. AERGOSQL tìm cách cải thiện hiệu suất và khả năng mở rộng, do đó cũng sẽ cho phép đòi hỏi nhiều trường hợp sử dụng thực tế phải được thực hiện trên blockchain hơn.
(6) http://www.antlr.org/
Nguồn: https://paper.aergo.io/AERGO_SQL_Whitepaper_V1.0.pdf
Congratulations @nhanhoang91! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit