Developer có thể làm những thứ hay ho gì trên mạng lưới blockchain của Ethereum?

This entry is part 1 of 6 in the series Lập trình smart contract

Trong loại bài viết này, mình sẽ viết về một nền tảng blockchain có tên là Ethereum - nền tảng Blockchain phổ biến nhất hiện nay dành cho developer. Blockchain là nền tảng kĩ thuật để tạo nên tiền kĩ thuật số nhưng tiền kĩ thuật không phải là tất cả những gì blockchain có thể làm. Blockchain không chỉ có tiền kĩ thuật số. ?

Loại bài bài viết này hướng đến đối tượng là lập trình viên: Nội dung sẽ là xây dựng ứng dụng web với Ethereum. Nội dung các bài viết sẽ không quá chuyên sâu về blockchain. Ngoài ra, nội dung tuyệt đối không bao gồm kiến thức về đầu tư tiền kĩ thuật số và cũng như không khuyến khích ai tham gia vào đầu tư lĩnh vực đầy mới mẻ và rủi ro này nhé.

Lịch sử hình thành:

Khi học bất kì công nghệ gì đó, thường mình sẽ chẳng quan tâm đến lịch sự hình thành của công nghệ đó. Ví dụ, những ai học HTML thì có bao nhiêu bạn quan tâm là ai tạo ra HTML và năm thứ mấy trước công nguyên không? ?

Tuy nhiên, những kiến thực về Ethereum thay đổi rất nhanh trong thời điểm hiện tại nên thiết nghĩ mình nên tìm hiểu tí về lịch sử của blockchain nói chung và ethereum nói riêng.

Vào 31 tháng 10 năm 2008, hệ thống thanh toán điện tử ngang hàng có tên là Bitcoin ra đời. Một trong những yếu tố đặc biệt của hệ thống này là thanh toán ngang hàng (peer to peer), tức là thanh toán mà không cần phải thông quan trung gian (ví dụ như ngân hàng trong giao dịch ebanking). Bitcoin được xây dựng dựa trên một công nghệ lưu trữ xử lí dữ liệu theo cách mới được gọi là blockchain (chuỗi khối).

Nhiều người nhận ra rằng, blockchain có thể áp dụng trong nhiều lĩnh vực khác với lĩnh vực tài chính. Một trong những người đó là Vitalik Buterin (còn rất trẻ - sinh năm 1994) đã tạo một blockchain mới có tên là Ethereum, một nền tảng blockchain về hợp đồng thông minh và phát triển ứng dụng phi tập trung.

Hợp đồng thông minh (smart contract):

Về cơ bản, ý tưởng của hợp đồng thông minh tương tự như hợp đồng trong đời sống hằng ngày chỉ có điều hợp đồng thông minh được viết ra bằng ngôn ngữ lập trình (cụ thể tên ngôn ngữ lập trình ở đây là Solidity). Một khi hợp đồng đã được tạo ra thì sẽ bắt buộc các bên kí kết phải thực thi những điều khoản.

Ví dụ: Bạn gửi cho tôi 10 đồng tiền kĩ thuật số, sau đó mỗi tháng tôi sẽ gửi cho bạn 200% tiền lời vào ngày cuối cùng của mỗi tháng (nghe giống đa cấp rồi đấy ? ).

Một trong ứng dụng phổ biến nhất của Ethereum là tạo những đồng tiền ảo khác (phổ biến nhất là loại ERC20 token).

Ngoài ra, Ethereum thường được dùng để tạo các hợp đồng thông minh để kêu gọi vốn đầu tư, được gọi là ICO (Initial Coin Offering). Hiểu đơn giản thì ICO cũng tương tự như phát hành cổ phiếu công ty vậy. Các công ty sẽ tạo ra một hợp đồng thông minh với các điểu khoản. Ví dụ: Công ty Not Cuder phát hành một đồng tiền kĩ thuật số có tên là Cudercoin được tạo theo chuẩn ERC20. Not Cuder sẽ tạo một hợp đồng với điều khoản: ai gửi cho công ty 1 đồng ether (đơn vị tiền tệ của mạng lưới Ethereum) thì sẽ được trả lại 10 đồng Cudercoin.

Ứng dụng phi tập trung (DApp - Decentralize Application):

Phi tập trung ở đây hiểu đơn giản là không có máy chủ trung tâm để xử lí. Việc xử lí sẽ được thực thi bởi các máy tham gia vào mạng lưới.

Để hiểu rõ hơn thế nào phi tập trung, ta sẽ phân 3 dạng mạng lưới cơ bản: Tâp trung, phân tán và phi tập trung.

Tập trung (Centralize):

Ở mạng lưới tập trung, sẽ có duy nhất một máy chủ đóng vai trò xử lí tập trung cho toàn bộ giao dịch.

Một ví dụ cơ bản của mạng lưới tập trung đó là hệ thống ebanking của một ngân hàng. Trong hệ thống này, mọi giao dịch chuyển tiền  đều được xử lí tập trung ở hệ thống máy chủ để đảm bảo đồng bộ dữ liệu.

 

Một điểm cho tất cả

Ưu điểm của hệ thống tập trung đó là việc dễ dàng cập nhật vì chỉ có 1 điểm xử lí và lưu trữ. Tuy nhiên việc này lại làm do hệ thống dễ dàng bị sụp đỗ nếu điểm trung tâm bị chết.

Phân tán (Distributed):

Trong mạng lưới phân tán, ngoài điểm xử lí trung tâm, ta sẽ có thêm các điểm xử lí nhỏ hơn để hỗ trợ xử lí. Ngoài ra, cơ sở dữ liệu cũng được phân tán.

Ví dụ: Hệ thống mạng xã hội của Facebook. Ngoài điểm xử lí ở trung tâm, Facebook còn đặt các điểm xử lí khác ở khác châu lục khác nhau để xử lí cho người dùng ở từng châu lục.

Hệ thống phân tán sẽ làm tăng khả năng chịu lỗi của hệ thống so với hệ thống tập trung. Tuy nhiên, chúng ta cần phải xây dựng thêm cơ chế đồng bộ dữ liệu giữa các máy chủ.

Phi tập trung (Decentralize):

Quay trở lại với nhân vật chính. Ứng dụng phi tập trung là những gì mà Ethereum mang lại.

Trong mạng lưới phi tập trung, sẽ không có bất kì điểm xử lí và lưu trữ tập trung nào. Các máy trong mạng lưới đều có thể tham gia vào xử lí giao dịch. Ngoài ra, mỗi máy tham gia quá trình xử lí, sẽ kèm theo việc lưu trữ 1 bản sao dữ liệu được đồng bộ trên toàn mạng lưới.

Đối với mạng lưới phi tập trung, việc cập nhật một phiên bản phầm mềm mới sẽ vô cùng khó khăn do phải đạt được sự đồng thuận của toàn bộ mạng lưới. Ngoài ra, việc xử lí giao dịch sẽ chậm hơn hệ thống tập trung.

Tuy nhiên, do các máy trong mạng lưới giao tiếp ngang hàng, đều có quyền xử lí như nhau, lưu trữ cùng một bản sao dữ liệu nên hệ thống phi tập trung sẽ không bao giờ bị hủy diệt nếu còn người chấp nhập sử dụng hệ thống này. ?

Kết:

Ethereum là nền tảng blockchain hỗ trợ hợp đồng thông minh và phát triển ứng dụng phi tập trung.

Hợp đồng thông minh là một bản tập hợp các quy tắc được viết bằng ngôn ngữ lập trình.

Ứng dụng phi tập trung sẽ tạo nên hệ thống không có bất kì điểm xử lí và lưu trữ tập trung nào.

Trong bài viết tiếp theo chúng ta sẽ cùng cài đặt môi trường để phát triển ứng dụng web trên Ethereum. ?

Series NavigationTạo smart contract Hello World đơn giản >>