Block Chain Là Gì? Ứng Dụng Của Công Nghệ BlockChain Và Bitcoin

0
22
Công nghệ Blockchain
Công nghệ Blockchain

Blockchain đang là công nghệ có ứng dụng thực tế nhiều nhất hiện nay trong tất cả lĩnh vực có liên quan đến công nghệ thông tin và quản lý. Tuy nhiên khái niệm Blockchain vẫn còn mơ hồ với rất nhiều người nếu không tiếp xúc và xử dụng nó. Vậy công nghệ Blockchain là gì ? Hãy cùng TOP 5 Reviews tìm hiểu tất tần tật về công nghệ này nhé.

1. Block Chain Là Gì?

Blockchain là một công nghệ cho phép truyền tải dữ liệu một cách an toàn dựa vào hệ thống mã hoá vô cùng phức tạp, tương tự cuốn sổ cái kế toán của một công ty, nơi mà tiền mặt được giám sát chặt chẽ. Trong trường hợp này Blockchain là một cuốn sổ cái kế toán hoạt động trong lĩnh vực kỹ thuật số.

Block chain Là Gì
Block Chain Là Gì

Blockchain sở hữu tính năng vô cùng đặc biệt đó là việc truyền tải dữ liệu không đòi hỏi một trung gian để xác nhận thông tin. Hệ thống Blockchain tồn tại rất nhiều nút độc lập có khả năng xác thực thông tin mà không đòi hỏi “dấu hiệu của niềm tin”.

Thông tin trong Blockchain không thể bị thay đổi và chỉ được bổ sung thêm khi có sự đồng thuận của tất cả các nút trong hệ thống. Đây là một hệ thống bảo mật an toàn cao trước khả năng bị đánh cắp dữ liệu. Ngay cả khi một phần của hệ thống Blockchain sụp đổ, những máy tính và các nút khác sẽ tiếp tục bảo vệ thông tin và giữ cho mạng lưới tiếp tục hoạt động.

1.1 Nguồn Gốc Và Tên Gọi Blockchain

Bất kỳ ai cũng có thể truy cập vào mạng lưới Bitcoin bằng các kết nối ẩn danh (có thể thông qua mạng TOR hoặc mạng VPN) và gửi hoặc nhận các giao dịch với các thông tin về khóa công khai của mình. Tuy nhiên, nếu người nào đó sử dụng cùng một khóa công khai nhiều lần thì có thể nhóm tất cả các giao dịch này vào cùng một chủ sở hữu.

Mạng Bitcoin cho phép bạn tạo nhiều ví tiền điện tử tùy thích, mỗi ví có các cặp khóa riêng tư (private key) và khóa công khai (public key) của riêng nó. Điều này cho phép bạn nhận thanh toán trên các ví khác nhau mà không cần liên kết với nhau. Không có cách nào để biết rằng bạn sở hữu tất cả các khóa khác nhau trên các ví khác nhau trừ khi bạn gửi tất cả số bitcoin đang sở hữu tới một ví điện tử chung.

Tổng số địa chỉ mà Bitcoin có thể cung cấp là 2¹⁶⁰ địa chỉ tương đương con số là 1461501637330902918203684832716283019655932542976. Số lượng lớn này có thể bảo vệ mạng lưới khỏi các cuộc tấn công trong khi vẫn cho phép bất kỳ ai sở hữu các
ví điện tử khác nhau.

Với thiết lập này, vẫn còn một lỗ hổng bảo mật lớn có thể được khai thác để thu hồi số Bitcoin sau khi đã gửi chúng đi. Các giao dịch được truyền từ nút này sang nút khác trong mạng, do đó 2 giao dịch cùng tiếp cận đến mỗi nút khác nhau có thể khác nhau. Kẻ tấn công có thể gửi một giao dịch, chờ cho đối tác gửi một sản phẩm và sau đó gửi một giao dịch đảo ngược lại vào tài khoản của chính mình. Trong trường hợp này, một số nút có thể nhận giao dịch thứ hai trước giao dịch đầu tiên và do đó xem xét giao dịch thanh toán đầu tiên là không hợp lệ bởi các giao dịch đầu vào đã được đánh dấu là đã chi tiêu. Làm thế nào để mạng lưới biết giao dịch nào đã được yêu cầu trước? Việc đặt giao dịch bằng dấu mốc thời gian không an toàn vì nó có thể dễ dàng giả mạo. Do đó, không có cách nào để biết liệu một giao dịch đã xảy ra trước một giao dịch khác và điều này sẽ tạo ra khả năng gian lận.

Nguồn Gốc Và Tên Gọi Blockchain
Nguồn Gốc Và Tên Gọi Blockchain

Nếu điều này xảy ra, sẽ có sự bất đồng giữa các nút trong mạng lưới liên quan đến thứ tự giao dịch mà mỗi nút nhận được. Vì vậy, hệ thống blockchain đã được thiết kế để tạo sự đồng thuận trong các giao dịch được yêu cầu và ngăn chặn các hành vi gian lận như được mô tả ở trên.

Mạng lưới Bitcoin sắp xếp các giao dịch bằng cách nhóm chúng lại vào các nhóm được gọi là các khối (block), mỗi khối chứa một số lượng các giao dịch nhất định và một liên kết đến khối trước đó. Như vậy theo thời gian các khối sẽ liên tiếp nối đuôi nhau và kết quả là các khối được tổ chức thành chuỗi và từ đó tên của hệ thống được hình thành blockchain.

1.2 Công Nghệ Trong Blockchain

Công nghệ Blockchain có thể nói là sự kết hợp giữa 3 loại công nghệ bên dưới:

  • Mật mã học: Sử dụng public key và hàm hash function để đảm bảo tính minh bạch, toàn vẹn và riêng tư.
  • Mạng ngang hàng: Mỗi một nút trong mạng được xem như một client và cũng là server để lưu trữ bản sao ứng dụng.
  • Lý thuyết trò chơi: Tất cả các nút tham gia vào hệ thống đều phải tuân thủ luật chơi đồng thuận (PoW, PoS…) và được thúc đẩy bởi động lực kinh tế.

Trên góc độ business có thể gọi là một sổ cái kế toán, hay một cơ sở dữ liệu chứa đựng tài sản, hay một cấu trúc dữ liệu, mà dùng để ghi chép lại lịch sử tài sản giữa các thành viên trong hệ thống mạng ngang hàng.

Trên góc độ kỹ thuật đó là một phương thức bất biến để lưu trữ lịch sử các giao dịch tài sản.

Trên góc độ xã hội đó là một hiện tượng, mà dùng để thiết lập niềm tin bằng quy tắc đồng thuận giữa các thành viên trong một hệ thống phân cấp.

1.3 Ý tưởng ra đời của Blockchain

Bắt nguồn từ bài toán Các vị tướng Byzantine (Byzantine Generals) trong ngành khoa học máy tính và xử lý đường truyền tin cậy trong một hệ thống phân cấp.

Ý tưởng ra đời của Blockchain
Ý tưởng ra đời của Blockchain

Nội dung bài toán mô tả: “Một đạo quân đi chiếm thành và các vị tướng nằm ở nhiều vị trí khác nhau. Trong đó có N tướng trung thành muốn chiếm thành và M tuớng phản bội muốn rút binh, một tướng phản bội truyền tin cho một nhóm là tấn công và truyền tin cho nhóm khác là rút binh. Vậy làm sao để các tướng có thể nhất quán thông tin và cùng nhau chiếm thành? Chỉ cần một sơ xuất trong việc truyền tin có thể khiến cả đạo quân có thể bị tiêu diệt”.

Nếu đồng loạt tấn công vào thành thì sẽ chiến thắng, bằng không tất cả sẽ bị tiêu diệt. Bài toán Các vị tướng Byzantine này vẫn chưa ai có thể đưa ra lời giải. Do đó chúng ta cần phải có một bên thứ ba để xây dựng lòng tin. Ví dụ như trong bài toán trên, cần có một bên thứ ba đứng ra làm thoả thuận để các tướng lĩnh ký tên vào, nếu vị tướng nào làm trái thoả thuận sẽ bị trừng phạt. Bên thứ ba đảm bảo cho việc chiếm thành của các vị tướng là đồng loạt, bởi vì các tướng có thể không tin nhau nhưng bắt buộc phải tin tưởng tuyệt đối vào bên thứ ba này.

Đây là ý tưởng mở đầu cho một hệ thống Blockchain có thể giúp các vị tướng tin tưởng nhau hơn.

Sau cuộc khủng hoảng tài chính năm 2008, hệ thống tài chính Mỹ sụp đổ hoàn toàn khiến người dân đánh mất niềm tin vào đồng tiền của một bên thứ ba đáng tin cậy. Ý tưởng về Bitcoin – một đồng tiền phân cấp ngang hàng trên mạng máy tính lần đầu tiên được Satoshi Nakamoto đưa ra, cũng là ứng dụng đầu tiên của Blockchain.

Một ví dụ khác, Bitcoin Vietnam News đặt cược 50 USD vào thời tiết ngày mai tại San Francisco. Chúng tôi cá là trời sẽ nắng, còn bạn cho rằng trời sẽ mưa. Như vậy tại thời điểm hiện tại chúng ta có ba phương án để thực hiện giao kết này:

Chúng ta có thể tin tưởng vào nhau. Kết quả là trời mưa hoặc nắng, thì người thua cuộc sẽ tặng 50 đô la cho người chiến thắng. Nếu chúng ta là bạn, đây có thể là một phương thức phù hợp để thực hiện giao kết này. Tuy nhiên với những người xa lạ, rất có thể người thua sẽ chối bỏ trách nhiệm và không trả tiền cho người đoán đúng.

Chúng ta có thể đưa giao kết này thành hợp đồng. Với một hợp đồng được ký kết thì sẽ dễ dàng để buộc người thua cuộc phải thực hiện trách nhiệm thanh toán của mình cho người thắng tuy nhiên nếu có một ai đó quyết định không trả tiền, người chiến thắng sẽ phải trả thêm tiền để trang trải các chi phí pháp lý và để có được các phán quyết có lợi từ tòa án điều này có thể mất nhiều thời gian. Đặc biệt đối với một lượng tiền mặt khá nhỏ như trong giao kèo này, điều này dường như không phải là cách hữu hiệu để quản lý giao kết này.

Chúng ta có thể viện dẫn một bên liên quan đóng vai trò là một bên thứ ba trung lập làm trung gian. Mỗi người trong chúng ta sẽ gửi trước 50 đô la cho bên thứ ba này, sau đó họ sẽ đưa tổng số tiền cho người chiến thắng. Tuy nhiên lúc này niềm tin lại được đặt vào vai trò của người thứ ba, họ có thể bỏ trốn với tất cả số tiền đó. Vì vậy, thông thường các giao kết như vậy sẽ được thực hiện với một trong hai phương án đầu.

Tuy vậy giao kết dựa vào niềm tin và dựa vào hợp đồng vẫn chưa phải là giải pháp tối ưu. Công nghệ Blockchain rất thú vị vì nó cung cấp cho chúng ta một phương án mà không cần tin tưởng vào bên thứ ba, vô cùng nhanh chóng và rẻ tiền.

Blockchain cho phép chúng ta soạn thảo các đoạn mã để tạo ra một chương trình chạy trên blockchain, và khi đó cả hai bên cùng gửi 50 đô la. Chương trình này sẽ giữ 100 đô là an toàn và sẽ kiểm tra thời tiết vào ngày hôm sau một cách tự động dựa vào một số nguồn dữ liệu. Và theo đó tùy theo kết quả là trời nắng hoặc mưa, nó sẽ tự động chuyển toàn bộ số tiền cho người chiến thắng. Mỗi bên tham gia có thể kiểm tra tính logic của hợp đồng và khi nó đã được đưa lên trên blockchain và thực thi thì nó không thể thay đổi hoặc dừng lại được.

Mục tiêu của ví dụ này để giải thích nguyên lý mà Blockchain hoạt động với những ngôn từ đơn giản tránh đi sâu vào chi tiết kỹ thuật và cố gắng truyền tải cho bạn một khái niệm chung về tính logic và cơ chế ngầm định sâu xa của nó.

Có thể bạn quan tâm:

2. Nguyên Lý Hoạt Động Của Blockchain

2.1 Bitcoin: Ứng dụng Blockchain đầu tiên

Ứng dụng được biết đến và thảo luận nhiều nhất về công nghệ Blockchain chính là đồng tiền điện tử Bitcoin. Hiện nay đồng tiền điện tử này có thể được sử dụng để trao đổi các sản phẩm và dịch vụ, giống như đồng đô la Mỹ (USD), Euro (EUR), đồng nhân dân tệ Trung Quốc (CNY) và các loại tiền tệ của các quốc gia khác. Do vậy chúng ta sẽ tạm lấy đồng tiền này làm đại diện để nói về nguyên lý hoạt động của công nghệ Blockchain.

“Bitcoin thực sự là ứng dụng đầu tiên của công nghệ blockchain cho phép chúng ta có thể gửi một tài sản dạng điện tử số thông qua mạng internet tới một người dùng khác trên mạng Internet, bên cạnh đó giao dịch này được đảm bảo an toàn và bảo mật, mọi người đều biết rằng việc chuyển tiền này đã diễn ra và không ai có thể xen vào và can thiệp hay sửa đổi quá trình này,” theo Marc Andreessen.

Bitcoin là một đơn vị tiền tệ kỹ thuật số với mã là BTC, cũng giống như đô la Mỹ bản thân nó không mang giá trị, nó chỉ có giá trị bởi vì có một cộng đồng đồng ý sử dụng nó làm đơn vị giao dịch hàng hóa và dịch vụ.

Để theo dõi số lượng Bitcoin mà mỗi người sở hữu trong các tài khoản nhất định và theo dõi các giao dịch phát sinh từ đó thì chúng ta cần đến một cuốn sổ kế toán, trong trường hợp này nó chính là blockchain và đây thực tế là một tệp kỹ thuật số theo dõi tất cả các giao dịch Bitcoin.

Tệp sổ cái này không được lưu trữ trong một máy chủ trung tâm, như trong một ngân hàng hoặc trong một trung tâm dữ liệu mà ngược lại nó được phân phối trên toàn thế giới thông qua một mạng lưới các máy tính ngang hàng với vai trò lưu trữ dữ liệu và thực thi các tính toán. Mỗi máy tính này đại diện cho một “nút” của mạng lưới blockchain và mỗi nút đều có một bản sao của tệp sổ cái này.

Nếu David muốn gửi Bitcoin cho Sandra, anh ta sẽ phát một thông báo tới mạng lưới và cho biết số lượng Bitcoin trong tài khoản của mình sẽ giảm 5 BTC và số lượng Bitcoin trong tài khoản của Sandra sẽ tăng lên tương ứng. Mỗi nút trong mạng sau đó sẽ nhận được thông báo này và ánh sạ giao dịch được yêu cầu vào bản sao sổ cái kế toán của họ, và theo đó số dư tài khoản của cả hai bên đều được cập nhật.

2.2 Nguyên lý mã hoá của Blockchain

Thực tế là sổ kế toán luôn được duy trì bởi một nhóm các máy tính được kết nối trong mạng ngang hàng thay vì việc dựa vào một thực thể tập trung như một ngân hàng đóng vai trò trung gian.

Với đặc tính kỹ thuật như vậy nó sẽ có một số khác biệt:

⚫ Trong khi trong hệ thống ngân hàng của chúng ta, chúng ta chỉ biết các giao dịch và số dư tài khoản của riêng mình thì trên blockchain của bitcoin mọi người đều có thể xem các giao dịch của tất cả mọi người.

⚫ Trong khi bạn phải đặt niềm tin vào ngân hàng của bạn thì mạng lưới Bitcoin là mạng lưới phân tán không có bên thứ ba đóng vai trò trung gian xử lý giao dịch.

⚫ 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.

Chúng tôi có thể định nghĩa blockchain như một hệ thống cho phép một nhóm các máy tính duy trì kết nối với một cuốn sổ cái được cập nhật và bảo mật. Để có thể thực hiện các giao dịch trên blockchain, bạn cần một ví tiền điện tử, đây là một chương trình phần mềm sẽ cho phép bạn lưu trữ và trao đổi các đồng Bitcoin của bạn. Vì chỉ có bạn mới có thể chi tiêu các đồng Bitcoin của mình do vậy mỗi chiếc ví tiền điện tử này được bảo vệ bằng một phương pháp mã hóa đặc biệt 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ông khai (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ữu củ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 dung thông điệp. Khi David muốn gửi Bitcoin, anh ta cần phát một thông điệp được mã hóa bằng khóa riêng của ví điện tử của mình, vì thế anh ta chỉ có thể dùng Bitcoin mà anh ta sở hữu vì David là người duy nhất biết khóa riêng tư của anh cần thiết để mở ví điện tử của mình. Mỗi nút trong mạng có thể kiểm tra chéo các yêu cầu giao dịch được gửi từ David là chính xác hay không bằng cách giải mã thông điệp yêu cầu giao dịch bằng khóa công khai của David.

Nguyên lý mã hoá của Blockchain
Nguyên lý mã hoá của Blockchain

Khi mã hóa một yêu cầu giao dịch bằng khóa riêng tư từ ví của bạn tức là bạn đang tạo ra một chữ ký điện tử được các máy tính trong mạng lưới blockchain sử dụng để kiểm tra chủ thể gửi và tính xác thực của giao dịch. Chữ ký này là một chuỗi văn bản và nó là kết quả của việc kết hợp yêu cầu giao dịch và khóa riêng tư của bạn. Nếu bạn thay đổi một ký tự đơn trong thông điệp yêu cầu giao dịch này thì chữ ký điện tử sẽ thay đổi theo vì vậy không có kẻ tấn công tiềm tàng nào có thể thay đổi yêu cầu giao dịch của bạn hoặc thay đổi số lượng Bitcoin mà bạn đang gửi.

Để gửi bitcoin, bạn cần chứng minh rằng bạn sở hữu khóa riêng tư của một chiếc ví điện tử cụ thể bởi bạn cần sử dụng nó để mã hóa thông điệp yêu cầu giao dịch. Và một khi bạn đã gửi tin nhắn đi sau khi nó đã được mã hóa thì bạn không bao giờ cần phải tiết lộ khóa riêng tư của bạn.

2.3 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 sổ kế toán. Do vậy mỗi nút đều biết số dư tài khoản của bạn là bao nhiêu. Hệ thống blockchain không hề theo dõi số dư tài khoản mà nó chỉ ghi lại mỗi giao dịch được yêu cầu. Sổ cái trên thực tế không theo dõi số dư, nó chỉ theo dõi mọi giao dịch được phát đi trong mạng lưới Bitcoin. Để biết số dư trên ví điện tử của bạn, bạn cần xác thực và xác nhận tất cả các giao dịch đã diễn ra trên mạng lưới mà có liên quan tới ví điện tử của bạn.

Việc xác minh “số dư” này được thực hiện nhờ các tính toán dựa vào liên kết đến các giao dịch trước đó. Để gửi 10 bitcoin cho John, Mary phải tạo yêu cầu giao dịch bao gồm các liên kết đến các giao dịch đã diễn ra trước đó với tổng số dư bằng hoặc vượt quá 10 bitcoin. Các liên kết này được xem như là giá trị đầu vào, các nút trong mạng lưới sẽ xác minh xem tổng số tiền của các giao dịch này bằng hoặc vượt quá 10 bitcoin không. Tất cả điều này được thực hiện tự động trong ví điện tử của Mary và được kiểm tra bởi các nút trên mạng lưới Bitcoin, Mary chỉ gửi một giao dịch 10 BTC tới ví của John bằng khóa công khai của John.

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

Như vậy có một câu hỏi được đặt ra đó là làm thế nào hệ thống có thể tin tưởng các giao dịch đầu vào này và xác thực tính hợp lệ của chúng? Thực tế là các nút sẽ kiểm tra tất cả các giao dịch trước đó có liên quan đến ví tiền điện tử bạn sử dụng để gửi Bitcoin thông qua các tham chiếu lịch sử giao dịch. Để đơn giản hóa và tăng tốc quá trình xác minh, một bản ghi đặc biệt sẽ lưu trữ số Bitcoin chưa được dùng sẽ được các nút mạng lưu giữ. Nhờ cơ chế kiểm tra này nên các ví tiền điện tử tránh được tình trạng chi tiêu đúp giao dịch.

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

“Như vậy sở hữu Bitcoin có nghĩa là có các giao dịch được lưu trong sổ kế toán liên hệ đến địa chỉ ví của bạn mà chưa được sử dụng làm giao dịch đầu vào.”

Tất cả mã nguồn để thực hiện các giao dịch trên mạng lưới Bitcoin đều là nguồn mở, điều này có nghĩa là bất kỳ ai có máy tính xách tay và kết nối internet đều có thể tham gia vào mạng lưới và thực hiện giao dịch. Tuy nhiên, nếu có bất kỳ lỗi lầm nào trong mã nguồn được sử dụng để phát thông báo yêu cầu giao dịch, các Bitcoin liên quan sẽ bị mất vĩnh viễn. Hãy nhớ rằng các mạng lưới này là mạng phân tán nên không có bộ phận hỗ trợ khách hàng hoặc không hề có bất cứ ai có thể giúp bạn khôi phục lại một giao dịch bị mất hoặc quên mật khẩu ví tiền điện tử của bạn. Vì lý do này, nếu bạn quan tâm đến giao dịch trên mạng lưới Bitcoin, bạn nên lưu trữ mật khẩu hoặc khóa riêng tư của ví của bạn rất cẩn thận và an toàn.

2.4 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ác khối. Các giao dịch trong cùng một khối được coi là đã xảy ra cùng một lúc và các giao dịch chưa được thực hiện trong một 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ưới như một hàm ý cho các khối tiếp theo được gắn vào sau đó.

Vì bất kỳ nút nào cũng có thể tạo một khối mới nên có một câu hỏi đặt ra là cả hệ thống sẽ đồng thuận với khối nào sẽ là khối tiếp theo?

Để đượ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ể đảo ngượ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 hình cơ bản có thể đoán đúng các con số đáp án của vấn đề toán học này.

Tuy nhiên, do trong mạng lưới luôn có một số lượng lớn các máy tính đều tập trung vào việc đoán ra dãy số này nên mạng lưới quy định mỗi khối được tạo ra sau một quãng thời gian là 10 phút một lần. Nút nào giải quyết được vấn đề toán học như vậy sẽ được quyền gắn khối tiếp theo lên trên chuỗi và gửi nó tới toàn bộ mạng lưới.

Vậy điều gì sẽ xảy ra nếu hai nút giải quyết cùng một vấn đề cùng một lúc và truyền các khối kết quả của chúng đồng thời lên mạng lưới? Trong trường hợp này, cả hai khối được gửi lên mạng lưới và mỗi nút sẽ xây dựng các khối kế tiếp trên khối mà nó nhận được trước tiên, tuy nhiên hệ thống blockchain luôn yêu cầu mỗi nút phải xây dựng trên chuỗi khối dài nhất mà nó nhận được. Vì vậy, nếu có sự mơ hồ về việc khối nào là khối cuối cùng thì ngay sau khi khối tiếp theo được giải quyết thì mỗi nút sẽ áp dụng vào chuỗi dài nhất.