1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đồ án tìm hiểu BLOCKCHAIN và ứng dụng minh họa

43 839 9

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm hiểu Blockchain và ứng dụng minh họa
Tác giả Võ Thanh Bình, Trương Hữu Minh Đức
Người hướng dẫn ThS. Huỳnh Nguyễn Khắc Huy
Trường học Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành Công nghệ thông tin
Thể loại Báo cáo cuối kỳ
Năm xuất bản 2021
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 43
Dung lượng 551,72 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mục tiêu nghiên cứu Mục tiêu của đồ án này là có một cái nhìn tổng quan về công nghệ BlockChain, biếtđược các nền tảng lý thuyết và các kỹ thuật chính sử dụng trong BlockChain, đặc biệt

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO CUỐI KỲ

ĐỀ TÀI: TÌM HIỂU BLOCKCHAIN VÀ ỨNG

DỤNG MINH HOẠ

Giáo viên hướng dẫn: Ths Huỳnh Nguyễn Khắc Huy

Nhóm sinh viên thực hiện:

Trang 2

MỤC LỤC

Trang 3

A GIỚI THIỆU CHUNG

1 Tổng quan tình hình nghiên cứu

Internet xuất hiện không chỉ phục vụ cho việc gửi email hay tải phần mềm mà nó còn

là động lực để phát triển nền kinh tế toàn cầu Trong thực tế, Internet đã trở thành trình điềukhiển của nền kinh tế Sự xuất hiện của Internet và các mạng cục bộ đã giúp cho việc traođổi thông tin trở nên nhanh chóng, dễ dàng hơn Email cho phép chúng ta nhận hay gửi thưngay trên máy tính của mình, Ebusiness cho phép thực hiện giao dịch, buôn bán trênmạng… Cũng giống như Internet, blockchain xuất phát như một trào lưu với đồng tiền ảoBitcoin

Sự phát triển của Internet cũng đồng hành với những tổn thất sau các cuộc tấn côngmạng, gây ảnh hưởng lớn đến nền kinh tế cũng như xã hội Theo cuộc khảo sát của hãngphân tích Grant Thornton, khoản tiền mà doanh nghiệp mất vào tay tin tặc ở Châu Á-TháiBình Dương lên tới 81,3 tỉ đô la trong vòng 12 tháng (tính đến cuối tháng 9/2015) Mức tổnthất từ các đợt tấn công mạng ở châu Á nhiều hơn Bắc Mỹ tới 20 tỉ USD và EU với con sốtương tự, và chiếm đến hơn 25% tổng mức tổn thất của thế giới (315 tỉ USD) Tại ViệtNam cũng xảy ra tình trạng mất an toàn với các tài khoản gửi ngân hàng, điển hình như vụtấn công vào Vietcombank Tháng 2/2016, thông tin về việc Ngân hàng Trung ươngBangladesh bị tin tặc đánh cắp 101 triệu USD gây chấn động thế giới là một bài học cho bất

cứ tổ chức nào Sự cố xảy ra được cho là do Ngân hàng nước này sử dụng bộ định tuyến cũgiá 10 USD mà không có bất cứ một hệ thống tường lửa nào Số tiền tổn thất trong vụ này cóthể lên đến hơn 1 tỷ USD nếu như tin tặc không viết sai lỗi chính tả

Từ những rủi ro từ an ninh mạng nên các tổ chức tài chính cần những công nghệ mới,

ví dụ như nền tảng của đồng tiền số Bitcoin, chính là Blockchain, được kì vọng không chỉnhằm cắt giảm chi phí ngân hàng mà còn đảm bảo tính an toàn và xa hơn nữa là cách mạnghóa các giải pháp bảo mật

Với thực trạng đó, đồ án này có mục tiêu nghiên cứu, ứng dụng công nghệ Blockchain

Trang 4

2 Lý do lựa chọn đề tài

Nhận thấy Blockchain là một công nghệ rất phù hợp với mức độ bảo mật cao, tínhminh bạch cao và không thể chối bỏ lịch sử giao dịch Nhóm quyết định nghiên cứu và thựchiện triển khai ứng dụng minh họa để hiểu được công nghệ này cũng như nhằm mục đíchxóa bỏ những gian lận trong các giao dịch hiện đại

3 Mục tiêu nghiên cứu

Mục tiêu của đồ án này là có một cái nhìn tổng quan về công nghệ BlockChain, biếtđược các nền tảng lý thuyết và các kỹ thuật chính sử dụng trong BlockChain, đặc biệt là ứngdụng của hợp đồng thông minh trong công nghệ này Bên cạnh đó hiểu được Ethereum lànền tảng BlockChain đã và đang rất phổ biến và có được ứng dụng minh họa

Trang 5

B BLOCKCHAIN

1 Giới thiệu

Blockchain tên gọi ban đầu là block chain (chuỗi khối) – là một cuốn sổ cái ghi lạithông tin số dư và lịch sử của tất cả tài khoản tham gia vào chuỗi giao dịch của mình Mỗikhối chứa thông tin trong hệ thống blockchain thường được gọi là "block" Các block đềuchứa thông tin về thời gian khởi tạo và được liên kết với khối trước đó, kèm theo đó là một

mã thời gian và dữ liệu giao dịch Dữ liệu khi đã được mạng lưới chấp nhận thì sẽ không cócách nào thay đổi được Vì vậy, có thể nói Blockchain ra đời để chống gian lận và thay đổicác dữ liệu trong các giao dịch

Cụ thể hơn, một blockchain là một chuỗi tuyến tính gồm nhiều khối được kết nối vàđược bảo đảm bằng các bằng chứng mật mã Một blockchain thường được xây dựng nhưmột hệ thống phân tán có chức năng như một sổ cái phi tập trung Điều này có nghĩa là cónhiều bản sổ cái (phân tán) và không có tổ chức nào nắm quyền kiểm soát duy nhất (phi tậptrung) Nói một cách đơn giản, mỗi người dùng tham gia vào mạng blockchain sẽ giữ mộtbản sao điện tử của dữ liệu blockchain Dữ liệu blockchain được cập nhật thường xuyên tất

cả các giao dịch mới nhất và đồng bộ với bản sao của người dùng

Nói cách khác, một hệ thống phân tán được duy trì bởi công việc tập thể của nhiềungười dùng trên khắp thế giới Những người dùng này còn được gọi là các node mạng, và tất

cả các node này đều tham gia vào quá trình xác minh và xác thực giao dịch theo các quy tắccủa hệ thống Do đó, quyền lực là phi tập trung Công nghệ Blockchain cũng có thể được ápdụng trong các lĩnh vực khác không nhất thiết phải có các hoạt động tài chính Trong bốicảnh tiền điện tử, blockchain có vai trò lưu giữ hồ sơ vĩnh viễn của tất cả các giao dịch đãđược xác nhận

2 Lịch sử Blockchain

Ý tưởng đằng sau công nghệ blockchain được mô tả ngay từ năm 1991 khi các nhànghiên cứu Stuart Haber và W Scott Stornetta giới thiệu một giải pháp thực tế về mặt tính

Trang 6

toán để đánh dấu thời gian các văn bản số để chúng không bị đề lùi ngày về trước hoặc canthiệp vào Hệ thống đã sử dụng một chuỗi gồm các khối được bảo mật bằng mật mã để lưutrữ các văn bản được đánh dấu thời gian, và năm 1992, các cây Merkle đã được tích hợp vàothiết kế, khiến nó trở nên hiệu quả hơn bằng cách cho phép một khối có thể tập hợp một vàivăn bản Tuy nhiên, công nghệ này đã không được sử dụng và bằng sáng chế đã hết hạn vàonăm 2004, bốn năm trước khi Bitcoin ra đời.

Năm 2004, nhà khoa học máy tính và người theo chủ nghĩa mật mã Hal Finney (HaroldThomas Finney II) đưa ra một hệ thống gọi là RPoW, Proof Of Work Tái sử dụng Hệ thốnghoạt động bằng cách nhận một Hashcash không thể thay đổi hoặc không thể thay thế dựatrên token proof of work, và đổi lại đã tạo ra một token đã được ký RSA mà sau đó có thểđược trao đổi trực tiếp từ người này sang người khác RPoW đã giải quyết vấn đề vì tiêudùng hai lần bằng cách lưu giữ quyền sở hữu các token đã đăng ký trên một máy chủ đángtin cậy; máy chủ này được thiết kế để cho phép người dùng trên toàn thế giới xác minh tínhchính xác và liêm chính trong thời gian thực RPoW có thể được xem là một thử nghiệm banđầu và là những bước đầu tiên quan trọng trong lịch sử tiền điện tử

Vào cuối năm 2008, cuốn sách trắng giới thiệu về hệ thống tiền mặt điện tử mạngngang hàng, phi tập trung – tên là Bitcoin – đã được đăng trên danh sách nhận thư về mật mãhọc bởi một người hoặc tổ chức lấy biệt danh là Satoshi Nakamoto Dựa trên thuật toánproof of work Hashcash, nhưng thay vì sử dụng một hàm tính toán dựa trên phần cứng nhưRPoW, tính năng chống chi tiêu hai lần trong Bitcoin được cung cấp bởi một giao thức mạngngang hàng để theo dõi và xác thực các giao dịch Nói ngắn gọn, các thợ đào “đào” Bitcoin

để nhận phần thưởng bằng cách sử dụng cơ chế proof-of-work và sau đó xác minh bằng cácnode phi tập trung trong mạng Vào ngày 3 tháng 1 năm 2009, Bitcoin ra đời khi SatoshiNakamoto đào được khối bitcoin đầu tiên, đem lại phần thưởng 50 bitcoin Người nhậnBitcoin đầu tiên là Hal Finney, ông ta nhận được 10 bitcoin từ Satoshi Nakamoto trong giaodịch bitcoin đầu tiên của thế giới vào ngày 12 tháng 1 năm 2009

3 Nguyên lý hoạt động của Blockchain

Trang 7

Hệ thống blockchain được thiết kế theo cách không yêu cầu sự tin cậy và bảo đảm bởi

độ tin cậy có được thông qua các hàm mã hóa toán học đặc biệt Để có thể thực hiện các giaodịch trên blockchain, cần một phần mềm cho phép lưu trữ và trao đổi các đồng Bitcoin củagọi là ví tiền điện tử Ví tiền điện tử này sẽ được bảo vệ bằng một phương pháp mã hóa đặcbiệt đó là sử dụng một cặp khóa bảo mật duy nhất: khóa riêng tư (private key) và khóa côngkhai (public key)

Nếu một thông điệp được mã hóa bằng một khóa công khai cụ thể thì chỉ chủ sở hữucủa khóa riêng tư là một cặp với khóa công khai này mới có thể giải mã và đọc nội dungthông điệp

3.2 Quy tắc của sổ cái

Mỗi nút trong blockchain đều đang lưu giữ một bản sao của cuốn sổ cái công khai Dovậy, mỗi nút đều biết số dư tài khoản cũng như các giao dịch đã thực hiện của các địa chỉ

Hệ thống blockchain chỉ ghi lại mỗi giao dịch được yêu cầu chứ không hề theo dõi số dư tàikhoản

3.3 Nguyên lý tạo khối

Các giao dịch sau khi được gửi lên trên mạng lưới blockchain sẽ được nhóm vào cáckhối và các giao dịch trong cùng 1 khối (block) được coi là đã xảy ra cùng thời điểm Cácgiao dịch chưa được thực hiện trong 1 khối được coi là chưa được xác nhận

Mỗi nút có thể nhóm các giao dịch với nhau thành một khối và gửi nó vào mạng lướinhư một hàm ý cho các khối tiếp theo được gắn vào sau đó

Để được thêm vào blockchain, mỗi khối phải chứa một đoạn mã đóng vai trò như mộtđáp án cho một vấn đề toán học phức tạp được tạo ra bằng hàm mã hóa băm không thể đảongược

Cách duy nhất để giải quyết vấn đề toán học như vậy là đoán các số ngẫu nhiên, những

số khi mà kết hợp với nội dung khối trước tạo ra một kết quả đã được hệ thống định nghĩa.Điều này nhiều khi có thể mất khoảng một năm cho một máy tính điển hình với một cấu

Trang 8

3.4 Thuật toán bảo mật Blockchain

Nếu có bất kỳ sự bất đồng về khối đại diện sau cùng của chuỗi thì điều này sẽ dẫn đếnkhả năng gian lận Nếu một giao dịch xảy ra trong 1 khối thuộc về đuôi ngắn hơn khi khốitiếp theo được giải quyết, giao dịch đó sẽ trở lại thành giao dịch chưa được xác nhận vì tất cảcác giao dịch khác được nhóm vào trong khối kia

Mỗi block chứa một tham chiếu đến khối trước đó, và tham chiếu đó là một phần củavấn đề toán học cần được giải quyết để truyền khối sau tới mạng lưới Vì vậy, rất khó để tínhtoán trước một loạt các block bởi nó cần tính ra một số lượng lớn các số ngẫu nhiên cần thiết

để giải quyết một khối và đặt nó trên blockchain

Các giao dịch trong mạng lưới blockchain của bitcoin được bảo vệ bởi một cuộc chạyđua tính toán toán học: với bất kỳ kẻ tấn công nào muốn cạnh tranh với toàn bộ mạng lưới

Do đó, giao dịch ngày càng an toàn hơn theo thời gian Và những khối đã được thêmvào chuỗi trong quá khứ bao giờ cũng an toàn hơn so với những khối mới được thêm vào.Bởi một block được thêm vào chuỗi trung bình cứ 10p một lần cho nên trong khoảng 1h kể

từ khi giao dịch được nhóm vào trong khối đầu tiên của nó sẽ tạo ra một xác suất khá caorằng giao dịch đã được xử lý và không thể đảo ngược

4 Đặc điểm

4.1.Ưu điểm

Công nghệ Blockchain (Blockchain technology) đóng vai trò giống như một cuốn sổcái ghi lại tất cả các giao dịch xảy ra trong hệ thống Các đặc điểm chính của blockchain cóthể kể đến như:

Không thể làm giả, không thể phá hủy các chuỗi blockchain: Các chuỗi Blockchian gầnnhư không thể bị phá hủy được, và theo lý thuyết thì chỉ có máy tính lượng tử mới có thể canthiệp vào và giải mã chuỗi blockchain và nó chỉ bị phá hủy hoàn toàn khi không còn internettrên toàn cầu

Trang 9

Bất biến: Dữ liệu trong blockchan gần như không thể sửa đổi được (chỉ có thể sửa đổiđược bởi chính người đã tạo ra nó, nhưng phải được sự đồng thuận của các nút trên mạng)

và các dữ liệu đó sẽ lưu giữ mãi mãi

Bảo mật Dữ liệu: Các thông tin, dữ liệu trong các chuỗi blockchain được phân tán và

an toàn tuyệt đối chỉ có người nắm giữ private key mới có quyền truy xuất dữ liệu đó

Minh bạch: Ai cũng có thể theo dõi được đường đi của dữ liệu trong blockchain từ địachỉ này tới địa chỉ khác và có thể thống kê toàn bộ lịch sử trên địa chỉ đó

Hợp đồng thông minh: là các kỹ thuật số được nhúng bởi một đoạn code that (IFTTT) trong hệ thống, cho phép chúng tự thực thi mà không cần bên thứ ba.Blockchain không cần bên thứ ba tham gia vào hệ thống, và nó bảo đảm rằng tất cả các bêntham gia đều biết được chi tiết hợp đồng và các điều khoản sẽ được tự động thực hiện mộtkhi các điều kiện được bảo đảm

if-this-then-4.2.Nhược điểm

Tấn công 51%: Blockchain có tính an toàn cao tuy nhiên vẫn có thể bị tấn công, trong

đó đặc biệt được nhắc tới nhiều là tấn công 51% Cuộc tấn công như vậy sẽ xảy ra nếu cómột đơn vị kiểm soát hơn 50% sức mạnh của mạng lưới Điều này sẽ cho phép đơn vị nàyphá vỡ mạng lưới bằng cách cố ý ngăn chặn hoặc sửa đổi việc đặt các giao dịch

Rất khó sửa đổi dữ liệu: Một khi dữ liệu đã được thêm vào Blockchain thì việc sửa đổi

là rất khó Việc thay đổi dữ liệu hoặc mã Blockchain thường rất phức tạp và thường cần cómột hard fork (trong đó một chuỗi sẽ bị bỏ và một chuỗi mới được đưa lên)

Chìa khóa cá nhân: Người dùng cần chìa khóa cá nhân để truy cập vào block của họ,nghĩa là tự họ đóng vai trò như một ngân hàng tự giữ tiền Nếu người dùng mất chìa khóa cánhân, tiền sẽ bị mất và không thể mở khóa để lấy lại

Rất tốn điện: Quy trình này sử dụng rất nhiều điện Vì mỗi Blockchain đã sao chépchính mình đến mọi nút trên Blockchain nên đã tạo ra một số lượng lớn những sự dư thừa

Trang 10

5 Phân loại

Trong hệ thống Blockchain chia thành 3 loại chính gồm:

Public: Đây là hệ thống blockchain mà bất kỳ ai cũng có quyền đọc và ghi dữ liệu trênBlockchain được Quá trình xác thực giao dịch trên Blockchain này đòi hỏi phải có hàngnghìn hay thậm chí là hàng vạn nút tham gia Do đó để tấn công vào hệ thống Blockchainnày là điều bất khả thi vì chi phí rất cao Ví dụ về public blockchain: Bitcoin, Ethereum…Private: Đây là hệ thống blockchain cho phép người dùng chỉ được quyền đọc dữ liệu,không có quyền ghi vì điều này thuộc về một bên thứ ba tuyệt đối tin cậy Bên thứ ba này cóthể hoặc không cho phép người dùng đọc dữ liệu trong một số trường hợp Bên thứ ba toànquyền quyết định mọi thay đổi trên Blockchain Vì đây là một Private Blockchain, cho nênthờ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 xác thựcgiao dịch Ví dụ: Ripple là một dạng Private Blockchain, hệ thống này cho phép 20% các nút

là gian dối và chỉ cần 80% còn lại hoạt động ổn định là được

Permissioned: Hay còn gọi là Consortium, là một dạng của Private Blockchain nhưng

bổ sung thêm một số tính năng nhất định, kết hợp giữa “niềm tin” khi tham gia vào Public và

“niềm tin tuyệt đối” khi tham gia vào Private Ví dụ: Các ngân hàng hay tổ chức tài chínhliên doanh sẽ sử dụng Blockchain cho riêng mình

6 Các phiên bản

Hiện tại thì công nghệ blockchain có 3 phiên bản chính gồm:

Blockchain 1.0 – Tiền tệ và Thanh toán: Là phiên bản sơ khai và đầu tiên củablockchain, ưng dụng chính của phiên bản này là các công việc liên quan đến tiền mã hoá:bao gồm việc chuyển đổi tiền tệ, kiều hối và tạo lập hệ thống thanh toán kỹ thuật số Đâycũng là lĩnh vực quen thuộc với rất nhiều ngườt nhất, đôi khi khá nhiều người lầm tưởngBitcoin và Blockchain là một

Blockchain 2.0 – Tài chính và Thị trường: Đây là phiên bản thứ 2 của blockchain, ứngdụng của nó là xử lý tài chính và ngân hàng: mở rộng quy mô của Blockchain, đưa

Trang 11

blockchain tích hợp vào các ứng dụng tài chính và thị trường Các tài sản bao gồm cổ phiếu,chi phiếu, nợ, quyền sở hữu và bất kỳ điều gì có liên quan đến thỏa thuận hay hợp đồng.Blockchain 3.0 – Thiết kế và Giám sát hoạt động: Hiện tại đây đang là phiên bản caonhất của blockchain, với phiên bản này, công nghệ Blockchain sẽ vượt khỏi biên giới chỉphục vụ cho lĩnh vực tài chính, và đi vào các lĩnh vực khác như giáo dục, chính phủ, y tế vànghệ thuật…

7 Cơ chế đồng thuận

Cơ chế đồng thuận trong Blockchain có thể hiểu như cách thức mà mọi người quản lýtrong hệ thống blockchain có thể đồng ý cho một giao dịch xảy ra trong hệ thống Dưới đây

là các loại cơ chế đồng thuận phổ biến trong blockchain:

Proof of Work (Bằng chứng Công việc): Đây là cơ chế đồng thuận phổ biến nhất, đượcdùng trong Bitcoin, Ethereum, Litecoin, Dogecoin và hầu hết các loại tiền mã hoá Đây là cơchế đồng thuận tiêu tốn khá nhiều điện năng

Proof of Stake (Bằng chứng Cổ phần): Đây là cơ chế đồng thuận phổ biến trongDecred, Peercoin và trong tương lai là Ethereum và nhiều loại tiền mã hoá khác Cơ chếđồng thuận này phân cấp hơn, tiêu hao ít năng lượng và không dễ gì bị đe doạ

Delegated Proof-of-Stake (Uỷ quyền Cổ phần): Đây là cơ chế đồng thuận phổ biếntrong Steemit, EOS, BitShares Cơ chế đồng thuận này có chi phí giao dịch rẻ; có khả năng

mở rộng; hiệu suất năng lượng cao Tuy nhiên vẫn một phần hơi hướng tập trung vì thuậttoán này lựa chọn người đáng tin cậy để uỷ quyền

Proof of Authority (Bằng chứng Uỷ nhiệm): Đây là cơ chế đồng thuận phổ biến thườngthấy trong POA.Network, Ethereum Kovan testnet Cơ chế đồng thuận này có hiệu suất cao,

có khả năng mở rộng tốt

Proof-of-Weight (Bằng chứng Khối lượng /Càng lớn càng tốt): Đây là cơ chế đồngthuận phổ biến trong Algorand, Filecoin Cơ chế đồng thuận này có thể tuỳ chỉnh và khảnăng mở rộng tốt Tuy nhiên quá trình thúc đẩy việc phát triển sẽ là một thử thách lớn

Trang 12

Byzantine Fault Tolerance (Đồng thuận chống gian lận /Tướng Byzantine bao vâyBlockchain): Đây là cơ chế đồng thuận phổ biến trong Hyperledger, Stellar, Dispatch, vàRipple Cơ chế đồng thuận này có năng suất cao; chi phí thấp; có khả năng mở rộng Tuynhiên vẫn chưa thể tin tưởng hoàn toàn.

Trang 13

C ETHEREUM

1 Giới thiệu chung

Trong cộng đồng Blockchain nói riêng cũng như những người không chuyên nóichung, thì Ethereum là cái tên nổi tiếng thứ 2 sau Bitcoin Khác với Bitcoin là hệ thống tiềnđiện tử ngang hàng (Blockchain 1.0), Ethereum cho phép người tham gia có thể xây dựngnhững ứng dụng trên nền tảng này, đem các ứng dụng của Blockchain thoát ra khỏi sự đánhđồng với tiền ảo trong mắt nhiều người

1.1.Ethereum là gì ?

Ethereum là nền tảng điện toán phân tán, mã nguồn mở dựa trên công nghệ Blockchain

có khả năng thực thi hợp đồng thông minh (Smart Contract)

Đồng thời, nó cho phép các nhà phát triển xây dựng các ứng dụng phi tập trung (dapps)

và các tổ chức tự trị phi tập trung (decentralized autonomous organizations)

Mặc dù, đội ngũ phát triển Mastercoin rất ấn tượng với bản đề xuất của Vitalik Nhưng,

họ đã không áp dụng giải pháp đó vào dự án của họ

Hình thành

Sau khi MasterCoin không áp dụng giải pháp của mình, Vitalk đã tiếp tục nghiên cứu

và nhận ra rằng: Các smart contract có thể được khái quát hoá hoàn toàn

Trang 14

Vào tháng 11/2013, Vitalik lần đầu tiên chia sẻ bản whitepaper phác thảo củaEthereum.

Chỉ có vài chục người có quyền truy cập và đọc trước bản phác thảo này Sau đó họđưa ra những phản hồi, giúp cho Vitalik có thể hoàn thiện bản whitepaper cho Ethereum

Kể từ khi chia sẻ bản whitepaper, Vitalik đã có thêm một người đồng đội cùng tham giaxây dựng Ethereum và người đó chính là: Gavin Wood

Gavin Wood là người đầu tiên chủ động liên lạc với Vitalik và đề nghị giúp đỡ bằng kỹnăng lập trình C++ của mình

Vào mùa hè năm 2014, Gavin Wood công bố yellow paper cho Ethereum Cũng trongthời gian này, Vitalik cũng ra thông báo rằng Ethereum sẽ được phát triển bởi tổ chức phi lợinhuận Ethereum Foundation

Sau một năm xây dựng và phát triển, vào tháng 06/2015 khối block đầu tiên củaEthereum đã được khai thác Nó đánh dấu sự hình thành chính thức của chuỗi khốiEthereum

Một trong những chuỗi khối có tầm quan trọng nhất trong toàn bộ hệ sinh thái tiền điện

tử sau này

1.3.Ethereum Blockchain

Về cơ bản, Blockchain của Ethereum cũng như các Blockchain khác Nó sử dụng

phương thức GHOST (viết tắt của Greedy Heaviest Observed Subtree) để tránh sự phân

nhánh chuỗi Giao thức GHOST cho rằng phải chọn chuỗi block có nhiều tính toán nhấtđược thực hiện trên mạng blockchain làm chuỗi chính (chuỗi nặng nhất) Độ nặng của chuỗitrong Ethereum phụ thuộc vào số lượng block trong chuỗi đó và các uncle block của nó

Trang 15

Ethereum Blockchain được cấu thành bởi mạng lưới các máy tính hay còn gọi là

Nodes Các nodes sẽ phải chạy một chương trình máy ảo có tên Ethereum Virtual Machine (EVM)

Khi các nhà phát triển muốn xây dựng ứng dụng phi tập trung (dapps) trên Ethereum,

họ cần phải triển khai smart contract thông qua ngôn ngữ lập trình Solidity EVM sẽ chịu

trách nhiệm thực thi smart contract

Để kích hoạt việc thực thi các hoạt động như smart contract, lệnh giao dịch mạng

lưới cần đến một lượng phí gọi là “Gas" Phí “Gas” trong mạng Ethereum sẽ được thanh

toán bằng đồng tiền kỹ thuật số gọi là Ether (ETH)

Khi giao dịch được thực thi, đây là lúc cần đến việc xác nhận giao dịch đó có hợp lệhay không Trong mạng của Ethereum, thành phần đảm nhiệm việc xác nhận giao dịch này

có tên Miner Node Để mạng lưới vận hành độc lập, nhất quán các miner nodes phải tuân theo luật đồng thuận – Consensus (hay còn gọi là cơ chế đồng thuận) Ethereum sử dụng luật đồng thuận có tên Proof of Work (PoW) hay còn gọi là bằng chứng công việc Tức là

các miner nodes phải chứng minh được công việc họ đã hoàn thành và thông báo đến toànmạng lưới Sau đó, các miner nodes khác trong mạng lưới sẽ xác nhận xem bằng chứng này

là có hợp lệ hay không

Công việc ở đây có thể là:

- Tạo ra block mới bằng cách tìm ra lời giải thông qua thuật toán - Ethash

- Xác nhận giao dịch trên mạng lưới

Trang 16

Khi bằng chứng được thông qua (tức hợp lệ), dữ liệu giao dịch sẽ được ghi vàoBlockchain của Ethereum và không thể thay đổi.

1.4.Ethereum và Bitcoin

Về cơ bản, Ethereum và Bitcoin đều là một hệ thống Blockchain phân tán và côngkhai, tuy nhiên, mục đích chính, tầm nhìn của hai nền tảng này là hoàn toàn khác nhau.Trong khi Bitcoin được thành lập để trờ thành hệ thống thanh toán ngang hàng, một hệ thốngtiền tệ cho phép người dùng giao dịch trực tuyến bằng đồng Bitcoin thì Ethereum lại hướngđến việc trở thành nền tảng giúp cho việc phát triển các ứng dụng phi tập trung (Dapps) trởnên dễ dàng hơn

Ngoài ra, về mặt kỹ thuật (technical) Ethereum và Bitcoin còn có một số điểm khácnhau:

Người tạo lập Vitalik Buterin Satoshi Nakamoto

Cách thức xuất hiện Initial Coin Offering Genesis Block Mined

Thời gian tạo block mới 12 giây 240 giây

Vốn thị trường (2/2021) 222.14 triệu đô la Mỹ 1010.21 tỉ đô la Mỹ

Tốc độ giao dịch mỗi

2 Các khái niệm trong Ethereum

2.1 Ether (ETH)

ETH hay Ether là đồng tiền điện tử chính thức của chuỗi khối Ethereum Trong mạnglưới của Ethereum, ETH có vai trò như nhiên liệu để thực thi các hoạt động liên quan đếngiao dịch

Mọi tính toán xảy ra trên mạng Ethereum đều phải trả phí, với mỗi giao dịch, người gửi

Trang 17

tốn kém Do đó, hợp đồng thông minh Ethereum được sử dụng tốt nhất cho các tác vụ đơngiản, như chạy logic business đơn giản, xác minh chữ ký, thay vì sử dụng các tác vụ phứctạp hơn, như lưu trữ tệp, email hoặc học máy, có thể gây quá tải cho mạng Áp dụng phíngăn người dùng cố tính sử dụng các tác vụ nặng đó Một lý do khác là nền tảng Ethereumđược xây dựng với một ngôn ngữ hoàn chỉnh Turing (Turing-Complete) Nói đơn giản, ngônngữ Turing hoàn chỉnh là ngôn ngữ có thể mô phỏng bất kỳ thuật toán máy tính nào Điềunày cho phép các vòng lặp và khiến Ethereum dễ gặp phải vấn đề sự cố dừng (Haltingproblem) nếu không có phí giao dịch thì một người dùng xấu có thể dễ dàng phá vỡ mạngbằng cách thực hiện một vòng lặp vô hạn trong một giao dịch, mà không có gặp trở ngại nào.

2.2 Web3

Thư viện web3.js là một thư viện JavaScript mã nguồn mở (GNU Lesser GeneralPublic License phiên bản 3) được xây dựng bởi Ethereum Foundation, bao gồm các chứcnăng giao tiếp với các nút Ethereum thông qua giao thức JavaScript Object Notation –Remote Procedure Call (JSON-RPC) Nói cách khác, nó là một thư viện JavaScript hỗ trợcác nhà phát triển tương tác với chuỗi khối Ethereum

Trước đây, các nhà phát triển sử dụng web2, tuy nhiên, web2 có nhiều nhược điểm vàvấn đề, đó là:

- Sử dụng Stateless protocol: Giao thức không lưu dữ liệu của client trên server

- Không có cơ chế gốc để chuyển “state”

Vì vậy, điều này dẫn đến 2 vấn đề:

- Thiếu state: Khi thiếu state, sẽ không thấy bất cứ thông tin lưu trữ nào khi truyvấn từ một node (một thiết bị được kết nối với internet) về lịch sử hoặc trạngthái hiện tại của nó Điều này khiến tính ứng dụng và hiệu quả của Internetkhông cao

- Thiếu cơ chế gốc để chuyển đổi state

Do đó, web3 hình thành và được sử dụng bởi vì những lợi ích:

Trang 18

- Bất kỳ ai trong mạng đều có quyền sử dụng dịch vụ - hay nói cách khác, khôngcần có quyền.

- Không ai có thể chặn bạn hoặc từ chối bạn truy cập vào dịch vụ

- Thanh toán được tích hợp thông qua mã thông báo gốc, ether (ETH)

- Ethereum hoàn chỉnh, có nghĩa là bạn có thể lập trình khá nhiều thứ

Tuy nhiên, web3 cũng có một số hạn chế:

- Khả năng mở rộng - giao dịch chậm hơn trên web3 vì chúng được phân cấp.Các thay đổi đối với trạng thái, chẳng hạn như một khoản thanh toán, cần phảiđược xử lý bởi người khai thác và được phổ biến trên toàn mạng

- UX - tương tác với các ứng dụng web3 có thể yêu cầu các bước bổ sung, phần

Trang 19

- Chi phí - hầu hết các dapp thành công đều đưa một phần rất nhỏ code của họ lênblockchain vì nó đắt.

có 1 ưu điểm nổi bật so với web3

- Các tính năng của Ether.js

o Giữ private key ở client một cách an toàn

o Import và export JSON wallets

o Import và export ví theo chuẩn BIP 39

o Hỗ trợ ABI, ABIv2 và Human-Readable ABI

o Kết nối với Ethereum nodes thông qua nhiều provider như JSON-RPC,INFURA, Etherscan, Alchemy, Cloudflare, MetaMask

Trang 20

Ưu điểm của Ethers.js nằm ở sự nhỏ gọn, đồng thời chứa được số lượng lớn test case.

Nó cung cấp tài liệu hữu ích cho người mới bắt đầu sử dụng nó Nhiều nhà phát triển nhậnxét rằng ethers.js “đơn giản” và “trực quan” để sử dụng, và thư viện ngày càng trở nên phổbiến hơn trong hai năm qua, và số lượng tải xuống và sử dụng trong các dự án cũng tăng lên

2.4 Accounts

Ethereum có hai loại tài khoản:

- Thuộc sở hữu bên ngoài - được kiểm soát bởi bất kỳ ai bằng khóa cá nhân

- Hợp đồng - một hợp đồng thông minh được triển khai vào mạng, được kiểmsoát bằng mã Tìm hiểu về hợp đồng thông minh

Cả hai loại tài khoản đều có khả năng:

- Nhận, giữ và gửi ETH và mã thông báo

- Tương tác với các hợp đồng thông minh đã triển khai

Sự khác biệt giữa 2 loại tài khoản:

- Thuộc sở hữu bên ngoài

o Tạo một tài khoản không tốn phí

o Có thể bắt đầu giao dịch

o Giao dịch giữa các tài khoản thuộc sở hữu bên ngoài chỉ có thể là chuyểnETH

- Hợp đồng

o Việc tạo hợp đồng có chi phí vì bạn đang sử dụng bộ nhớ mạng

o Chỉ có thể gửi giao dịch khi nhận được giao dịch

o Các giao dịch từ tài khoản bên ngoài sang tài khoản hợp đồng có thể kíchhoạt mã có thể thực hiện nhiều hành động khác nhau, chẳng hạn nhưchuyển mã thông báo hoặc thậm chí tạo hợp đồng mới

Trang 21

Tài khoản Ethereum có bốn trường:

- nonce - một bộ đếm cho biết số lượng giao dịch được gửi từ tài khoản Điều này

đảm bảo các giao dịch chỉ được xử lý một lần Trong tài khoản hợp đồng, số nàyđại diện cho số lượng hợp đồng được tạo bởi tài khoản

- balance - số lượng “wei” thuộc sở hữu của địa chỉ này “Wei” là một mệnh giá

của ETH và có 1e + 18 “wei” trên mỗi ETH

- codeHash - hàm băm này đề cập đến mã của tài khoản trên máy ảo Ethereum

(EVM) Tài khoản hợp đồng có các đoạn mã được lập trình để có thể thực hiệncác hoạt động khác nhau Mã EVM này được thực thi nếu tài khoản nhận đượccuộc gọi tin nhắn Không thể thay đổi nó không giống như các trường tài khoảnkhác Tất cả các đoạn mã như vậy được chứa trong cơ sở dữ liệu trạng thái dướicác hàm băm tương ứng của chúng để truy xuất sau này Giá trị băm này đượcgọi là mã Hash Đối với các tài khoản thuộc sở hữu bên ngoài, trường codeHash

là hàm băm của một chuỗi trống

- storageRoot - Đôi khi được biết đến như một hàm băm lưu trữ Một băm 256

bit của node gốc của bộ ba Merkle Patricia mã hóa nội dung lưu trữ của tàikhoản (ánh xạ giữa các giá trị số nguyên 256 bit), được mã hóa thành bộ ba dướidạng ánh xạ từ băm 256 bit Keccak của 256 khóa số nguyên-bit cho các giá trị

số nguyên 256 bit được mã hóa RLP Bộ ba này mã hóa hàm băm của nội dunglưu trữ của tài khoản này và trống theo mặc định

Ngày đăng: 05/09/2021, 20:46

TỪ KHÓA LIÊN QUAN

w