Bản gốc: Liu Jiaolian
Một bông hoa bay làm giảm gió xuân, người ta lo ngàn điểm bay trong gió. Và khi ngắm hoa trong mắt, đừng sợ vấy quá nhiều rượu vào môi.
Trên thị trường tiền điện tử vào tháng 5, BTC (Bitcoin) đã dao động ở mức 60.000 USD và những bông hoa đều có màu đỏ vào mùa xuân. Không sôi động lắm nhưng lang thang quanh hồ, nhìn nước xanh, núi xanh, tôi thấy bình yên và vị trí của tôi ở rất xa.
BTC là cội nguồn của ngành công nghiệp tiền điện tử. Tổng giới hạn 21 triệu là nền tảng của BTC. Mọi thứ bắt đầu với con số kỳ diệu này. Nhưng tại sao lại có con số như vậy?
Bài viết của Jiailian ngày 5 tháng 12 năm 2020 "Tại sao chỉ có tối đa 21 triệu Bitcoin?" 》, phương pháp tính số này đã được giới thiệu. Tóm lại, nó như sau:
1. Mỗi khối tạo ra 50 BTC
2 Cứ sau 210.000 khối, sản lượng sẽ giảm một nửa
Có thể dễ dàng tính toán bằng cách tính tổng chuỗi hình học. Tổng sản lượng cuối cùng của BTC là: (50 + 25 +). 12,5 + 6,25 + 3,125 + ...) x 210.000 = 21 triệu xu.
Hơn nữa, hãy điều chỉnh độ khó "khai thác" để một khối mới được tạo ra khoảng 10 phút một lần, tức là 6 khối mới mỗi giờ và 210.000 khối được tạo ra Ở thế giới loài người là khoảng 4 năm.
Đây là nguồn gốc của chu kỳ giảm một nửa sản lượng kéo dài 4 năm của Bitcoin.
Tuy nhiên, đây chỉ là lời kể lại những sự thật đã được xác minh. Thứ nhất, thiếu việc kiểm tra một số chi tiết; thứ hai, nó không thực sự tiết lộ lý do tại sao nhà phát minh Bitcoin Satoshi Nakamoto lại chọn và thiết kế một con số như vậy.
Trước tiên hãy nói về chi tiết.
Trước hết, 21 triệu không phải là 21 triệu mà là 2.099.999.997.690.000. Đúng, con số sau lớn hơn 100 triệu lần so với 21 triệu, tức là khoảng 2100 nghìn tỷ. Trong hệ thống Bitcoin, có hàng nghìn tỷ số nguyên.
Khi chúng tôi "hiển thị" BTC ở 8 chữ số thập phân phía trên số nguyên này, nó sẽ trở thành 2 0,99 9,99 9,97 690 000. Ở đây tôi sử dụng khoảng trắng để biểu thị điểm chia thứ nghìn khi được sử dụng làm số nguyên. Nhìn sơ qua chúng ta có thể thấy việc Satoshi Nakamoto chọn 8 chữ số thập phân thực ra hơi lạ, vì điều này sẽ khiến dấu phẩy ngăn cách phần nguyên BTC với 8 chữ số thập phân không thống nhất với dấu phẩy ngăn cách của số thực trong hệ thống.
8 chữ số thập phân, tức là một phần trên 100 triệu, không quá phương Tây. Như chúng ta đã biết, trong tiếng Anh các con số được chia thành phần nghìn nên đơn vị đếm là nghìn, triệu, tỷ, nghìn tỷ. Không có đơn vị "tỷ" trong tiếng Anh. Phương pháp đếm ở Trung Quốc hơi khác một chút. Nó được chia thành bốn chữ số, tức là mười phần nghìn, do đó có mười nghìn, một trăm triệu và một nghìn tỷ.
2100 nghìn tỷ chia cho mười phần nghìn là như thế này: 2099 9999 9769 0000; 21 triệu với 8 chữ số thập phân là như thế này: 2099 9999.9769 0000. Đều là 4 vạch, mỗi vạch 4 chữ số, không nhầm lẫn. Vì vậy, nó trông giống như, 8 chữ số thập phân, một phần của 100 triệu, à, nó rất phương Đông.
Thứ hai, lý do tại sao 2100 nghìn tỷ là 2.099.999.997.690.000 thay vì chính xác là 2.100.000.000.000.000 là do giới hạn chính xác là 8 chữ số thập phân.
Chuỗi hình học trên (50 + 25 + 12,5 + 6,25 + 3,125 + ...) không phải là một dãy vô hạn thực sự mà khi nó giảm dần Sau khi đạt 0,0000 0001, nó sẽ trở về 0 nếu lại giảm đi một nửa. Do đó, đây là một dãy hữu hạn bị cắt cụt và tổng của nó sẽ nhỏ hơn tổng của dãy vô hạn, 100. Vì vậy, sau khi nhân với 210.000, kết quả cuối cùng nhỏ hơn 21 triệu một chút.
Thứ ba, hãy chú ý đến mô tả về điểm đầu tiên. 8 chữ số thập phân và dấu thập phân chỉ là thiết kế cấp độ "hiển thị". Chỉ có hàng nghìn tỷ số nguyên bên trong hệ thống.
Vì nó chỉ là một "màn hình" nên dấu thập phân thực sự có thể được di chuyển tùy ý. Bây giờ hãy nhấp vào 8 chữ số thập phân và sau đó bạn có thể nhấp vào 5 hoặc 4 chữ số thập phân.
Ví dụ: 20,999,999,976,90000 (5 chữ số thập phân) hoặc 2099 9999 9769,0000 (4 chữ số thập phân).
Khi đó, 1 Bitcoin khi dịch sang 8 chữ số thập phân, khi dịch sang 5 chữ số thập phân, hiển thị là 1000, khi dịch sang 4 chữ số thập phân, nó sẽ là hiển thị là 10000. Tương ứng, 0,001 hoặc 0,0001 BTC ban đầu bây giờ sẽ được hiển thị là 1.
Ý tưởng dịch chuyển này không phải do chuỗi giảng dạy bịa đặt mà là ý tưởng thực sự của Satoshi Nakamoto. Trong thư trả lời của Satoshi Nakamoto cho Mike Hearn vào ngày 12 tháng 4 năm 2009[1], ông viết:
"Sự lựa chọn của tôi về số lượng xu và lịch trình phân phối là một quyết định sáng suốt." đoán. Đó là một lựa chọn khó khăn, bởi vì một khi mạng hoạt động, nó sẽ bị khóa và chúng tôi bị mắc kẹt với nó. Tôi muốn chọn thứ gì đó có giá tương tự như các loại tiền tệ hiện có, nhưng không biết tương lai, đó là rất khó. Cuối cùng tôi đã chọn thứ gì đó ở giữa. Nếu Bitcoin vẫn còn là một phân khúc nhỏ, nó sẽ có giá trị trên mỗi đơn vị thấp hơn các loại tiền tệ hiện có. thì sẽ chỉ có 21 triệu xu cho toàn thế giới, vì vậy nó sẽ có giá trị cao hơn nhiều trên mỗi đơn vị. Giá trị là số nguyên 64 bit với 8 chữ số thập phân, vì vậy 1 xu được biểu thị nội bộ là 100000000. Có rất nhiều chi tiết. nếu giá thông thường trở nên nhỏ. Ví dụ: nếu 0,001 có giá trị 1 Euro thì có thể dễ dàng thay đổi vị trí hiển thị dấu thập phân hơn, vì vậy nếu bạn có 1 Bitcoin thì giờ đây nó được hiển thị là 1000 và 0,001 được hiển thị là 1."
"Sự lựa chọn của tôi về số lượng xu và lịch phát hành đã được cân nhắc cẩn thận. Đó là một lựa chọn khó khăn vì một khi mạng được thiết lập và hoạt động, nó sẽ bị khóa và chúng ta mắc kẹt với nó. Tôi muốn chọn một (con số) đặt giá gần với các loại tiền tệ hiện có, nhưng điều đó khó thực hiện nếu không biết tương lai. Cuối cùng, tôi chọn giá trị ở giữa. Nếu Bitcoin vẫn là một loại tiền tệ thích hợp, giá trị đơn vị của nó sẽ thấp hơn các loại tiền tệ hiện có. Nếu bạn tưởng tượng Bitcoin được sử dụng trong một số phân khúc thương mại thế giới thì chỉ có 21 triệu Bitcoin trên thế giới, vì vậy giá trị đơn vị của nó sẽ cao hơn. Giá trị đồng xu là số nguyên 64 bit có 8 chữ số thập phân, do đó, 1 đồng xu được biểu thị nội bộ là 100000000. Có đủ mức độ chi tiết nếu giá thông thường trở nên nhỏ hơn. Ví dụ: nếu 0,001 có giá trị 1 euro, thì việc thay đổi vị trí hiển thị dấu thập phân có thể dễ dàng hơn (xem và sử dụng), vì vậy nếu bạn có 1 Bitcoin, giờ đây nó được hiển thị là 1000, trong khi 0,001 được hiển thị là 1. ”
Có người nói rằng đối với các máy tính 64-bit thông thường, nếu chúng ta sử dụng số nhị phân 64-bit để biểu diễn cả số nguyên và số thập phân (còn gọi là số dấu phẩy động) ), thì cách an toàn nhất là giới hạn số nguyên ở giới hạn trên có thể biểu thị bằng phần nguyên của số dấu phẩy động
Những người bạn có số dấu phẩy động. ít hiểu biết về nguyên lý máy tính biết rằng không có máy tính bên trong. Tất cả số thập phân đều là chữ số 0 và 1. Cái gọi là số nguyên 64 bit dùng để chỉ số nguyên nhị phân gồm 64 số 0 hoặc 1. Số thập phân tương ứng là 2^64. = 18446744073709551616. Nhưng con số này lớn hơn rất nhiều so với 2100 nghìn tỷ, nếu muốn máy tính có thể xử lý được số dấu phẩy động thì bạn cần tách một phần trong 64 bit ra để biểu thị phần thập phân, và để lại 1 bit để biểu diễn. dấu hiệu này trở thành tiêu chuẩn mã hóa số dấu phẩy động IEEE 754 Theo định nghĩa tiêu chuẩn, các số dấu phẩy động có độ chính xác kép được mã hóa ở dạng nhị phân 64-bit như sau:

Theo cách này, phần nguyên chỉ có thể sử dụng 53 bit, tức là tối đa không vượt quá 2^53 = 9007199254740992. Và nếu bạn muốn dễ dàng kiểm tra xem kết quả có phải là số nguyên hay không, tốt nhất không nên vượt quá 2^51 = 2251799813685248. Bằng cách này, bạn có thể chọn 22 (một triệu tỷ), nhưng 22 không phải là "số tam giác" (số tam giác) nên Nakamoto đã chọn 21 (một triệu tỷ)

Theo đó, nhiều người cho rằng việc Satoshi Nakamoto lựa chọn 2100 nghìn tỷ đã hỗ trợ rất nhiều cho việc tính toán liên quan đến số lượng Bitcoin được xử lý bằng nhiều ngôn ngữ lập trình khác nhau.
Tuy nhiên, sau khi đọc email của Satoshi Nakamoto, Jiao Lian cảm thấy Nakamoto có thể không có những suy nghĩ phức tạp như vậy. anh ấy đã nghĩ về điều đó, nhưng anh ấy không giải thích đầy đủ về sự cân nhắc của mình. Anh ấy chỉ nói rằng anh ấy cũng đã xem xét những thứ khác, chẳng hạn như 4200 nghìn tỷ, cảm thấy quá lớn, vì vậy chúng tôi đã thỏa hiệp ở mức 2100 nghìn tỷ. email vào ngày 10 tháng 1 năm 2011 [2], anh ấy đã viết điều này:
"Nó có hiệu quả thậm chí là 10 phút cho mỗi khối:
21000000 / (50 BTC * 24 giờ * 365 ngày * 4 năm * 2) = 5,99 khối/giờ
"Tôi đã làm giả nó đến 364,58333 ngày/năm. Việc giảm một nửa từ 50 BTC xuống 25 BTC là sau 210000 khối hoặc khoảng 3,9954 năm, gần như dựa trên nỗ lực tốt nhất của cơ chế nhắm mục tiêu lại.
"Tôi nghĩ khoảng 100 BTC và 42 triệu, nhưng 42 triệu có vẻ cao.
"Tôi muốn số tiền thông thường nằm trong phạm vi quen thuộc.  ; Nếu bạn tung khoảng 100.000 đơn vị, bạn sẽ không cảm thấy khan hiếm. Bộ não có khả năng làm việc tốt hơn với các số từ 0,01 đến 1000.
"Nếu nó thực sự lớn, số thập phân có thể di chuyển hai vị trí và xu trở thành đồng xu mới."
Có vẻ như Satoshi Nakamoto là người đầu tiên đặt thông số thời gian, sau đó đã điều chỉnh sản lượng khối và tổng số lượng, đồng thời xem xét Số lượng lớn như thế nào phù hợp hơn.
Theo Satoshi Nakamoto, số BTC trong tay hầu hết mọi người là tốt nhất trong khoảng từ 0,01 đến 1.000. Không phải lúc nào cũng có đồng xu có 6 hoặc 7 chữ số. sẽ thiếu đi cảm giác khan hiếm.
Trên đây là thông tin chi tiết về tổng số 21 triệu xu.