Block chain 4: Cách Blockchain hoạt động?
Ngày bé, tôi thường chơi nhảy dây với các bạn. Dây được tạo thành từ các dây chun tròn. Từng cái dây chun nối với nhau thành một...
Ngày bé, tôi thường chơi nhảy dây với các bạn. Dây được tạo thành từ các dây chun tròn. Từng cái dây chun nối với nhau thành một sợi dài thật dài. Và ta nhảy dây thôi. Block chain chẳng khác gì một trò chơi trẻ con cả. Bạn có
thể buộc từng dây thun theo nhiều cách miễn là liên tiếp thành một sợi dài.
thể buộc từng dây thun theo nhiều cách miễn là liên tiếp thành một sợi dài.
Hay là bạn này
Nâng cao hơn nè, làm sao 5 cánh
Hay là buộc dây như sau.
Cấu trúc toán học chỉ là một cách buộc nốt thôi mà, có nhiều cách buộc khác nhau và cho nhiều mục đích.
Và đây, phiên bản Block chain của Người lớn
Nó đến từ đâu, nó làm gì, và cách nó được tạo ra?
Nó là gì?
Một cuốn sổ cái phân quyền có tính công khai, lâu bền, chỉ ghi nhận thêm giao dịch mà không xóa đi.
Thực chất nó là gì?
Một cấu trúc toán học để lưu trữ dữ liệu theo cách gần như không thể làm giả. Nó có thể được sử dụng cho tất cả các loại dữ liệu có giá trị.
Phần 1: Từng bước của Blockchain
Phần 2: Về mặt chi tiết Công nghệ
Nó từ đâu đến?
“Tôi đã làm việc trên một hệ thống tiền mặt điện tử mới với cơ chế hoàn toàn ngang hàng mà không có sự can thiệp của các bên thứ ba”. Đây là những lời của Satoshi Nakamoto, người sáng tạo bí ẩn của Bitcoin, trong một tin nhắn được gửi vào tháng 10/2008, kèm theo đó là đường link một white paper chín trang mô tả một công nghệ có thể phá vỡ hệ thống tài chính hiện thời.
Nakamoto khai thác các bitcoin đầu tiên vào tháng 1/2009, và với điều đó, thời đại tiền mã hóa chính thức bắt đầu. Nhưng trong khi nguồn gốc của nó khá mập mờ nhưng công nghệ đã làm cho nó trở nên khả thi, hình thành nên thứ mà bây giờ chúng ta gọi là blockchain. Nakamoto kết hợp các công cụ mã hóa truyền thống với các phương pháp bắt nguồn từ nhiều thập kỷ trong ngành khoa học máy tính để tạo ra một mạng lưới cộng đồng với sự tham gia của các thành viên, trong đó chiếc sổ cái kế toán sẽ phản ánh trung thực các lịch sử giao dịch. Điều này làm cho một người không thể chi tiêu cùng một bitcoin hai lần, giải quyết vấn đề mà đã cản trở các nỗ lực trước đây để tạo ra tiền kỹ thuật số. Và, quan trọng, nó giúp loại bỏ sự cần thiết của một cơ quan trung gian để điều phối các giao dịch chuyển tiền.
Sự phổ biến của Bitcoin bắt đầu phát triển nhanh chóng vào năm 2011, sau khi một bài báo của Gawker chỉ ra Silk Road, một thị trường ma túy trực tuyến được Bitcoin hỗ trợ. Những đồng tiền cải tiến được gọi là “altcoin” bắt đầu nổi lên, thường sử dụng mã nguồn mở của Bitcoin. Trong vòng hai năm, tổng giá trị bitcoin trong lưu thông đã vượt qua 1 tỷ USD.
Ngay sau đó, các nhà công nghệ nhận ra rằng các blockchain có thể được sử dụng để theo dõi những thứ khác ngoài tiền. Vào năm 2013, cậu bé 19 tuổi Vitalik Buterin đã đề xuất Ethereum, không chỉ ghi lại các giao dịch tiền tệ mà còn là tình trạng của các chương trình máy tính được gọi là hợp đồng thông minh. Ra mắt vào năm 2015, Ethereum – và hiện là kẻ đứng đầu trong thị trường – hứa hẹn sẽ tạo ra một thế hệ ứng dụng mới trông giống như các ứng dụng web ngày nay nhưng được cung cấp bởi các mạng tiền điện tử phi tập trung thay vì các máy chủ của công ty.
1. Giao dịch được sinh ra
Trong Bitcoin, một giao dịch là việc chuyển tiền điện tử từ một người (Alice) sang một người khác (Bob). Trong Ethereum, bao gồm một ngôn ngữ lập trình có sẵn có thể được sử dụng để tự động hóa các giao dịch, giao dịch sẽ có nhiều loại. Alice có thể gửi tiền điện tử cho Bob. Hoặc ai đó có thể tạo một giao dịch đặt một dòng mã, được gọi là hợp đồng thông minh, trên blockchain. Sau đó, Alice và Bob có thể gửi tiền vào tài khoản mà chương trình này kiểm soát, để kích hoạt nó một khi một số điều kiện nhất định được mã hóa trong hợp đồng được đáp ứng. Một hợp đồng thông minh cũng có thể gửi các giao dịch đến blockchain mà nó được nhúng vào.
2. Giao dịch được phát đến một mạng ngang hàng
Giả sử Alice muốn gửi tiền cho Bob. Để làm như vậy, Alice tạo một giao dịch trên máy tính của mình và phải tham chiếu giao dịch trong quá khứ trên blockchain, trong đó cô nhận đủ tiền, cũng như khóa riêng của cô đối với số tiền và địa chỉ của Bob. Giao dịch đó sau đó được gửi tới các máy tính khác hoặc “các nút” trong mạng. Các nút sẽ xác thực giao dịch miễn là nó đã tuân thủ các quy tắc của mạng. Sau đó các nút khai thác (sẽ miêu tả cụ thể trong bước 3) sẽ chấp nhận nó, và nó sẽ trở thành một phần của một khối mới.
3. Cuộc đua tạo các khối mới
Một tập con của các nút, được gọi là thợ mỏ, tổ chức các giao dịch hợp lệ thành các danh sách được gọi là các khối. Một khối đang được xây dựng sẽ chứa danh sách các giao dịch hợp lệ gần đây và tham chiếu mật mã tới khối trước đó. Trong các hệ thống blockchain như Bitcoin và Ethereum, các thợ mỏ chạy đua để hoàn thành các khối mới, một quá trình đòi hỏi phải giải quyết một câu đố toán học cần nhiều nhân lực, đây là câu đố duy nhất cho mỗi khối mới. Người khai thác đầu tiên để giải quyết các câu đố sẽ kiếm được một số cryptocurrency như một phần thưởng. Các câu đố toán học liên quan đến phán đoán ngẫu nhiên tại một số nonce. Các nonce được kết hợp với các dữ liệu khác trong khối để tạo ra một dấu vân tay kỹ thuật số được mã hóa, được gọi là một hash.
4. Hoàn thành một khối mới
Hash phải đáp ứng các điều kiện nhất định; nếu không, thợ mỏ sẽ thử một nonce ngẫu nhiên khác và tính lại giá trị hash. Phải rất mất công để tìm được một hash hợp lệ. Quá trình này ngăn chặn tin tặc bởi sẽ rất khó để sửa đổi sổ cái. Trong khi một số blockchain sử dụng các hệ thống khác để bảo vệ, cách này còn có tên là proof of work.
5. Thêm một khối mới vào chuỗi
Đây là bước cuối cùng trong việc bảo vệ sổ cái. Khi một nút khai thác trở thành nút đầu tiên giải quyết câu đố mã hóa của khối mới, nó sẽ gửi khối tới phần còn lại của mạng để phê duyệt, thu thập các token để nhận phần thưởng. Khó khăn khai thác được mã hóa trong giao thức của blockchain; Bitcoin và Ethereum được thiết kế để làm cho nó ngày càng khó khăn để giải quyết một khối theo thời gian. Vì mỗi khối cũng chứa một tham chiếu đến khối trước đó, các khối được liên kết với nhau bằng toán học. Giả mạo với một khối trước đó sẽ yêu cầu lặp lại proof of work cho tất cả các khối tiếp theo trong chuỗi.
Phần 2: Chi tiết về Công nghệ
Khái niệm Blockchain
Khoảng hai tuần trước, tôi đã xây dựng một blockchain từ đầu để hiểu về nó nhiều hơn. Tôi làm vậy để chuẩn bị cho một phiên hội thảo tại Malaysia mang tên Cuộc cách mạng Blockchain thuộc khuôn khổ Hội nghị chuyên đề Magic Academy năm 2017. Trước đây tôi chỉ xây dựng trên …www.tapchibitcoin.vn
Khoảng hai tuần trước, tôi đã xây dựng một blockchain từ đầu để hiểu về nó nhiều hơn. Tôi làm vậy để chuẩn bị cho một phiên hội thảo tại Malaysia mang tên Cuộc cách mạng Blockchain thuộc khuôn khổ Hội nghị chuyên đề Magic Academy năm 2017. Trước đây tôi chỉ xây dựng trên …www.tapchibitcoin.vn
Khoảng hai tuần trước, tôi đã xây dựng một blockchain từ đầu để hiểu về nó nhiều hơn. Tôi làm vậy để chuẩn bị cho một phiên hội thảo tại Malaysia mang tên Cuộc cách mạng Blockchain thuộc khuôn khổ Hội nghị chuyên đề Magic Academy năm 2017. Trước đây tôi chỉ xây dựng trên blockchain Bitcoin hiện có. Các thuật ngữ như ‘phân tán’, ‘sổ cái’, ‘phân quyền’, ‘hàm băm mật mã’, ‘bằng chứng xử lý’ đã khơi gợi các khái niệm trong đầu tôi. Các thuật ngữ trở nên đơn giản hơn khi tôi xây dựng phiên bản blockchain của riêng mình. Tôi cũng đã choáng ngợp khi nhận ra tiền và hợp đồng có thể lập trình được! Chúng ta đang chứng kiến một cuộc cách mạng với xu hướng hiện hành huy động vốn thông qua Initial Coin Offerings của các công ty. Các hệ sinh thái mới đang phát triển, nơi các doanh nghiệp (thậm chí cả cá nhân) có thể phát hành đồng tiền số riêng của họ. Không cần phải là một quốc gia có chủ quyền để thực hiện điều đó. Thật đáng kinh ngạc! Giờ đây bạn có thể chọn nơi để gửi gắm niềm tin, đó là một chủ đề mà tôi đặc biệt quan tâm. Nếu bạn không tin một đồng tiền hoặc token nhất định, bạn có thể hướng đến một loại khác… hoặc tạo ra đồng tiền của riêng bạn.
Đi ngược lại một chút, trước tiên hãy tìm hiểu nguyên lý hoạt động của blockchain. Phát triển kiến thức từ gốc giúp chúng ta hiểu được bức tranh lớn mà các nhà phát triển blockchain tuyệt vời cũng như các doanh nghiệp và nhà đổi mới đang vẽ lên xung quanh chúng ta trong công cuộc xây dựng tương lai của tiền tệ và các loại hợp đồng.
Lưu ý nhỏ: Mục đích của bài viết là giúp bạn đọc hiểu các thuật ngữ về blockchain và cách hoạt động của nó. Dù bạn là chuyên viên kỹ thuật hoặc nhà kinh doanh, hãy đọc tiếp kể cả các đoạn mã nhé.
Blockchain là gì?
Một danh sách các block (hồ sơ) được liên kết với nhau bằng các hash (hàm băm), được duy trì như một cơ sở dữ liệu phân tán và phi tập trung.
Trước tiên chúng ta hãy xem những thành phần cấu thành một block:
Mỗi block trong blockchain bao gồm:
previous_block_hash: Hàm băm là bước cơ bản trong việc tạo ra một blockchain. Nó bao gồm việc lấy một chuỗi ký tự có độ dài bất kỳ, cho chạy một thuật toán (Bitcoin sử dụng thuật toán SHA-256) và xuất hàm đầu ra có độ dài cố định. Mở rộng khái niệm này ra một chút.
index: Xác định số block.
data: Đây là phần cho phép lập trình tiền hoặc hợp đồng. Nó có thể là một đối tượng có chứa thông tin như địa chỉ ‘đến’, địa chỉ ‘từ’ và ‘số lượng’ (đối với tiền tệ) hoặc các chi tiết/logic để thực hiện hợp đồng.
timestamp: Thời gian khi block được tạo ra
current_block_hash: Như chúng ta sẽ thấy trong phần tiếp theo, tính bất biến của blockchain phát sinh từ đây.
nonce: Một chuỗi (tùy ý) được thêm vào hàm băm của block để thiết lập thuật toán Bằng chứng xử lý (PoW), yêu cầu đưa các node cạnh tranh đi đến một thỏa thuận chung để để chấp nhận block nào trong bước tiếp theo của một blockchain phát triển.
Vai trò của Hàm băm trong Blockchain
Một hàm băm được sử dụng để xác định duy nhất nội dung của một block. Như hiển thị trong đoạn mã ở trên, hàm băm của block được tạo ra bằng thuật toán SHA-256 từ tất cả các thành phần của block trước đó: hàm băm, index (tùy chọn), data (dữ liệu) và timestamp (dấu thời gian).
Kết quả là một hàm băm duy nhất được tạo ra để xác định block. Nếu một trong các trường dữ liệu trên thay đổi, hàm băm tương ứng sẽ khác đi, do đó bạn có thể biết rằng nội dung block đã được thay đổi.
Hơn nữa, vì block đó là một bộ phận của blockchain dài hơn, previous_block_hash (hàm băm block trước đó) của block kế tiếp sẽ khác biệt và không tương thích. Điều này lần lượt ảnh hưởng đến block sau đó và sau đó nữa.
Vì vậy, hàm băm tăng cường tính bảo mật của block, và tất cả các block trước đó cho đến block nguồn (block đầu tiên). Phương pháp bảo mật như vậy tạo tính chất bất biến cho blockchain. Nếu phân tán một blockchain (nằm trên các node/máy tính khác nhau), một nhân tố tiêu cực phải có đủ quyền lực hàm băm để cập nhật nhiều block và kiểm soát mạng lưới nhằm lan truyền phiên bản blockchain của mình. Điều này càng khó khăn hơn khi blockchain có tính phân quyền, như tôi chia sẻ trong phần tiếp theo.
Trong kho lưu trữ mã, khi bạn khởi động ruby blockchain_generator.rb, dữ liệu đầu ra sẽ có dạng như sau:
Đầu ra cho thấy dạng của các block trong blockchain khi được tạo ra bởi một node, cấu thành một blockchain phân quyền. Nó an toàn đến một mức độ nhất định nhờ sử dụng cơ chế hàm băm cho từng block và độ an toàn sẽ tăng lên khi chiều dài của blockchain phát triển. Lưu trữ blockchain trên nhiều node khiến nó có tính phân tán, nhờ đó tăng cường bảo mật thông qua các bản sao.
Do tính chất bất biến, phân tán của blockchain, Công nghệ Sổ cái Phân tán (DLT) cải thiện cách ghi nhận hoặc chia sẻ dữ liệu mà vẫn đảm bảo tầm nhìn thống nhất, chống giả mạo trên nhiều bên, bên nào cũng có thể kiểm tra dữ liệu. Một số ngành công nghiệp có thể đạt tới bước cải tiến rất lớn về năng suất thông qua DLT khi các giao dịch được xác minh, mã hóa và đánh dấu thời gian cũng như ghi nhận một cách minh bạch.
Dựa vào những gì chúng ta đang đề cập đến, khi các node có thể cập nhật lẫn nhau mà không cần chính quyền trung tâm, ta gọi đó là tính phân quyền của blockchain.
Tính phi tập trung
Nếu một node cập nhật tất cả các node khác, blockchain có tính tập trung. Nếu một node bất kỳ có thể cập nhật các node khác thì gọi là blockchain phi tập trung.
Để thực hiện phân quyền an toàn, cần có một phương thức nhằm đạt sự đồng thuận trong một mạng lưới các node.
Một trong những phương thức phổ biến là sử dụng Bằng chứng Xử lý (PoW). Đó là một thuật toán khiến các node trong mạng lưới đạt sự đồng thuận phân tán. Bước này yêu cầu sử dụng tham số nonce.
Khi một block mới đang hình thành như mô tả ở trên, tất cả các nội dung đều được chuyển thành hàm băm. Đầu ra của một hàm băm cần đáp ứng một mức độ khó đặt sẵn, ví dụ như “yêu cầu hai chuỗi số 0 trong hàm băm”.
Trong trường hợp này, nonce đóng vai trò một chuỗi tùy ý hoặc một bộ đếm điều chỉnh được để hàm băm tổng thể đáp ứng được mức độ khó.
Nếu current_block_hash (hàm băm block hiện tại) không đáp ứng được mức độ khó thì nonce được điều chỉnh và tính toán một hàm băm mới. Quá trình này lặp lại cho đến khi hoàn thành một hàm băm thỏa điều kiện thiết lập mức độ khó.
Hiện nay chỉ có thuật toán brute force hoạt động nhằm xác định thuật toán PoW, tức là nonce được điều chỉnh và tính toán lại hàm băm cho đến khi thỏa mãn mức độ khó. Đó là lý do tại sao các thợ đào Bitcoin sử dụng máy tính chuyên biệt để tính toán PoW. Sau khi hoàn thành, rất dễ để xác minh PoW này. Do đó, thợ mỏ đầu tiên xác định PoW chính xác sẽ lan truyền block trong mạng lưới. Các thợ mỏ khác sẽ kiểm tra tính chính xác (kiểm tra bằng thuật toán riêng của họ), chấp nhận block hợp lệ và bắt đầu khai thác block tiếp theo.
Với thuật toán PoW, các bên có thể đạt sự đồng thuận mà không cần một chính quyền trung tâm tin cậy. Đối với Bitcoin, không cần ngân hàng hay nhà quản lý hoặc người trung gian để xác minh một block (PoW thực hiện) hoặc tính xác thực của các giao dịch trong block (hàm băm thực hiện).
Hơn nữa, nhân tố tiêu cực tôi nói đến ở trên nếu muốn kiểm soát blockchain sẽ gặp thêm thách thức. Họ vừa phải cập nhật hàm băm của nhiều block, vừa phải vượt qua các node khác trong mạng, để block của họ được chấp nhận trong một blockchain phân quyền và phân tán. Điều này chỉ có thể xảy ra nếu nhân tố đó có khả năng sắp đặt tấn công cục bộ – gần như là không thể khi blockchain phát triển trong một mạng lưới lớn các node.
Các loại blockchain
Một blockchain có thể có các đặc tính công khai, riêng tư, cấp quyền, không được cấp quyền, tập trung, phân quyền.
Tất cả các cấu hình đó có thể được thiết lập dựa trên yêu cầu của mạng lưới. Hiện nay các chính phủ và các tập đoàn đang nỗ lực khám phá cách sử dụng công nghệ DLT theo phương thức tập trung hoặc phân quyền để cải thiện việc theo dõi hàng hoá trong chuỗi cung ứng, thanh toán giao dịch tốt hơn, cắt giảm yêu cầu bảo hiểm hai lần, cải thiện thanh toán xuyên biên giới, v.v… Các biến thể khác của blockchain hiện đang được thử nghiệm.
Tìm hiểu tiếp theo
Đến đây, thông qua bảng mã chúng ta đã hiểu thế nào là một block, cách sử dụng hàm băm và ý nghĩa của nó trong một blockchain. Trong một block, làm thế nào để triển khai đồng tiền/token (thẻ) hoặc một hợp đồng cũng được hiển thị ngắn gọn thông qua biến data. Bạn cũng có thể thấy nguyên nhân tại sao không cần trung gian trong một mạng lưới phân quyền ngang cấp.
Tôi cố ý viết vắn tắt như trên dù biết bài viết không thực sự công bằng đối với toàn bộ sức mạnh của công nghệ blockchain. Bài viết giúp chuyển đổi một số thuật ngữ chuyên ngành thành các thuật ngữ có ý nghĩa mà chúng ta có thể sử dụng để xây dựng kiến thức về cuộc cách mạng đang diễn ra xung quanh chúng ta. Từ đây bạn có thể lại cân nhắc các tin tức hoặc suy nghĩ sâu sắc về cách các doanh nghiệp đạt lợi ích khi sử dụng sổ cái phân tán. Giống như bạn, tôi cũng sẽ tiếp tục phát triển từ đây và chia sẻ nhiều hơn theo thời gian.
Nếu bạn muốn tìm hiểu sâu hơn, tôi cũng đã tổng hợp một danh sách các nguồn tham khảo để bạn xem tiếp. Tôi hy vọng hướng dẫn này hữu ích đối với bạn!
Nguồn tham khảo
Mã nguồn (viết ở dạng Ruby): Github.
Sự kiện khởi đầu năm 2008: Bitcoin White Paper
Tài liệu về Bitcoin: Mastering Bitcoin, Programming the Open Blockchain
Một blockchain lớn khác sau Bitcoin: Ethereum White Paper
Tài liệu về Hàm băm: Blockgeeks
Sự thật về Blockchain: From HBR
Blockchain thực sự hoạt động như thế nào? | Tech Talk
Theo định nghĩa của Wikipedia Blockchain là : Một cơ sở dữ liệu phân cấp, lưu trữ thông tin trong các khối thông tin được liên kết với nhau bằng mã hóa và mở rộng theo thời gian. Mỗi khối thông tin đều chứa thông tin về thời gian khởi tạo và được liên kết tới khối trước đó, kèm một mã thời gian và dữ liệu giao dịch. Blockchain được thiết kế để chống lại việc thay đổi của dữ liệu: Một khi dữ liệu đã được mạng lưới chấp nhận thì sẽ không có cách nào thay đổi được nó. Nghe có vẻ thú vị, nhưng chính xác nó là cái gì ? Để minh hoạ một blockchain, chúng ta sẽ sử dụng một giao diện command-line open source gọi là Blockchain CLI. Nếu bạn chưa cài đặt, hãy cài đặt Node.js. Và bắt đầu chạy các command-line sau: Bạn sẽ thấy ? Welcome to Blockchain CLI! Và blockchain →prompt đã sẵn sàng để thực hiện lệnh. Block trông như thế nào? Để xem blockchain hiện tại của bạn, nhập blockchain hoặc bc vào command prompt. Bạn sẽ thấy một block như hình dưới.Index (Block #): Block nào là nó? (Khối Genesis cótechtalk.vn
Theo định nghĩa của Wikipedia Blockchain là : Một cơ sở dữ liệu phân cấp, lưu trữ thông tin trong các khối thông tin được liên kết với nhau bằng mã hóa và mở rộng theo thời gian. Mỗi khối thông tin đều chứa thông tin về thời gian khởi tạo và được liên kết tới khối trước đó, kèm một mã thời gian và dữ liệu giao dịch. Blockchain được thiết kế để chống lại việc thay đổi của dữ liệu: Một khi dữ liệu đã được mạng lưới chấp nhận thì sẽ không có cách nào thay đổi được nó. Nghe có vẻ thú vị, nhưng chính xác nó là cái gì ? Để minh hoạ một blockchain, chúng ta sẽ sử dụng một giao diện command-line open source gọi là Blockchain CLI. Nếu bạn chưa cài đặt, hãy cài đặt Node.js. Và bắt đầu chạy các command-line sau: Bạn sẽ thấy ? Welcome to Blockchain CLI! Và blockchain →prompt đã sẵn sàng để thực hiện lệnh. Block trông như thế nào? Để xem blockchain hiện tại của bạn, nhập blockchain hoặc bc vào command prompt. Bạn sẽ thấy một block như hình dưới.Index (Block #): Block nào là nó? (Khối Genesis cótechtalk.vn
Theo định nghĩa của Wikipedia Blockchain là :
Một cơ sở dữ liệu phân cấp, lưu trữ thông tin trong các khối thông tin được liên kết với nhau bằng mã hóa và mở rộng theo thời gian. Mỗi khối thông tin đều chứa thông tin về thời gian khởi tạo và được liên kết tới khối trước đó, kèm một mã thời gian và dữ liệu giao dịch. Blockchain được thiết kế để chống lại việc thay đổi của dữ liệu: Một khi dữ liệu đã được mạng lưới chấp nhận thì sẽ không có cách nào thay đổi được nó. Nghe có vẻ thú vị, nhưng chính xác nó là cái gì ?
Để minh hoạ một blockchain, chúng ta sẽ sử dụng một giao diện command-line open source gọi là Blockchain CLI. Nếu bạn chưa cài đặt, hãy cài đặt Node.js. Và bắt đầu chạy các command-line sau:
1 2 3 4 | $ npm install blockchain-cli -g $ blockchain |
Bạn sẽ thấy ? Welcome to Blockchain CLI! Và blockchain →prompt đã sẵn sàng để thực hiện lệnh. Block trông như thế nào? Để xem blockchain hiện tại của bạn, nhập blockchain hoặc bc vào command prompt. Bạn sẽ thấy một block như hình dưới.
Index (Block #): Block nào là nó? (Khối Genesis có chỉ số 0)
Hash: Là block có giá trị?
Previous Hash: Là block trước đó hợp lệ?
Timestamp: Khi nào khối được thêm?
Data: Những thông tin nào được lưu trữ trên block?
Nonce: Có bao nhiêu lần được lặp lại trước khi chúng tôi tìm thấy một block hợp lệ?
Block Genesis Mỗi blockchain sẽ bắt đầu với Block Genesis. Như bạn biết, mỗi block trên blockchain phụ thuộc vào block trước đó. Vì vậy, block Genesis là cần thiết để thiết lập block đầu tiên của chúng ta.
Điều gì xảy ra khi một Block mới được khai thác?
Hãy bắt đầu block đầu tiên của chúng ta. Nhập mine freeCodeCamp ♥ ︎ vào prompt . Blockchain dựa vào khối mới nhất được thêm vào blockchain. Trong trường hợp này block Genesis là khối mới nhất.
Index: o+1 = 1
Previous Hash: 0000018035a828da0…
Timestamp: khi nào block được thêm vào
Data: freeCodeCamp
Hash: ??
Nonce: ??
Làm thế nào để tính hash? Giá trị hash là một trị số với độ dài cố định, giúp nhận diện dữ liệu. Các hash được tính bằng cách lấy trị số của block hash trước đó, timestamp, block data, and nonce như là giá trị đầu vào
1 2 3 | CryptoJS.SHA256(index + previousHash + timestamp + data + nonce) |
Thuật toán SHA256 sẽ tính toán một hàm hash duy nhất, cho các giá trị input. Các input tương tự sẽ trả lại cùng một hash.
Bạn có nhận thấy bốn đầu 0 trong khối hash?
Bốn hàng đầu của 0 là một yêu cầu tối thiểu cho một hash hợp lệ. Số yêu cầu hàng đầu của 0 được gọi là difficulty.
1 2 3 4 5 6 7 8 9 10 | function isValidHashDifficulty(hash, difficulty) { for (var i = 0, b = hash.length; i < b; i ++) { if (hash[i] !== '0') { break; } } return i >= difficulty; } |
Nó còn được gọi là hệ thống Proof of Work.
Một nonce là gì?
Một nonce là một số được sử dụng để tìm một hash hợp lệ
1 2 3 4 5 6 7 8 9 10 | let nonce = 0; let hash; let input; while(!isValidHashDifficulty(hash)) { nonce = nonce + 1; input = index + previousHash + timestamp + data + nonce; hash = CryptoJS.SHA256(input) } |
Các nonce iterates cho đến khi hash là hợp lệ. Trong trường hợp của chúng ta, một hash hợp lệ có ít nhất bốn hàng đầu của 0. Quá trình tìm một nonce tương ứng với một hash hợp lệ là mining.
Difficulty tăng lên, số lượng các hash hợp lệ giảm. Với hàm hash hợp lệ ít hơn có thể cần phải mất nhiều thời gian xử lý hơn để tìm một hash hợp lệ.
Tại sao điều này lại quan trọng?
Nó quan trọng vì nó giữ cho blockchain không thay đổi. Nếu chúng ta có blockchain A → B → C, và ai đó muốn thay đổi dữ liệu trên Block A. Điều này xảy ra:
- Dữ liệu thay đổi trên block A
- Thay đổi hask của Block A vì dữ liệu được sử dụng để tính toán hask.
- Block A trở nên không hợp lệ vì hash của nó không còn có bốn đầu của 0.
- Thay đổi hask của Block B vì hask của Block A được sử dụng để tính toán hask của Block B.
- Hask B trở nên không hợp lệ bởi vì hask của nó không còn có bốn hàng đầu của 0.
- Thay đổi hask của Block C vì sử dụng hask của Block B để tính toán hask của Block C.
- Block C trở nên không hợp lệ vì hash của nó không còn có bốn đầu của 0. Cách duy nhất để biến đổi một khối sẽ là xây dựng lại một blockchain khác. Vì các block mới luôn luôn được thêm vào, nên gần như không thể biến đổi blockchain này. Tôi hy vọng hướng dẫn này hữu ích cho bạn! Nếu bạn muốn kiểm tra phiên bản web của bản giới thiệu, hãy vàohttp://blockchaindemo.io/
Techtalk Via medium
.....
Xây dựng 1 Blockchain đơn giản chỉ với 50 dòng code | Tech Talk
Tôi là sinh viên năm nhất chuyên ngành Khoa học Máy của Đại học Howard tại Washington, DC, thủ đô của Hoa Kỳ. Bạn có thể tạo một bài đăng cộng đồng giống như Gerald ở đây. Mặc dù một số người nghĩ rằng blockchain là một giải pháp được chờ đợi cho mọi vấn đề hiện nay, không có nghi ngờ rằng công nghệ này là một điều kỳ diệu của máy tính. Nhưng chính xác blockchain là gì? Theo kết quả tìm kiếm trên Google search của tôi, đó là " sổ ghi kỹ thuật số, trong đó các giao dịch được thực hiện bằng bitcoin hoặc các loại tiền ảo khác được ghi lại theo trình tự thời gian và công khai." Nói chung, nó là một cơ sở dữ liệu công cộng, nơi dữ liệu mới được lưu trữ trong các khối và được thêm vào một chuỗi không thay đổi (do đó nó được gọi là blockchain) với dữ liệu được thêm vào trong quá khứ. Trong trường hợp của bitcoin và các các loại tiền ảo khác, những dữ liệu này là các nhóm giao dịch. Tất nhiên dữ liệu có thể là bất kỳ loại nào. Công nghệ Blockchain đã làm tăng thêm giá trị đồng tiển ảo nhưtechtalk.vn
Tôi là sinh viên năm nhất chuyên ngành Khoa học Máy của Đại học Howard tại Washington, DC, thủ đô của Hoa Kỳ. Bạn có thể tạo một bài đăng cộng đồng giống như Gerald ở đây. Mặc dù một số người nghĩ rằng blockchain là một giải pháp được chờ đợi cho mọi vấn đề hiện nay, không có nghi ngờ rằng công nghệ này là một điều kỳ diệu của máy tính. Nhưng chính xác blockchain là gì? Theo kết quả tìm kiếm trên Google search của tôi, đó là " sổ ghi kỹ thuật số, trong đó các giao dịch được thực hiện bằng bitcoin hoặc các loại tiền ảo khác được ghi lại theo trình tự thời gian và công khai." Nói chung, nó là một cơ sở dữ liệu công cộng, nơi dữ liệu mới được lưu trữ trong các khối và được thêm vào một chuỗi không thay đổi (do đó nó được gọi là blockchain) với dữ liệu được thêm vào trong quá khứ. Trong trường hợp của bitcoin và các các loại tiền ảo khác, những dữ liệu này là các nhóm giao dịch. Tất nhiên dữ liệu có thể là bất kỳ loại nào. Công nghệ Blockchain đã làm tăng thêm giá trị đồng tiển ảo nhưtechtalk.vn
.....
Khoa học - Công nghệ
/khoa-hoc-cong-nghe
Bài viết nổi bật khác
- Hot nhất
- Mới nhất