Ethereum dưới góc nhìn của lập trình viên

HIEN DO
16:02 18/07/2018

Rất nhiều người nghĩ Ethereum tạo ra để cạnh tranh với đồng tiền ảo Bitcoin nhưng thực chất tiền tệ không phải là mục đích mà Ethereum nhắm đến. Công nghệ Blockchain của Ethereum tập trung tạo ra các ứng dụng hoạt động dựa trên Smart contract nhằm giải quyết mọi giao dịch một cách dễ dàng, nhanh chóng, tiết kiệm, an toàn và công khai.

Hãy suy nghĩ về tất cả các dịch vụ trung gian đang tồn tại trên hàng trăm ngành công nghiệp khác nhau hiện nay, tất cả đều tồn tại nhiều vấn đề bất cập về pháp lý, kiểm duyệt, gian lận, bảo mật… điều này gây tổn thất lớn về nhân lực, thời gian và tiền bạc.

Lấy ví dụ khi các bạn muốn mua một căn nhà các bạn sẽ cần phải chuẩn bị tiền bạc, giấy tờ, hợp đồng, các bên pháp lý… Ethereum ra sẽ giúp mọi việc trở nên dễ dàng hơn mà không cần bên thứ 3 nào khác can thiệp vào.

Blockchain là một nền tảng phi tập trung (decentralize platform) sinh ra Bitcoin, blockchain là hạt nhân của các giao dịch và vận hành của bitcoin hướng đến mục tiêu:

Ban đầu, Ethereum (ETH) là một loại cryptocurrency được xây dựng vào năm 2013 bởi Vitalik Buterin, thường được gọi là Bitcoin 2.0. Đây không chỉ là một đồng tiền tệ mà nó còn là nền tảng tạo ra nhiều ứng dụng khác thông qua ngôn ngữ lập trình của mình. Ethereum hoạt động trên một Blockchain tương tự như Bitcoin, chúng ta có thể khai thác ETH thông qua đơn vị tiền tệ Ether.

Ethereum còn là một nền tảng ứng dụng hữu ích và đã tạo ra được một hệ sinh thái tài chính phân tán cho riêng mình.

Lí do Ethereum ra đời là dựa trên ý tưởng Vitalik Buterin muốn khắc phục những nhược điểm của Bitcoin như phí thanh toán, thời gian thanh toán chậm và khuyến khích khai thác thông qua các mining-pool thay vì khai thác riêng lẻ như Bitcoin.

Hiểu đơn giản, Ethereum là một nền tảng blockchain cho phép người dùng tạo ra các transaction và các ứng dụng chạy trên nền Ethereum gọi là Dapp (decentralize application).

Trên trang chủ của Ethereum, nó được định nghĩa như sau:
Ethereum is a decentralized platform that runs smart contracts: applications that run exactly as programmed without any possibility of downtime, censorship, fraud or third party interference.

Về cơ bản, Ethereum chính là:

  • Một nền tảng (platform) chạy trên nền tảng công nghệ Blockchain
  • Hỗ trợ hợp đồng thông minh (smart contract)
  • Mạng lưới sử dụng tiền mã hoá 2.0
  • Sử dụng blockchain riêng
  • Có dự định chuyển từ sử dụng Proof of Work (Ethash) sang Proof of Stake (Casper)

Có thể viết chương trình kiểu model Turing Complete chạy trên nền giao thức P2P

 

 

Một số thuật ngữ:

  • Ether: Là tiền ảo của Ethereum. Dùng để thanh toán chi phí xử lý chương trình (hợp đồng..)
  • message: Tương tự như một giao dịch (transaction) trong Bitcoin. Một message có thể là một yêu cầu thực thi hợp đồng.
  • transaction: Dùng để gửi Ether
  • smart property: Dùng để quản lý tài sản
  • smart contracts: Hợp đồng thông minh
  • GAS: “Nhiên liệu”, chính là Ether dùng để thanh toán chi phí chạy chương trình
    • STARTGAS: Số bước xử lý tối đa cho phép của xử lý giao dịch
    • GASPRICE: Giá tiền thanh toán cho từng bước xử lý
  • EVM (Etherum Virtual Machine): Máy ảo để chạy chương trình Ethereum
  • Mist: Trình duyệt chuyên dụng cho các ứng dụng ĐApp
  • DApp: Decentralize Application. Ứng dụng phi tập trung
  • Mix (Đã tiến hoá thành Remix): Một IDE cho DApp

Về 2 loại account trong Ethereum

  1. EOA (Externally-Owned Account): Tài khoản sở hữu ngoài
    • Đây là tài khoản cho người sử dụng
    • Giống như một địa chỉ của tài khoản thông thường ở Bitcoin
    • Có thể được control bởi người sử dụng hoặc ĐApp
    • Có thể dùng để khởi tạo giao dịch (transaction)
    • Khoá bí mật của EOA sẽ là trigger của giao dịch được ký tên vào bởi khoá đó
    • Tài khoản này được quản lý bởi người dùng
  2. Contract Account
    • Đây là một tài khoản (địa chỉ) của một hợp đồng đã được phát hành
    • Được lưu trên blockchain
    • Có thể accept các giao dịch
    • Có thể gửi message đến một contract hoặc gửi đến chính mình
    • Khi gửi message thì một chương trình (đoạn mã) được thực thi

Message và Transaction

  • Khái niệm message trong Ethereum khá giống với Transaction trong Bitcoin, tuy nhiên có những điểm khác sau:
    1. Message có thể được tạo từ bên ngoài hoặc từ hợp đồng (contract)
    2. Có response
  • Transaction: Được kích hoạt bởi một account thuộc kiểu EOA hoặc Contract Account. Tuy nhiên Contract Account chỉ kích hoạt transaction khi nó bị tác động bởi một transaction khác. Do vậy mọi hoạt động trong blockchain đều xuất phát từ tài khoản kiểu EOA.

Với Ethereum, chúng ta có thể xây dựng các tổ chức tự trị (không có trung tâm quản lý):

  • DAOs (Decentralize Autonomous Organizations)
  • DAC (Decentralize Autonomous Corporation)

Giao thức

Ngôn ngữ lập trình để cài đặt hợp đồng

3 nơi lưu trữ dữ liệu trên EVM:

  1. Storage: Nơi mỗi contract lưu biến liên quan trạng thái của nó. Storage không bị biến đổi bởi các xử lý trong function.
  2. Memory: Nơi lưu tạm các biến xử lý. Memory sẽ bị clear giữa các lần gọi hàm xử lý.
  3. Stack: Nơi lưu các dữ liệu nhỏ tạm thời. Nói chung là không nên lưu nhiều trong stack vì nó chỉ có thể lưu một giới hạn các biến.

RLP (Recursive Linear Prefix)

Đây là một phương pháp mã hoá dữ liệu.
  • Mục đích của RLP là mã hoá các mảng lồng tuỳ ý thuộc kiểu dữ liệu binary
  • RLP là phương pháp mã hoá chính trong Ethereum giúp mã hoá các object thành chuỗi

Patricia Tree

  • Là cấu trúc dùng để lưu trạng thái của blockchain rồi băm (hash)

Wire Protocol

  • Là giao thức P2P giữa các node Ethereum
  • Các node của Ethereum chỉ dùng giao thức TCP
  • Cổng là 30303

Tóm lại, Ethereum là một nền tảng mạnh mẽ để tạo ra các ứng dụng phi tập trung và cũng để giao dịch tiền mã hóa. Còn rất nhiều ứng dụng tiềm năng trong tương lai dành cho bạn thực hiện.

TIN LIÊN QUAN
Trong bối cảnh công nghệ Blockchain được nhiều chuyên gia trong lĩnh vực nghiên cứu học thuật và lập trình viên đầu tư thời gian và công sức để áp dụng  vào trong các ngữ cảnh ứng dụng thực tế khác nhau, Ethereum cùng với ngôn ngữ Solidity là một...
Lỗ hổng bảo mật trong Hợp đồng thông minh  Hợp đồng thông minh (Smart Contract) là một thiết kế đột phá, cho phép triển khai mọi giao dịch mà không cần bên thứ ba xác nhận. Thiết kế này là một ứng dụng rất hữu ích trên nền tảng Blockchain....
EOS là một nền tảng Blockchain để phát triển các ứng dụng phi tập trung (DApp), tương tự Ethereum. Nó giúp cho việc phát triển DApp dễ dàng hơn bằng cách cung cấp nhóm các dịch vụ, tính năng giống như hệ điều hành và phù hợp cho DApp. Ý...