Thuật toán đào bitcoin

     

Nhân lúc Bitcoin vừa bắt đầu phân chia song phần thưởng từ bỏ 12.5 BTC/Bloông xã xuống còn 6.25 BTC/Blochồng không lâu. Chúng ta thuộc tìm hiểu quá trình đào bitcoin được diễn ra ra sao, cùng một vài báo cáo hữu ích khác.

Bạn đang xem: Thuật toán đào bitcoin

1. Giới thiệu

Đào Bitcoin (Mining) thường xuyên được nghe biết nlỗi là một quá trình chạy đua thân các thợ đào (miner) tuyệt các mỏ đào (poll) nhằm giành được phần thưởng trọn trải qua việc giải các câu đố (puzzle) tân oán học. Điều đó cũng đúng, nhưng lại không đủ. Mục đích quan trọng đặc biệt nhất của quá trình đào bitcoin là giúp bảo mật tài liệu bên trên mạng P2P, tránh khỏi những cuộc tiến công, ăn gian của kẻ xấu nhằm mục đích vụ lợi bất chính. Việc tạo phần ttận hưởng cho những người đào thành công xuất sắc nhằm mục đích góp chế tác mới dòng tài chính giữ thông trên mạng cũng khuyến nghị những người không giống đóng góp vào mạng.

Các đọc tin khác

Thời gian vừa phải nhằm đào được một bloông chồng là 10 phút ít.Sau 2 tuần (2016 Blocks) thì mạng công thêm toán nhằm kiểm soát và điều chỉnh độ nặng nề nhằm mục tiêu bảo vệ thời gian đào được một bloông chồng rơi vào khoảng 10 phút (Trong 2 tuần thì khối lượng tính toán của mạng hoàn toàn có thể chuyển đổi như việc chế ra 1 nhiều loại GPU new giúp đào 1 block trong 5-6 phút ít chẳng hạn).Số lượng Bitcoin được Satoshi cùng lực lượng tập sự hạn mức 21 triệu BTC.Phần thưởng trọn lúc đầu giành cho tất cả những người đào một bloông xã thành công là 50 BTC.Phần hay sẽ ảnh hưởng chia đôi sau 210.000 Blocks (25 BTC trong tháng 11/2012, 12.5 BTC trong tháng 7/2016 với vài ba ngày trước đó chỉ từ 6.25 BTC).Ngoài phần ttận hưởng thắt chặt và cố định cho một block đào được, thợ đào còn nhận thấy toàn bộ phí tổn giao dịch đựng trong bloông xã đó.Để đến an ninh, tách những cuộc tiến công 51%, đảo ngược block thì sau 100 Blocks, thì thợ đào new nhận thấy phần ttận hưởng.

2. Việc đào Bitcoin tốn tích điện kinh khủng như thế nào ?

Chúng ta đã và đang ít nhiều nghe về phần nhiều câu chuyện phần đông mỏ đào Bitcoin với phần đông nhỏ "trâu cày" chạy quanh năm xuyên suốt mon, tiêu hao một lượng năng lượng điện năng to con. Vậy rõ ràng đào bitcoin tốn năng lượng điện ra làm sao ? Chúng ta hãy cùng xem qua Infographic dưới đây.

Xem thêm: Tỷ Giá Tiền Ảo - Tỷ Giá 2499+ Đồng Tiền Ảo Hôm Nay Mới Nhất

*

Với từng thanh toán bên trên mạng Bitcoin:

Thải ra 267.97kilogam khí C02, tương đương với hơn 600 nngu thanh toán VISA hoặc hơn thế 40 nđần giờ coi Youtube
*
Tốn rộng 500 số điện, bởi năng lượng 1 mái ấm gia đình sử dụng cả tháng.Thải ra 78.2 gam chất thải điện năng

3. Thuật tân oán đào bitcoin

Lan man các đọc tin bên rìa nhiều rồi, giờ đồng hồ bọn họ hãy thuộc tò mò chi tiết thuật toán và cách thức nhằm đào bitcoin

Mã băm

Nhỏng bọn họ sẽ biết, Bitcoin thực hiện hàm băm SHA-256 nhằm mã hóa các báo cáo. Giá trị băm sau khoản thời gian băm bằng SHA-256 nghỉ ngơi dạng hexa, dễ dàng và đơn giản chúng cũng chỉ cần những số, chúng ta trọn vẹn hoàn toàn có thể đưa quý phái dạng thập phân.

Độ khó khăn trong Việc đào bitcoin

Lấy một ví dụ bởi Việc gieo 2 nhỏ xúc xắc, tổng cộng số chnóng của 2 bé xúc xắc ở trong vòng <2, 12>. Nếu hiện thời bạn cần gieo xúc xắc mà tổng 2 phương diện nhỏ nhiều hơn 11 thì đấy chưa hẳn là công việc khó khăn lắm, gieo 10 lần tối thiểu các bạn cũng rất được 8-9 lần. Nhưng nếu thử khám phá gieo sao để cho tổng 2 khía cạnh bé hơn 4 chẳng hạn, thì sẽ là lại 1 công việc cạnh tranh nhằn rộng.

Độ khó trong việc đào Bitcoin cũng thuộc chung đạo lý cùng với câu hỏi gieo xúc xắc ngơi nghỉ bên trên. Với bloông chồng header đang gồm cộng thêm số nonce (tùy ý), các bạn yêu cầu tìm ra số nonce làm thế nào để cho quý giá băm SHA-256 của blochồng header và số nonce kia phải nhỏ nhiều hơn số ví dụ ngơi nghỉ dạng hexa (Số hexa càng có tương đối nhiều số 0 thường xuyên sống đầu thì sẽ càng bé). Tìm được số nonce thỏa mãn nhu cầu, có nghĩa là đang thành công xuất sắc trong quá trình đào bitcoin

*

Chúng ta cùng xem đoạn code sau đây diễn tả thuật tân oán cùng phương thức đào bitcoin

#!/usr/bin/env python# example of proof-of-work algorithmimport hashlibimport timetry: long # Pynhỏ nhắn 2 xrangeexcept NameError: long = int # Pynhỏ nhắn 3 xrange = rangemax_nonce = 2 ** 32 # 4 billiondef proof_of_work(header, difficulty_bits): # calculate the difficulty target target = 2 ** (256 - difficulty_bits) for nonce in xrange(max_nonce): hash_result = hashlib.sha256((str(header) + str(nonce)).encode()).hexdigest() # kiểm tra if this is a valid result, below the target if long(hash_result, 16) target: print("Success with nonce %d" % nonce) print("Hash is %s" % hash_result) return (hash_result, nonce) print("Failed after %d (max_nonce) tries" % nonce) return noncemax_nonce = 2 ** 32, đoạn code trên test 4 tỷ số nonce tự 0 mang lại 2^32 - 1target là nhưng mà vào quy trình đào đề nghị tạo ra giá trị trị băm difficulty_bits càng những thị độ nặng nề càng tốt (càng các số 0 ở đầu).Trong quy trình brute force làm việc hàm proof_of_work, quý giá băm được convert thanh lịch hình dáng số thập phân để luôn tiện trong quy trình đối chiếu với cái giá trị target.

Tài liệu tmê man khảo

Mastering Bitcoin: Programming the mở cửa Blockchain

Chuyên mục: Công nghệ tài chính