Let’s blockchain – Chương 2: Hợp đồng thông minh

Ở chương trước chúng ta đã nói về cách thành phần cũng như hoạt động trên nền tảng blockchain, trong chương này ta sẽ chuyển qua lý giải cách mà blockchain (có thể) thay đổi lại cách ta cơ cấu toàn bộ nền công nghệ trước giờ.

1. Thuyết âm mưu cùng bản chất

1.1. Lý tưởng blockchain

“We could build a completely decentralized version of our current internet, with no firewalls, no tolls, no government regulation, and no spying. Information will be free in every sense of the word.” – Richard Hendricks from HBO’s Silicon Valley

Nguồn: silicon.nyc
Một tương lai mà tài sản cá nhân được lưu trữ trên blockchain! Tại sao lại không chứ?


Để đảm bảo an toàn của bản thân, tôi sẽ để trích dẫn kia làm đề tài tranh luận và bây giờ sẽ không nói gì về nó.

1.2. Bản chất trong cách vận hành

Khách hàng là sứ mệnh của bất kỳ phần mềm nào khi nó ra đời, blockchain cũng thế nhưng với nó khách hàng cụ thể ở đây là cộng đồng. Vì cộng đồng của nó rất cần các developer người sẽ trực tiếp đọc và khai thác smart contract mà bài viết này sẽ đề cập bên dưới, thế nên code của blockchain trước hết cần public cho phép bạn tự ý clone code rồi tự tạo ra mạng blockchain riêng của mình, kể cả việc không tồn tại các hành lang pháp lý về việc chép code và mạng lưới blockchain của bạn có thể đi vào tạo ra giá trị ngay nhưng thử thách lại nằm ở hướng gây dựng cộng đồng. Giống như những dãy nhà chung cư đang trong thi công mà không có nhà đầu tư, họ chỉ cần khách hàng. Và tất cả những gì họ cần là cung cấp discount tới khách hàng để gây vốn trước khi xây dựng. Bản chất của các blockchain trong lý tưởng cũng y như vậy, cộng đồng là đồng đội đáng tin nhất. Nhà phát triển cần gây dựng niềm tin từ họ, trao quyền phát triển cho những người có năng lực bất kể dù là public blockchain hay private blockchain.

Khoan, thế cuối cùng tiền ở đâu ra?

Trong khuôn khổ series let’s blockchain sẽ không có tản mạn về vấn đề này. Mọi người nếu có hứng thú hãy tìm hiểu với từ khóa ICO và STO.

2. Smart contract cùng thế hệ blockchain thứ 2

2.1. Nó có gì khác với thế hệ thứ nhất?

Để có cái nhìn tổng quan về sự tiến bộ của thế hệ này, trước hết ta cần một cách hiểu cơ bản chung về cách blockchain hoạt động. Một blockchain là một cơ sở dữ liệu phân tán, mỗi người đóng vai trò làm thợ đào (node) của blockchain sẽ nắm giữ một bản sao y chang bản gốc và được cập nhập nội dung theo bản gốc.

Dựa trên cơ sở cách giải thích của  William Rode. Ở thế hệ đầu tiên lấy đại diện là bitcoin, cơ sở dữ liệu này gồm danh sách tài khoản, lượng bitcoin tương ứng của tài khoản đó (cùng với log của tài khoản đó được đặt trong chain).

Nguồn: William Rode
Hình dung về cách lưu dữ liệu của Bitcoin


Và rồi đến thế hệ thứ 2 đại diện là ethereum, vẫn là danh sách tài khoản và số dư tương ứng. Nhưng lần này các con số liệt kê số dư của danh sách trên có thể phải chịu ảnh hưởng trực tiếp từ các đoạn code logic đã được viết ra từ trước nằm trong một phân vùng của blockchain mang tên smart contract.

Nguồn: William Rode
Hình dung về cách ghi lại dữ liệu nằm trên Ethereum


Vậy là hợp đồng thông minh không thực sự là một thứ gì đó “thông minh” cho lắm vì bản chất nó cũng chỉ là những luật lệ (có thể ngớ ngẩn) tự biết thực thi nếu đạt điều kiện. Chính xác thì cái tên hợp đồng thông minh về bản chất chỉ là cách gọi để phân biệt nó là của blockchain.

2.2. Đặc điểm vận hành đến ứng dụng

Đặt trong môi trường code blockchain được public cho cộng đồng (blockchain lý tưởng) vì code public nên cộng đồng sẽ có những developer có thể đọc code và hiểu được cách hoạt động của blockchain và so sánh với tài liệu để chứng minh contract này không “láo”. Đoạn code Smart Contract được cộng đồng (cũng như nhà phát triển) quản lý theo cách mà được cộng đồng đó chấp nhận cho nên nó không thể bị sửa đổi bất hợp pháp để trục lợi. Cùng với đặc điểm tự xác thực và thực thi nên smart contract trở lên đủ mạnh để nhận sứ mệnh:
  • Tự động hóa quy trình pháp lý.
  • Đảm bảo tính an toàn.
  • Xóa bỏ (hoặc giảm thiểu) sự phụ thuộc vào bên trung gian.
  • Với tất cả điều trên => giảm chi phí.
Và vì thế cả tá ứng dụng có thể sử dụng với Smart Contract mà đã được đề cập ở chương trước, hãy đọc cho kỹ vì các bất cập của loại hình tổ chức này (đừng liên tưởng tới đa cấp nha). Hãy nhìn vào thực tế nào, nhờ có Smart Contract hoạt động trên blockchain mà người dân Việt Nam mới có thể xuất khẩu được “xoài blockchain”, “thanh long blockchain” tới các thị trường khó tính bên ngoài.

Bấm vào hình ảnh để có thông tin chi tiết về sản phẩm “xoài blockchain”

3. Nền tảng cung cấp hoạt động cho Smart Contract

Bây giờ là phần nội dung về kỹ thuật, đây cũng là mục tiêu xây dựng cộng đồng của tác giả.

3.1. Nền tảng máy ảo Ethereum (Ethereum Virtual Machine)

Nguồn: bitcoinwiki
Là người đi đầu trong lĩnh vực xây dựng Smart Contract trên blockchain.

Ngôn ngữ lập trình thông dụng nhất khi làm việc với EVM là Solidity, ngoài ra có nhiều ngôn ngữ khác làm việc tốt với EVM như Go (phổ biến nhất trong phần còn lại), Rust, Javascript, Java, Python, C++,…

Trong môi trường EVM, các tài khoản có chức năng trữ, gửi-nhận ETH, tạo Smart Contract, gọi tới Smart Contract để chịu tác động từ nội dung ghi trên đó. Bất kỳ thay đổi nào diễn ra trên Smart Contract đều được ghi nhận lại trên Chain của blockchain. Và đối với từng Smart Contract thực thi, người dùng phải dùng một lượng ETH được gọi là “gas” làm phí thực thi, tất cả lượng “gas” sẽ được tính toán ở mức cần thiết để chi trả, hệ thống sẽ tự nhận biết thiếu thừa để không thực thi Smart Contract hoặc trả lại phần thừa cho chủ sở hữu và phần “gas” sử dụng làm phí thực thi sẽ được dùng để trả công cho các thợ đào dựa trên lý thuyết trò chơi Proof of Work (ở thời điểm viết bài viết này EVM đang cố gắng chuyển giao sang sử dụng Proof of Stake để chi phối hoạt động).

3.2. Nền tảng EOS

Nguồn: valuewalk
Đưới cương vị là đối thủ cạnh tranh trực tiếp với Ethereum ở lĩnh vực tạo môi trường nền tảng phi tập trung Dapps. Nền tảng này sử dụng Web Assembly để vận hành Smart Contract. Ngôn ngữ lập trình tốt nhất mạng lưới là C++. Hoạt động trên giao thức Proof of Stake loại bỏ hoàn toàn việc chi phí “gas” như EVM, thay vào đó lượng băng thông và dung lượng lưu trữ lại tương đương với lượng token EOS mà người đó sở hữu. Điểm nổi trội so với EVM còn nằm ở sự linh hoạt cung cấp cho dapps trên nền tảng này, ứng dụng có thể “freezing” và maintain mà không ảnh hưởng tới các ứng dụng khác – điều này không thể làm ở nền tảng Ethereum. Hiệu suất xử lý trên nền tảng EOS cũng nhanh và mạnh hơn nhiều so với Ethereum giúp nền tảng này đang được kỳ vọng là “kẻ hủy diệt Ethereum” (Ethereum killer).

3.3. Nền tảng Hyperledger Fabric

Nguồn: wiki.hyperledger.org
Nãy giờ là những nền tảng phát triển cho public blockchain được hỗ trợ bởi các ông lớn, bây giờ chúng ta sẽ đề cập tới nền tảng thông dụng cho phát triển private blockchain.

Điều đầu tiên chúng ta cần biết Hyperledger là một môi trường được tạo ra bởi Linux Foundation nhằm để cộng đồng, công ty, tổ chức xây dựng lên framework blockchain. Đi đầu trong hệ thống framework blockchain này là hyperledger fabric được phát triển bởi IBM. Điều thứ hai ta cần nhắm tới là trong hyperledger fabric, hệ thống này sử dụng tới một khái niệm khác gần tương đương với Smart Contract là Chaincode để xử lý code thực thi.

Ngôn ngữ sử dụng để viết Chaincode phổ biến nhất là Go, ngoài ra có thể viết bằng NodeJS, Java. Điểm mạnh của Fabric là hệ thống phân quyền, hỗ trợ người dùng tự implement thuật toán đồng thuận trong đó tiêu biểu có Byzantine Fault Tolerance. Life cycle trên fabric bao gồm 3 khâu: execute – order – validate so với trên Ethereum chỉ gồm: order – excute. Fabric hỗ trợ xử lý song song các order đồng thời yêu cầu thực thi (execute) phải theo một trình tự rõ ràng.

4. Thách thức với Smart Contract

Nguồn: news.bitcoin.com

4.1. Con người

Như đã đề cập phần trên của bài viết thì vấn đề lớn nhất của blockchain nói chung là cộng đồng. Để có thể đưa ra dùng rộng rãi phải có đảm bảo quyền cá nhân, tài sản danh tính cũng như độ an toàn của họ. Smart Contract phải phát triển một cách cẩn thận, chặn chẽ và tuyệt đối không có bug ( điển hình sự kiện The DAO attack). Đồng thời Smart Contract phải cam kết một mức độ riêng tư nhất định tránh việc vô tình đưa người dùng vào tình huống nguy hiểm.

4.2. Oracle problem

Về cơ bản Smart Contract không có khả năng kích hoạt theo thời gian thực với sự kiện xảy ra trong thế giới thực, không có cách nào bản thân Smart Contract thu thập được các thông tin bên ngoài chain. Nói cách khác cần có cầu nối từ thế giới thực và thế giới số. IoT blockchain hiện đang là một trong những giải pháp cho vấn đề này.

4.3. Giới hạn từ nền tảng

Vấn đề này bắt nguồn trực tiếp từ nền tảng thiết kế như tính scalable, optimal,… Điển hình như cơ chế Proof of Work có cơ chế bảo mật yếu và phải chịu chi phí hơn so với Proof of Stake.

Add a Comment

Your email address will not be published.