Serial bài viết

Mục tiêu bài viết

  • Giới thiệu Ethereum và lược sử ra đời của nó.
  • Tính năng Smart Contract của Ethereum, một tính năng làm nên sự phát triển mạnh mẽ của công nghệ Blockchain.

Giới thiệu Ethereum

Trong khoảng thời gian gần đây (cuối năm 2017) ở Việt Nam rầm rộ lên phong trào đầu tư tiền ảo, nào là Bitcoin, Ethereum, Litecoin, Dash,... rồi đầu tư ICO với lợi nhuận x10, x20 thậm chí x100 khiến cho các nhà đầu tư khắp nơi rộn ràng những câu chuyện coin coin và coin. Bài viết này không phải mục đích hướng dẫn các bạn cách đầu tư coin mà là bài viết giới thiệu về công nghệ Ethereum cùng với Smart Contract.

Các chuyên gia, các nhà phân tích nhận định công nghệ blockchain sẽ thay đổi thế giới, mình đếch tin :D, chỉ thấy là nó sẽ thay đổi cách người dùng giao dịch (dùng tiền ảo) hoặc với Ethereum (hoặc các đồng tiền ảo khác có hỗ trợ Smart Contract) thì sẽ có nhiều ứng dụng sử dụng nó để tạo một hệ thống bảo mật hơn đối với những giao kèo giữa các bên liên quan.

Tiền ảo mà ta nói ở đây có tên gọi chính xác hơn trong Eng là Cryptocurrency (Tiền tệ mã hóa). Định nghĩa của nó là là một loại tiền kĩ thuật số đồng đẳng được trao đổi bằng cách sử dụng một số nguyên tắc mật mã. Nó có thể được sử dụng như là một loại tiền tệ thông thường như đồng đô la Mỹ hoặc tiền tệ ở quốc gia mà một người sinh sống nhưng với một sự khác biệt lớn là nó không bị điều chỉnh bởi bất kỳ tổ chức nào. Công nghệ Blockchain giúp các giao dịch (transaction) trở nên bảo mật hơn, các đặc tính của giao dịch trong Blockchain là:

  • Irreversible (không thể bị đảo ngược): Sau khi được xác thực (confirmation) thì giao dịch không ai có thể hủy hay đảo ngược nó được. Không ai có thể sửa đổi hay can thiệp vào những giao dịch đã được thực thi trong mạng Blockchain.
  • Pseudonymous (bí danh, bí mật): Giao dịch và tài khoản không có liên kết tới bất kỳ thông tin cá nhân ngoài đời của bạn, mỗi tài khoản trong Blockchain được gọi là address (là một dãy 30 ký tự), dùng address ta có thể xem được các giao dịch đi và đến tới address đó mà không cần bất cứ thông tin liên hệ tới ngoài đời của người sở hữu address.
  • Fast and global (nhanh và toàn cầu): Giao dịch được phát tán trong mạng và xử lý trong vòng vài phút. Vì xử lý được thực hiện trên phạm vi mạng máy tính toàn cầu nên nó không quan tâm tới bạn đang ở đâu. Không có vấn đề khác biệt giữa ta gửi Bitcoin cho hàng xóm hoặc ông nào đó ở đầu bên kia thế giới.
  • Secure (bảo mật): Tài khoản tiền ảo được khóa bởi public key mà chỉ mở được bằng private key của người sở hữu, với thuật toán mã hóa mạnh mẽ khiến việc bẻ khóa nó là bất khả thi.
  • Permissionless (không cần sự cho phép): Bạn không cần phải xin cấp phép để tham gia hoạt động tiền ảo, đơn giản bạn chỉ cần download phần mềm miễn phí về cài đặt và bạn có thể gửi và nhận tiền một cách tự do.

Lịch sử

Ethereum được phát mình bởi Vitalik Buterin người Nga sinh năm 1994, một cậu thanh niên chuyên nghiên cứu về lập trình tiền ảo. Nền tảng này phát triển được đến nay nhờ sự huy động vốn của nhiều tổ chức vào hồi tháng 6 – tháng 8/2014 và chính thức ra mắt vào 30/6/2015 từ đó Ethereum được xem như đồng Bitcoin 2.0. Một phiên bản thứ hai của Bitcoin, khắc phục được những khuyết điểm trước đây của BTC.

  • Năm 2013 Ethereum được mô tả lần đầu trong bài báo của Vitalik Buterin Bitcoin Magazine, trong bài báo này Vitalik có đề cập tới sự cần thiết của scripting language để xây dựng các ứng dụng trên nền tảng Bitcoin, tuy nhiên anh không nhận được nhiều sự đồng thuận cho lắm nên Vitalik đã cam kết sẽ phát triển một nền tảng mới có hỗ trợ scripting language
  • Tháng 01/2014 core team của Ethereum bao gồm Vitalik Buterin, Mihai Alisie, Anthony Di Iorio, và Charles Hoskinson bắt đầu phát triển nền tảng Ethereum tại công ty Ethereum Switzerland GmbH. tham khảo
  • Tháng 07/2014 Ethereum tổ chức đợt presale đầu tiên trong 42 ngày, có hơn 16 triệu ETH (đơn vị tiền tệ của Ethereum) được phát hành, người mua sẽ mua bằng Bitcoin. Lúc mở bán ETH có giá là 1 BTC sẽ mua được 2000 ETH.
  • 14/03/2016 phát hành Homestead, sẵn sàng để các công ty và tổ chức có thể sử dụng vào phát triển sản phẩm.
  • Vào năm 2016, một dự án làm việc trên một nhánh của dự án DAO(Decentralized Autonomous Organization) được đặt tên là “The DAO” bị hack. Trên thực tế, The DAO đã gây được quỹ 150 triệu USD và bị đánh cắp 50 triệu USD bởi kẻ tấn công vô danh. Cụ thể, cá nhân hoặc tổ chức này đã khai thác lỗi hệ thống của The DAO và bòn rút số Ether từ quỹ DAO bằng cách bán token của quỹ này. Dù cuộc tấn công được thực hiện bởi một lỗi kỹ thuật trong phần mềm The DAO, chứ không phải là nền tảng Ethereum, thì các nhà phát triển và người sáng lập Ethereum đã buộc phải đối phó với tình trạng hỗn độn này. Cuối cùng, phần lớn cộng đồng Ethereum đã bỏ phiếu biểu quyết để thực hiện phương án hard fork, và hoàn trả tiền cho các nhà đầu tư.Tuy nhiên, không phải ai cũng đồng ý với phương án này. Vì vậy sau hard fork, đã có một sự phân chia tạo ra hai Blockchain song song tồn tại như hiện nay. Ethereum Classic là nhánh Blockchain cũ và được duy trì bởi những thành viên kịch liệt phản đối hard fork. Đối với đa số những người đồng ý viết lại một phần nhỏ của Blockchain và trả lại tiền bị đánh cắp cho chủ sở hữu của họ thì đây chính là đồng Ethereum. Ethereum Classic có trang web riêng và danh mục riêng trên các sàn giao dịch. Trang chủ của đồng Ethereum Classic có lịch sử chi tiết về đồng tiền này, bạn có thể xem ở đây.

Tại thời điểm mình viết bài viết này thì giá của ETH đã là 714 USD. (coinmarketcap.com)

So sánh với Bitcoin

Cùng so sánh với Bitcoin, đồng tiền ảo đầu tiên, xem Ethereum có những điểm khác biệt gì nhé:

Bitcoin Ethereum
Block được tạo ra sau khoảng 10 phút Block được tạo ra sau khoảng 14,15 s
Phần thưởng cho việc tạo ra block giảm 1 nửa sau mỗi 4 năm Phần thưởng cho tạo ra block qua các năm là như nhau và là vô hạn
Bitcoin tính toán chi phí giao dịch dựa trên kích thước của giao dịch Ethereum tính toán chi phí giao dịch dựa trên lượng tài nguyên (resource) sử dụng => gas
Bitcoin ko có Turing Ethereum có Turing (EVM - Ethereum Virtual Machine) là máy ảo độc lập để thực hiện tính toán
Những Bitcoin đầu tiên là sở hữu bởi các thợ đào (miner) Ethereum được gọi vốn nên chỉ có 50% số coin là sở hữu của thợ đào trong 5 năm
Không có Smart Contract Có Smart Contract

Giới thiệu Smart Contract

Smart Contract được đề cập lần đầu bởi Nick Szabo (Nhà khoa học máy tính) vào năm 1996, ông định nghĩa Smart Contract như sau:

Thể chế mới, cách thức mới để hình thức hóa những mối quan hệ hình thành lên thể chế này, đã trở nên khả thi với sự phát triển của công nghệ. Tôi gọi đó là những hợp đồng thông minh mới, vì nó có nhiều tính năng hơn so với hợp đồng giấy cổ điển. Nó không có nghĩa là có AI(Artificial Intelligence - trí thông minh nhân tạo) trong đó. Smart Contract bao gồm các giao kèo, được thể hiện đưới dạng số, cùng những giao thức trong đó các bên tham gia phải bắt buộc thực hiện các giao kèo đó.

Smart Contract


Trên thực tế, các hợp đồng luôn cần có một bên thứ 3 đứng ra đảm bảo các điều khoản trong hợp đồng được thực hiện đúng đắn, nếu có bên nào không thực hiện đúng đắn thì sẽ bị truy tố theo pháp luật. Ví dụ hợp đồng mua nhà anh A mua nhà của anh B thì sẽ có điều khoản anh A phải chuyển tiền nhà cho anh B đúng theo số tiền ghi rõ trong hợp đồng, sau đó thì anh B phải chuyển giao tài sản là ngôi nhà lại cho anh A, việc thực thi hợp đồng được pháp luật đảm bảo.
Hợp đồng truyền thống để thực thi sẽ mất thời gian hơn và tốn kém chi phí cho bên thứ 3. Những nhược điểm này được khắc phục bởi Smart Contract

Ứng dụng của Smart Contract

  • Ứng dụng trong bảo hiểm: Những ai đang sử dụng bảo hiểm cũng biết lúc claim bảo hiểm rất lằng nhằng và mất thời gian. Với Smart Contract ta có thể thiết lập giao kèo giữa các bên tham gia để khi có sự kiện xảy ra thì việc bồi thường bảo hiểm sẽ tự động xảy ra chứ ko phải chờ làm thủ tục và duyệt claim bảo hiểm nữa. Ví dụ khi có thiên tai xảy ra, thì khu vực xảy ra thiên tai + mức độ thiệt hại sẽ được tự động phát hiện và tiền bồi thường sẽ tự động được chuyển cho các nạn nhân.
  • Ứng dụng trong bản quyền: người sở hữu bản quyền sẽ public thông tin bản quyền của người đó lên mạng Blockchain, chính sách sử dụng bản quyền tác phẩm sẽ được thiết lập trong Smart Contract và mỗi khi tác phẩm của họ được sử dụng thì chính sách sử dụng sẽ được tuân thủ và thực hiện tức thời.
  • Ứng dụng trong IoT: Trong hệ thống vận chuyển hàng hóa, các sensor dùng để tracking vị trí của món hàng có thể lưu vị trí của món đồ vào Smart Contract, đảm bảo người dùng có thể xác định vị trí món đồ và đảm bảo ko bị thất lạc.

Lợi ích của Smart Contract có thể tóm gọn như sau:

  • Autonomy (tự trị): Không cần bên thứ 3 để xác thực cho giao dịch cũng như giao kèo giữa 2 bên.
  • Trust(tin cậy): các dữ liệu được mã hóa vào sổ cái và bất kì ai cũng có thể truy cập xem thông tin được.
  • Redundancy (dư thừa): dữ liệu được tạo thành vô số các bản sao trong blockchain khiến cho nó không thể bị thất lạc hoặc biến mất được.
  • Safety (an toàn): dữ liệu được mã hóa và ko thể bị sửa đổi cũng như hack được.
  • Speed (tốc độ): các smart contract tự thực thi các chức năng của nó ngay trên các node vì vậy giảm thiểu nhiều thời gian.
  • Saving (tiết kiệm): giảm thiểu chi phí, rút ngắn thời gian thực thi hợp đồng, cũng như giảm thiểu sự phiền phức trong triển khai hợp đồng: Theo McKinsey (cty tư vấn quản lý toàn cầu) thì tới năm 2021 công nghệ Blockchain sẽ tiết kiệm cho các giao dịch B2B tới 50 tỷ USD. Còn theo Nick Ayton (CEO của Chainstarter ) thì Blockchain giúp cắt giảm tới 40% chi phí và kết quả giao dịch được tiến hành real-time.
  • Precision (chính xác): Smart contract thực thi chính xác những gì nó đã được định nghĩa, không thể có lỗi xảy ra được.
  • Transparency (minh bạch): minh bạch hoàn toàn với mọi bên.

Tổng quan cách sử dụng Smart Contract trong thực tế

Mình chia làm 2 giai đoạn

Giai đoạn dev (phát triển)

Viết mã code cho Smart Contract bằng Solidity (ngôn ngữ chuyên dụng dành riêng cho việc viết Smart Contract), ta thiết lập môi trường dev bằng các công cụ sau:

  • Truffle: framework để viết + test + debug + deploy Smart Contract
  • Hoặc ta dùng Remix là web IDE của ethereum để viết + test + debug Smart Contract
  • NodeJS + web3js để viết ứng dụng kết nối vào Ethereum tương tác với Smart Contract

Giai đoạn triển khai

Đây là giai đoạn mà sau khi việc dev Smart Contract đã ok rồi thì chúng ta sẽ Deploy nó lên mạng Ethereum. Có những cách sau:

  • Sử dụng trực tiếp Mist browser (là trình duyệt phục vụ riêng cho mục đích quản lý account của Ethereum)
  • Sử dụng Truffle (command truffle migrate ) với config network là production.

Việc deploy Smart Contract rất nhanh và đơn giản. Mỗi 1 Smart Contract lúc deploy sẽ có 1 address để client có thể tương tác với nó.

Chốt

Bài viết chia sẻ những cái hay của Smart Contract mang lại, những bài sau mình sẽ giới thiệu cách triển khai thực tế Smart Contract để viết ứng dụng phân tán (decentralized applications).

Tham khảo