PHÂN LOẠI BLOCKCHAIN

Một phần của tài liệu Xây dựng sàn giao dịch mua bán trực tuyến trên nền tảng blockchain (Trang 36)

4. Đề nghị cho bảo vệ hay không?

2.7. PHÂN LOẠI BLOCKCHAIN

2.7.1. Public Blockchain

Public Blockchain là mạng Blockchain mà bất kỳ ai cũng có thể đọc và thực hiện giao dịch trên nó. Tất cả các máy tính trong mạng đều tham gia quá trình đồng thuận xác nhận giao dịch. Việc tấn công vào loại mạng Blockchain hay việc tự ý thay đổi dữ liệu là bất khả thi vì cơ chế khuyến khích hoạt động, đồng thuận phân tán của toàn mạng cũng như chi phí tính toán rất cao.

Ví dụ: Bitcoin, Ethereum là hai mạng thuộc loại Public Blockchain tiêu biểu nhất.

2.7.2. Private Blockchain

Khác với Public Blockchain, trong Private Blockchain quyền đọc dữ liệu có thể được công khai với mọi người hoặc bị giới hạn với một nhóm người tham gia hoặc không cho phép người dùng đọc dữ liệu trong một số trường hợp, đặc biệt không có quyền ghi dữ liệu vì điều này thuộc về bên tổ chức thứ ba tuyệt đối tin cậy. Vì là một Private Blockchain, nên thời gian xác nhận giao dịch khá nhanh vì chỉ cần một lượng nhỏ thiết bị tham gia thực hiện xác thực giao dịch, điều này tuỳ thuộc vào việc cấu hình mạng Blockchain ban đầu.

21

2.7.3. Consortium Blockchain

Đây là mô hình Blockchain được kết hợp giữa Public Blockchain và Private Blockchain nhằm tận dụng triệt để các ưu điểm và hạn chế các điểm yếu của hai loại hình Blockchain trên. Quyền đọc dữ liệu trên Consortium Blockchain tương đối giống với Public Blockchain. Nhưng quá trình đồng thuận được sẽ quyết định bởi nhiều tổ chức tin cậy hoặc do một nhóm các người được chỉ định.

Ví dụ: Các ngân hàng hay tổ chức liên doanh sẽ sử dụng Blockchain cho riêng mình, Ripple là một trong những mạng nổi bật.

22

CHƯƠNG 3: TỔNG QUAN VỀ ETHEREUM

3.1. LỊCH SỬ RA ĐỜI

Ethereum ban đầu được mô tả trong một văn bản của Vitalik Buterin, một lập trình viên liên quan đến Bitcoin vào cuối năm 2013 với mục tiêu xây dựng các ứng dụng phân quyền. Buterin đã lập luận rằng Bitcoin cần một ngôn ngữ kịch bản để phát triển ứng dụng. Không đạt được thỏa thuận với nhóm phát triển Bitcoin, ông đề xuất phát triển một nền tảng mới với một ngôn ngữ kịch bản tổng quát hơn.

Hình 3.15 Logo của Ethereum

Bốn thành viên ban đầu của nhóm Ethereum là Vitalik Buterin, Mihai Alisie, Anthony Di Iorio và Charles Hoskinson. Phát triển chính thức của dự án phần mềm Ethereum bắt đầu vào đầu năm 2014 thông qua một công ty Thụy Sĩ tên là Ethereum Switzerland GmbH (EthSuisse). Sau đó, một tổ chức phi lợi nhuận tại Thụy Sĩ với tên gọi là Ethereum Foundation cũng được thành lập. Việc phát triển Ethereum được tài trợ bởi đám đông trực tuyến trong suốt tháng 7 và tháng 8 năm 2014, với những người tham gia mua Ethereum bằng các loại tiền kỹ thuật số khác như bitcoin. Mặc dù đã có những lời khen ngợi đầu tiên về những đổi mới kỹ thuật của Ethereum, nhưng cũng có các ngờ vực về tính an toàn và khả năng mở rộng của nó.

Ethereum là một nền tảng điện toán có tính chất phân tán, công cộng, mã nguồn mở dựa trên công nghệ Blockchain. Nó cho phép tạo ra các hợp đồng thông minh, tạo thuận lợi cho các thỏa thuận hợp đồng trực tuyến. Nền tảng này bao gồm một máy ảo hoàn toàn Turing - Ethereum Virtual Machine (EVM), có thể thực thi các kịch bản bằng cách sử dụng một mạng lưới máy tính Ethereum. Ethereum cũng cung cấp một loại tiền mã hóa gọi là "Ether", có thể được chuyển giữa các tài khoản và được sử dụng để trả công cho các thợ đào giúp thực hiện việc tính toán. "Gas" là một cơ chế giá giao dịch nội bộ, được sử dụng để giảm thiểu giao dịch rác (spam) và phân bổ các nguồn lực trên mạng lưới.

23

Ethereum đã được đề xuất vào cuối năm 2013 bởi Vitalik Buterin, một nhà nghiên cứu tiền mã hóa và nhà lập trình. Hệ thống này đã được khởi động vào ngày 30 tháng 7 năm 2015, với 11,9 triệu đồng ether đã được đào sẵn (premined) để bán lại cho những nhà tài trợ. Số tiền này chiếm khoảng 13% tổng số ether được lưu hành.

Năm 2016, Ethereum bị chia rẽ thành hai Blockchain, do sự sụp đổ của dự án DAO (Decentralized Autonomous Organization). Hai chuỗi có số lượng người sử dụng khác nhau, và nhánh thiểu số được đổi tên thành Ethereum Classic. Nhánh đa số giữ nguyên tên Ethereum.

3.2. SỰ SỤP ĐỔ CỦA DỰ ÁN DAO

Ethereum đã thu được một số lượng lớn các phương tiện thông tin đại chúng trong năm 2016 khi một tổ chức tự trị phân cấp được gọi là The DAO - một bộ hợp đồng thông minh được phát triển trên nền tảng - thu được một khoản kỷ lục 150 triệu USD tài trợ thông qua hình thức đóng góp đám đông (crowd-funding). DAO đã bị hack một cách ngoạn mục vào tháng 6, khi một cá nhân vô danh đã lấy trộm được khoản tiền trị giá 50 triệu đô la Mỹ. Sự kiện này đã gây ra một cuộc tranh luận đáng kể trong cộng đồng mật mã về việc liệu Ethereum nên thực hiện việc chia nhánh (hard-fork) gây tranh cãi để lấy lại số tiền bị đánh cắp.

Do việc tranh chấp, Ethereum bị chia thành hai mạng. Phía thiểu số từ chối thực hiện việc chia nhánh tiếp tục sử dụng phiên bản Ethereum Blockchain cũ và gọi nó là Ethereum Classic, còn phía đa số đã ủng hộ việc chia nhánh chính thức của Ethereum.

Sự kiện DAO tạo ra sự phân ly giữa Ethereum và Ethereum Classic, mà theo một số nhà quan sát, đã tạo ra sự cạnh tranh kinh tế và tâm lý cay đắng giữa hai bên. Đây là sự tiếp nối của cuộc tranh cãi khó khăn, nơi mà phía chống lại việc chia nhánh (Ethereum Classic) bảo vệ về sự không thay đổi, mã là luật, chống lại phía Ethereum mà bảo vệ cho ý định của giao thức, cách thức phân quyền trong việc ra quyết định và giải quyết xung đột.

Các nhà phê bình khác nhau từ phía Ethereum Classic đã tố cáo việc chia nhánh như là một vụ lừa đảo và là một hành vi trộm cắp tiềm năng về sở hữu trí tuệ. Ethereum Classic đã giữ lại một số người dùng của Ethereum và cũng đã thu hút những người khác từ cộng đồng mật mã rộng hơn - những người đã từ chối việc chia nhánh gây tranh cãi trên cơ sở ý

24

thức hệ. Tuy nhiên, dự án này không được Ethereum Foundation tài trợ chính thức và cũng không được hỗ trợ bởi hiệp hội các nhà phát triển, đối tác kinh doanh, thợ mỏ và người sử dụng hệ sinh thái Ethereum.

3.3. CÁC KHÁI NIỆM CƠ BẢN 3.3.1. Hợp dồng thông minh 3.3.1. Hợp dồng thông minh

Bình thường, khi ký một hợp đồng để trao đổi giá trị kinh tế, chúng ta cần một bên thứ 3 có trách nhiệm hòa giải (ví dụ: Nhà môi giới, Tòa án, Chi cục quản lý đất đai,...). Hợp đồng thông minh là một cơ chế trao đổi xác định, được kiểm soát bởi các phương tiện kỹ thuật số mà có thể giúp cho việc thực hiện giao dịch trực tiếp giữa các thực thể mà không cần tin cậy nhau. Các hợp đồng này được định nghĩa bằng cách lập trình và được chạy chính xác như mong muốn mà không bị kiểm duyệt, lừa đảo hay sự can thiệp từ bên thứ ba trung gian.

Hình 3.16 Hợp đồng thông minh có thể tự động thực thi lệnh chuyển tiền

Chúng có thể được sử dụng để tạo điều kiện, xác minh và thực thi việc đàm phán hoặc thực hiện các hướng dẫn thủ tục kinh tế và có khả năng tránh được sự kiểm duyệt, thông đồng và rủi ro từ phía đối tác. Trong Ethereum, các hợp đồng thông minh được coi là các kịch bản tự trị hoặc các ứng dụng phân cấp được lưu trữ trong chuỗi khối Ethereum để thực hiện sau đó bởi EVM. Các hướng dẫn được nhúng trong các hợp đồng Ethereum được thanh toán bằng Ether và có thể được thực hiện bằng nhiều ngôn ngữ Turing-complete khác nhau.

25

3.3.2. Ether

Tiền mã hóa được giao dịch trong mạng lưới Ethereum được gọi là Ether. Nó được liệt kê dưới mã ETH và giao dịch trên các sàn giao dịch tiền mã hóa. Nó cũng được sử dụng để trả phí giao dịch và dịch vụ tính toán trên mạng Ethereum.

Giá trị của Ether có thể biến động lớn, ví dụ như sự sụt giảm của Ether từ 21,50 đô la Mỹ xuống còn 8 đô la Mỹ sau khi The DAO bị tấn công vào ngày 17 tháng 6 năm 2016.

3.3.3. Gas

Gas là một đơn vị được sử dụng để đo lường mức chi phí tính toán (computationally expensive) có thể tiêu tốn cho một giao dịch trên Ethereum. Giá trị của gas được quy đổi bằng một lượng ether tương ứng.

Nói cách khác gas không phải là một đơn vị tiền tệ, và bạn không thể sở hữu hay tích trữ nó. Nó chỉ đơn giản đo đạc mức tiêu hao của các phép tính toán mà hệ thống phải chịu nếu thực hiện giao dịch. Để có thể trả chi phí gas, bạn chỉ cần thêm Ether vào tài khoản của bạn. Mọi toán tử trên EVM đều có một giá trị gas nhất định.

Có hai lý do chính để gas ra đời:

• Thứ nhất, nó là một phần thưởng đảm bảo được đặc tả trước cho các thợ đào (miner) trong việc thực thi mã nguồn và bảo mật kết mạng, ngay cả khi việc thực thi bị thất bại vì một lý do nào đó.

• Thứ hai, nó đảm bảo việc thực thi không thể dài quá thời gian đã được ước lượng trước đó.

Việc này khác so với Bitcoin, nơi mà chi phí được tính bằng kích thước của giao dịch (tính bằng kilobytes), ta có thể thấy việc tính chi phí dựa trên khối lượng tính toán hợp lý hơn nhiều.

Hệ thống gas cũng không khác lắm so với việc đo lượng điện dân dụng. Điểm khác biệt với thị trường năng lượng thực chính là người tạo giao dịch sẽ quyết định giá gas (thợ mỏ có thể chấp nhận giá này hoặc không)

Giá gas cho mỗi giao dịch hay hợp đồng được thiết lập để xử lý bản chất Turing Complete của Ethereum và EVM của nó (tức là mã Ethereum Virtual Machine)- đây là một trong những ý tưởng được đưa ra để hạn chế vòng lặp vô hạn. Ví dụ như 10 szabo,

26

tương đương với 0.00001 Ether hay 1 gas có thể thực hiện một dòng mã hay vài câu lệnh. Nếu không có đủ Ether trong tài khoản để hiển thị một cuộc giao dịch hay một tin nhắn thì nó được coi là không hợp lệ. Ý tưởng này sẽ phần nào ngăn chặn được những cuộc tấn công từ vòng lặp vô hạn, khuyến khích tính hiệu quả trong chuỗi mã - và bắt những kẻ tấn công phải trả cho tài nguyên mà mình sử dụng. Câu lệnh càng phức tạp thì bạn càng phải trả nhiều gas hơn.

Bảng 3.1 Danh sách các hoạt động và chi phí của nó trong Ethereum Virtual Machine

3.3.4. ERC20 Token

Trong hệ thống của Ethereum thì ETH đóng vai trò là native token, phí giao dịch sẽ được tính trên token này. Ethereum platform còn cho phép người dùng định nghĩa token riêng và để chuẩn hóa các token này, ERC20 ra đời. Tùy mục đích của người sáng lập mà một hệ sinh thái có thể có hoặc không có token.

3.3.5. Ví đa chữ ký

Khái niệm này được nhắc đến trong nhiều loại Blockchain, ví đa chữ ký (Multi Signature Wallet) là một loại ví điện tử được tạo thành từ nhiều chữ ký khác. Nguyên lý đa chữ ký này đã xuất hiện từ lâu trước khi sự xuất hiện của Blockchain, được áp dụng vào công nghệ Blockchain để làm tăng tính bảo mật cho việc thực hiện giao dịch trên một tài khoản.

27

Ở các loại ví thông thường, chỉ cần duy nhất một khoá cá nhân của ví đó là đủ điều kiện tiến hành giao dịch. Nhưng đối với ví đa chữ ký, để giao dịch chỉ được phép thực thi khi có đủ số lượng chữ ký tối thiếu đã cấu hình trước đó. Ví dụ: Một ví được tạo ra với 3 chữ ký, điều kiện thực hiện giao dịch là 2/3 chữ ký chấp thuận.

Trong Ethereum, ví đa chữ ký có thể được tạo thành một Hợp đồng thông minh.

3.3.6. Ứng dụng phi tập trung

Ứng dụng phi tập trung (Dapp) là một loại ứng dụng chạy trên mạng ngang hàng (P2P) được kết nối trực tiếp giữa các bên tham gia vào nó, và không thông qua bất cứ một máy chủ tập trung nào. Thêm vào đó, mã nguồn của DApp cũng được công khai với mọi người.

Hình 3.17 Mô hình ứng dụng truyền thống và ứng dụng phi tập trung

DApp không nhất thiết phải chạy trên Blockchain, bằng chứng là có những phần mềm DApp như thế trước khi Blockchain ra đời: BitTorrent, P2P Cash, BitMessage, Tor, v.v… Đó là những phần mềm hoạt động trên một mạng lưới P2P, chứ không phải trên Blockchain.

3.3.7. Máy ảo Ethereum

Máy ảo Ethereum (EVM) là một môi trường chạy các hợp đồng thông minh Ethereum. Định nghĩa chính thức của EVM được quy định trong Ethereum Yellow Paper của Gavin Wood. Nó được hoàn toàn cô lập từ mạng, hệ thống tập tin và các quá trình khác của hệ thống máy chủ. Mỗi nút Ethereum trong mạng chạy một EVM và thực hiện các hướng dẫn giống nhau. Ethereum Virtual Machines đã được lập trình trong C++, Go, Haskell, Java, Python, Ruby, Rust và WebAssembly (hiện đang được tiếp tục phát triển)

28

3.4. NGÔN NGỮ LẬP TRÌNH HỢP ĐỒNG THÔNG MINH – SOLIDITY 3.4.1. Sơ lược các ngôn ngữ lập trình hợp đồng thông minh

EVM là một máy tính mô phỏng chạy một dạng mã máy đặc biệt gọi là mã bytecode EVM. Mặc dù có thể lập trình các hợp đồng thông minh trực tiếp bằng bytecode. Tuy nhiên EVM bytecode là ngôn ngữ bậc thấp, rất khó sử dụng và khó cho lập trình viên có thể đọc và hiểu. Do đó, hầu hết các nhà phát triển Ethereum sử dụng một ngôn ngữ lập trình bậc cao để viết các chương trình smart contract và sau đó compile chúng ra bytecode. Mặc dù bất kỳ ngôn ngữ lập trình bậc cao nào cũng có thể được điều chỉnh để viết các hợp đồng thông minh nhưng do đặc điểm hoạt động trong môi trường thực thi hạn chế và tối giản (EVM), nơi hầu như tất cả các giao diện người dùng thông thường, giao diện hệ điều hành và giao diện phần cứng đều bị thiếu nên sẽ là dễ dàng hơn nếu xây dựng một ngôn ngữ viết smart contract tối giản, từ đầu hơn là thay đổi các ngôn ngữ có sẵn để phù hợp viết các smart contract.

Việc viết smart contract sẽ làm thay đổi tư duy của các lập trình viên, vì đơn giản là không có chỗ cho sai lầm, mọi lầm đều phải trả giá bằng tiền (Ether). Dưới đây là 1 số ngôn ngữ lập trình dùng để viết smart contract:

LLL: Một ngôn ngữ lập trình hàm. Là ngôn ngữ lập trình bậc cao đầu tiên cho Ethereum smart contract, hiếm khi được sử dụng ngày nay.

Serpent: Một ngôn ngữ lập trình thủ tục với cú pháp tương tự Python được tạo ra bởi Vitalik Buterin, ít khi được sử dụng

Solidity: Ngôn ngữ lập trình thủ tục với cú pháp tương tự JavaScript, C++ hoặc java. Ngôn ngữ phổ biến nhất và thường được sử dụng để viết các hợp đồng thông minh được tạo ra bởi Gavin Wood.

Vyper: Một ngôn ngữ được phát triển gần đây, tương tự Serpent với cú pháp giống Python, hướng đến sự gần gũi với Python hơn là Serpent nhưng không phải để thay thế Serpent. Nó lại được tạo ra bởi Vitalik Buterin.

Bamboo: Một ngôn ngữ mới được phát triển, chịu ảnh hưởng bởi Erlang với explicit state transistions và không có các luồng lặp. Nó hướng tới việc giảm side effect và tăng khả năng audit smart contract. Ngôn ngữ này rất mới và chưa được sử dụng nhiều.

29

Như đã trình bày ở trên, có rất nhiều ngôn ngữ để chúng ta lựa chọn viết hợp đồng thông minh. Tuy nhiên, do Solidity là ngôn ngữ phổ biến nhất, đây cũng chính là ngôn ngữ được cộng đồng khuyên dùng và được cập nhật thường xuyên nên trong phần tiếp theo của bài viết, tôi sẽ đề cập đến ngôn ngữ này.

3.4.2. Sự ra đời Solidity

Vài năm trước khi Ethereum ra đời, Vitalik Buterin nhận ra rằng công nghệ Blockchain không chỉ gói gọn trong giao dịch tiền tệ mà còn có thể ứng dụng vào việc tạo ra các phần mềm phi tập trung.

Một phần của tài liệu Xây dựng sàn giao dịch mua bán trực tuyến trên nền tảng blockchain (Trang 36)

Tải bản đầy đủ (PDF)

(71 trang)