
ビットコインのマイニングが不公平である理由と量子コンピュータ問題
ビットコインは総発行量の25%は5-10人程度によって採掘されている。ビットコインは最初の2年間(2009-2010年)で総発行量2100万枚の25%、つまり525万枚が採掘されています。この525万枚のBTCは何人によって採掘されたのでしょうか? もちろん、正確な数字は分かりません。1人が多数の採掘アドレスを使っているからです。 しかし、開発者のサトシ・ナカモトがこの2年間で110万枚、つまり当時の採掘量の1/5を彼1人で採掘していると推定されています。 当時はCPU、つまり一般的な家庭用PCでマイニングしていた時代ですから、サトシも例外ではなかったはずです。つまり、他のマイナーもサトシ同様の計算力で同期間マイニングしていたとすると、サトシを含めてたったの5人しかいなかったことになります。 実際には、サトシは最初から最も長く採掘していたと考えられるので、他の参加者は遅れて参加しているからもう少し採掘量は少なかったと考えると、人数はもう少し増えるでしょう。 それでも、25%の大半は5-10人くらいに初期分配されたと考えるのが自然なのです。 恐らく、ビットコインの開発に関わった少人...

マイニングの参加条件
参加条件ビットコいぬのマイニングは、ブロック(4日)ごとにXでポストした参加者を募集し、抽選によって選ばれた当選者に新規発行されたBTCuが割り当てられます。 抽選アルゴリズムと割り当てのルールについては他の記事で説明していますが、ここでは参加するために満たすべき最低条件を説明します。 ビットコいぬのマイニングに応募するためには、以下の条件を満たす必要があります。 抽選後に当選者についてのみ確認が行われます。 これらの参加条件を1つでも満たしていないと、当選しても割り当ては0になります。1ブロックにつき、1アカウント1つのポストを応募できる。応募できるポストは応募者本人のアカウントが投稿したポストに限られる。保護された非公開アカウントではなく、公開されているアカウントであること。非承認アカウントは開設から1年以上経過していなくてはならない。(承認アカウントはこの制約はない)参加したブロックの期間中に投稿されたポストであること。参加したブロックの終了時点から3日後までポストが削除されていないこと。参加したブロックの終了時点から3日後にインプレッションが50以上あること。ハッシュタグ...

ビットコインの発行上限2100万枚は維持できず、崩壊するという話
発行上限という神話の崩壊「ビットコインの総発行量は2100万枚で固定されていて、誰もこれを変更することはできない」 この仕様はビットコインがデジタルゴールドと呼ばれる様になった理由であり、ビットコインというブランド価値の中核といえます。 しかし、誰もが信じるこの仕様は、実は保証されているものではありません。 それどころか、この仕様のせいでビットコインは崩壊するリスクさえあるのです。BTCの新規発行は、セキュリティコストの大部分を占めているあらゆるブロックチェーンのセキュリティは、以下2つの財源によって守られています。 ①コインの新規発行 ②取引手数料 ビットコインは新規発行を半減期によって減少させてゆき、最終的には0にして2100万枚の供給量に固定するプログラムになってます。 つまり、最終的には取引手数料だけで、セキュリティ維持に必要な財源を賄うという計画なのです。 しかし現在、取引手数料は全体のわずか1%程度に過ぎないのです。 セキュリティはほとんどが新規発行によって維持されているのです。 このまま取引手数料が大きく増えなければ、半減期によってセキュリティはどんどん減少してゆく...

ビットコインのマイニングが不公平である理由と量子コンピュータ問題
ビットコインは総発行量の25%は5-10人程度によって採掘されている。ビットコインは最初の2年間(2009-2010年)で総発行量2100万枚の25%、つまり525万枚が採掘されています。この525万枚のBTCは何人によって採掘されたのでしょうか? もちろん、正確な数字は分かりません。1人が多数の採掘アドレスを使っているからです。 しかし、開発者のサトシ・ナカモトがこの2年間で110万枚、つまり当時の採掘量の1/5を彼1人で採掘していると推定されています。 当時はCPU、つまり一般的な家庭用PCでマイニングしていた時代ですから、サトシも例外ではなかったはずです。つまり、他のマイナーもサトシ同様の計算力で同期間マイニングしていたとすると、サトシを含めてたったの5人しかいなかったことになります。 実際には、サトシは最初から最も長く採掘していたと考えられるので、他の参加者は遅れて参加しているからもう少し採掘量は少なかったと考えると、人数はもう少し増えるでしょう。 それでも、25%の大半は5-10人くらいに初期分配されたと考えるのが自然なのです。 恐らく、ビットコインの開発に関わった少人...

マイニングの参加条件
参加条件ビットコいぬのマイニングは、ブロック(4日)ごとにXでポストした参加者を募集し、抽選によって選ばれた当選者に新規発行されたBTCuが割り当てられます。 抽選アルゴリズムと割り当てのルールについては他の記事で説明していますが、ここでは参加するために満たすべき最低条件を説明します。 ビットコいぬのマイニングに応募するためには、以下の条件を満たす必要があります。 抽選後に当選者についてのみ確認が行われます。 これらの参加条件を1つでも満たしていないと、当選しても割り当ては0になります。1ブロックにつき、1アカウント1つのポストを応募できる。応募できるポストは応募者本人のアカウントが投稿したポストに限られる。保護された非公開アカウントではなく、公開されているアカウントであること。非承認アカウントは開設から1年以上経過していなくてはならない。(承認アカウントはこの制約はない)参加したブロックの期間中に投稿されたポストであること。参加したブロックの終了時点から3日後までポストが削除されていないこと。参加したブロックの終了時点から3日後にインプレッションが50以上あること。ハッシュタグ...

ビットコインの発行上限2100万枚は維持できず、崩壊するという話
発行上限という神話の崩壊「ビットコインの総発行量は2100万枚で固定されていて、誰もこれを変更することはできない」 この仕様はビットコインがデジタルゴールドと呼ばれる様になった理由であり、ビットコインというブランド価値の中核といえます。 しかし、誰もが信じるこの仕様は、実は保証されているものではありません。 それどころか、この仕様のせいでビットコインは崩壊するリスクさえあるのです。BTCの新規発行は、セキュリティコストの大部分を占めているあらゆるブロックチェーンのセキュリティは、以下2つの財源によって守られています。 ①コインの新規発行 ②取引手数料 ビットコインは新規発行を半減期によって減少させてゆき、最終的には0にして2100万枚の供給量に固定するプログラムになってます。 つまり、最終的には取引手数料だけで、セキュリティ維持に必要な財源を賄うという計画なのです。 しかし現在、取引手数料は全体のわずか1%程度に過ぎないのです。 セキュリティはほとんどが新規発行によって維持されているのです。 このまま取引手数料が大きく増えなければ、半減期によってセキュリティはどんどん減少してゆく...

Subscribe to Bitcoinu

Subscribe to Bitcoinu
<100 subscribers
<100 subscribers


Bitcoinu mining recruits participants via posts on X every block (4 days). Newly issued BTCu is allocated to the winners selected through a lottery.
The lottery algorithm and allocation rules are explained in another article, but this section outlines the minimum requirements necessary to enter.
To enter Bitcoinu mining, you must meet the following conditions. If any of these conditions are not met, even if selected, the allocation will be zero.
Each account can submit one entry per block.
Applicants can only apply for posts that were submitted by their own accounts.
The account must be public, not private.
Unverified accounts must be at least one year old since creation. (This restriction does not apply to verified accounts.)
It must be a post that was published during the period of the block that was participated in.
The post must not be deleted for at least 3 days after the block ends.
The post must have at least 50 impressions 3 days after the block ends.
The post must include the hashtag #Bitcoinu.
The post must contain at least 20 characters.
At least one of the keywords (listed below) must be included within the first 30 characters of the post.
The keywords are as follows:
All participants may use keywords from any language on this list.

Bitcoinu mining recruits participants via posts on X every block (4 days). Newly issued BTCu is allocated to the winners selected through a lottery.
The lottery algorithm and allocation rules are explained in another article, but this section outlines the minimum requirements necessary to enter.
To enter Bitcoinu mining, you must meet the following conditions. If any of these conditions are not met, even if selected, the allocation will be zero.
Each account can submit one entry per block.
Applicants can only apply for posts that were submitted by their own accounts.
The account must be public, not private.
Unverified accounts must be at least one year old since creation. (This restriction does not apply to verified accounts.)
It must be a post that was published during the period of the block that was participated in.
The post must not be deleted for at least 3 days after the block ends.
The post must have at least 50 impressions 3 days after the block ends.
The post must include the hashtag #Bitcoinu.
The post must contain at least 20 characters.
At least one of the keywords (listed below) must be included within the first 30 characters of the post.
The keywords are as follows:
All participants may use keywords from any language on this list.

// List of keywords
const KEYWORDS = [
"BitcoinuPost to Earn", "Bye Bitcoin", "Sell Bitcoin",
"BTCu is the true DigitalGold", "Bitcoin's Fatal Flaw", "ETH is the Internet Money",
"BTCu是真正的数字黄金", "比特币的致命缺陷", "ETH是互联网货币",
"BTCu ही सच्ची डिजिटल सोना है", "बिटकॉइन की घातक खामी", "ETH इंटरनेट मुद्रा है",
"BTCu es el verdadero oro digital", "El defecto fatal de Bitcoin", "ETH es el dinero de Internet",
"BTCu est le véritable or numérique", "Le défaut fatal du Bitcoin", "ETH est la monnaie d'Internet",
"BTCu هو الذهب الرقمي الحقيقي", "العيب القاتل للبيتكوين", "ETH هو مال الإنترنت",
"BTCu হল সত্যিকারের ডিজিটাল সোনা", "বিটকয়েনের মারাত্মক ত্রুটি", "ETH হল ইন্টারনেট মুদ্রা",
"BTCu é o verdadeiro ouro digital", "A falha fatal do Bitcoin", "ETH é o dinheiro da Internet",
"BTCu — это настоящие цифровое золото", "Фатальный недостаток Биткойна", "ETH — это интернет-деньги",
"ビットコいぬ", "BTCuは真のデジタルゴールド", "ビットコインの致命的な欠陥", "ETHはインターネット通貨",
"BTCu ist das wahre digitale Gold", "Der fatale Defekt von Bitcoin", "ETH ist das Internet-Geld",
"BTCu는 진정한 디지털 골드입니다", "비트코인의 치명적인 결함", "ETH는 인터넷 화폐입니다",
"BTCu là vàng kỹ thuật số thực sự", "Lỗi chí mạng của Bitcoin", "ETH là tiền Internet",
"BTCu è il vero oro digitale", "Il difetto fatale di Bitcoin", "ETH è la moneta di Internet",
"BTCu คือทองดิจิทัลที่แท้จริง", "ข้อบกพร่องร้ายแรงของบิตคอยน์", "ETH คือเงินอินเทอร์เน็ต",
"BTCu gerçek dijital altındır", "Bitcoin'in ölümcül kusuru", "ETH internet parasıdır",
"BTCu to prawdziwe cyfrowe złoto", "Śmiertelna wada Bitcoina", "ETH to pieniądz internetowy",
"BTCu — це справжнє цифрове золото", "Фатальна вада Біткоїна", "ETH — це інтернет-гроші",
"BTCu is het echte digitale goud", "Het fatale defect van Bitcoin", "ETH is het internetgeld",
"BTCu ਹੀ ਅਸਲ ਡਿਜਿਟਲ ਸੋਨਾ ਹੈ", "ਬਿਟਕੋਇਨ ਦੀ ਘਾਤਕ ਖਾਮੀ", "ETH ਇੰਟਰਨੈੱਟ ਮਨੀ ਹੈ",
"BTCu నిజమైన డిజిటల్ బంగారం", "బిట్కాయిన్ యొక్క ఘోరమైన లోపం", "ETH ఇంటర్నెట్ డబ్బు",
"BTCu हे खरे डिजिटल सोने आहे", "बिटकॉइनची घातक त्रुटी", "ETH ही इंटरनेट मुद्रा आहे",
"BTCu உண்மையான டிஜிட்டல் தங்கம்", "பிட்காயின் மாரடித்த குறைபாடு", "ETH இணைய பணமாகும்",
"BTCu حقیقی ڈیجیٹل سونا ہے", "بِٹ کوائن کی مہلک خامی", "ETH انٹرنیٹ پیسہ ہے",
"BTCu iku emas digital sejati", "Kelemahan fatal Bitcoin", "ETH iku dhuwit internet",
"BTCu ni dhahabu halisi ya Kidijitali", "Kasoro kubwa ya Bitcoin", "ETH ni pesa ya Mtandao",
"BTCu طلای دیجیتال واقعی است", "نقص مهلک بیت کوین", "ETH پول اینترنتی است",
"BTCu shine gaske zinariya dijital", "Babban lahani na Bitcoin", "ETH shine kuɗin intanet",
"BTCu သည် စစ်မှန်သော ဒစ်ဂျစ်တယ်ရွှေနဲသည်", "Bitcoin၏ ပြင်းထန်သော ချို့ယွင်းချက်", "ETH သည် အင်တာနက်ငွေ ဖြစ်သည်"
];
/**
* A function that waits for a specified time (to avoid API rate limits)
* @param {number} ms - Wait time in milliseconds
* @return {Promise} - A promise that resolves after the wait time is completed
*/
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
/**
* A function that checks if any of the specified keywords are present in the first 30 characters of the text
* @param {string} text - The text to check
* @return {boolean} - Returns true if a keyword is found, otherwise false
*/
function containsKeyword(text) {
if (!text) return false;
// Get the first 30 characters of the text
const firstThirtyChars = text.substring(0, 30);
// Check if any of the keywords are included
return KEYWORDS.some(keyword => firstThirtyChars.includes(keyword));
}
/**
* A function that checks if a post meets specific criteria
* @param {Object} postData - Post data
* @param {Object} post - The post to validate
* @param {number} startTime - Start time of the specified period (UNIX timestamp)
* @param {number} endTime - End time of the specified period (UNIX timestamp)
* @return {Object} - The validation result
*/
function validatePost(postData, post, startTime, endTime) {
const errors = [];
const postDetail = postData.data.find(p => p.id === post.post_id);
// Check if data exists
if (!postDetail) {
return { status: false, errors: ['Failed to retrieve post data. The post ID may be incorrect, the post may have been deleted, or the post may be protected.'] };
}
// Retrieve author information
const author = postData.includes.users.find(user => user.id === postDetail.author_id);
if (!author) {
return { status: false, errors: ['Failed to retrieve author data. The user may have been deleted or the account may be protected.'] };
}
// 1. Check if the author_id matches the input value
if (postDetail.author_id !== post.author_id) {
errors.push('Author ID does not match');
}
// 2. For unverified accounts, check if the account was created more than 1 year ago
if (!author.verified) {
const userCreatedAt = new Date(author.created_at).getTime();
const oneYearInMs = 365 * 24 * 60 * 60 * 1000;
if (endTime < userCreatedAt + oneYearInMs) {
errors.push('Unverified accounts must be created more than 1 year before the end time');
}
}
// 3. Check if the account is public
if (author.protected) {
errors.push('Account is private');
}
// 4. Check if the hashtag #Bitcoinu is included
let hasBitcoinuHashtag = false;
if (postDetail.entities && postDetail.entities.hashtags) {
hasBitcoinuHashtag = postDetail.entities.hashtags.some(tag =>
tag.tag.toLowerCase() === 'bitcoinu'
);
}
if (!hasBitcoinuHashtag) {
errors.push('Hashtag #Bitcoinu is not included');
}
// 5. Check if the text is at least 20 characters long
if (!postDetail.text || postDetail.text.length < 20) {
errors.push('Text must be at least 20 characters');
}
// 6. Check if any of the specified keywords are found within the first 30 characters of the text
if (!containsKeyword(postDetail.text)) {
errors.push('No specified keyword found in the first 30 characters of the text');
}
// 7. Check if the post was created within the specified time period
const postCreatedAt = new Date(postDetail.created_at).getTime();
if (postCreatedAt < startTime || postCreatedAt > endTime) {
errors.push('Post was not created within the specified time period');
}
// 8. Check if the impression count is at least 50
if (!postDetail.public_metrics || postDetail.public_metrics.impression_count < 50) {
errors.push('Impression count must be at least 50');
}
return {
status: errors.length === 0,
errors: errors.length > 0 ? errors : []
};
}
// List of keywords
const KEYWORDS = [
"BitcoinuPost to Earn", "Bye Bitcoin", "Sell Bitcoin",
"BTCu is the true DigitalGold", "Bitcoin's Fatal Flaw", "ETH is the Internet Money",
"BTCu是真正的数字黄金", "比特币的致命缺陷", "ETH是互联网货币",
"BTCu ही सच्ची डिजिटल सोना है", "बिटकॉइन की घातक खामी", "ETH इंटरनेट मुद्रा है",
"BTCu es el verdadero oro digital", "El defecto fatal de Bitcoin", "ETH es el dinero de Internet",
"BTCu est le véritable or numérique", "Le défaut fatal du Bitcoin", "ETH est la monnaie d'Internet",
"BTCu هو الذهب الرقمي الحقيقي", "العيب القاتل للبيتكوين", "ETH هو مال الإنترنت",
"BTCu হল সত্যিকারের ডিজিটাল সোনা", "বিটকয়েনের মারাত্মক ত্রুটি", "ETH হল ইন্টারনেট মুদ্রা",
"BTCu é o verdadeiro ouro digital", "A falha fatal do Bitcoin", "ETH é o dinheiro da Internet",
"BTCu — это настоящие цифровое золото", "Фатальный недостаток Биткойна", "ETH — это интернет-деньги",
"ビットコいぬ", "BTCuは真のデジタルゴールド", "ビットコインの致命的な欠陥", "ETHはインターネット通貨",
"BTCu ist das wahre digitale Gold", "Der fatale Defekt von Bitcoin", "ETH ist das Internet-Geld",
"BTCu는 진정한 디지털 골드입니다", "비트코인의 치명적인 결함", "ETH는 인터넷 화폐입니다",
"BTCu là vàng kỹ thuật số thực sự", "Lỗi chí mạng của Bitcoin", "ETH là tiền Internet",
"BTCu è il vero oro digitale", "Il difetto fatale di Bitcoin", "ETH è la moneta di Internet",
"BTCu คือทองดิจิทัลที่แท้จริง", "ข้อบกพร่องร้ายแรงของบิตคอยน์", "ETH คือเงินอินเทอร์เน็ต",
"BTCu gerçek dijital altındır", "Bitcoin'in ölümcül kusuru", "ETH internet parasıdır",
"BTCu to prawdziwe cyfrowe złoto", "Śmiertelna wada Bitcoina", "ETH to pieniądz internetowy",
"BTCu — це справжнє цифрове золото", "Фатальна вада Біткоїна", "ETH — це інтернет-гроші",
"BTCu is het echte digitale goud", "Het fatale defect van Bitcoin", "ETH is het internetgeld",
"BTCu ਹੀ ਅਸਲ ਡਿਜਿਟਲ ਸੋਨਾ ਹੈ", "ਬਿਟਕੋਇਨ ਦੀ ਘਾਤਕ ਖਾਮੀ", "ETH ਇੰਟਰਨੈੱਟ ਮਨੀ ਹੈ",
"BTCu నిజమైన డిజిటల్ బంగారం", "బిట్కాయిన్ యొక్క ఘోరమైన లోపం", "ETH ఇంటర్నెట్ డబ్బు",
"BTCu हे खरे डिजिटल सोने आहे", "बिटकॉइनची घातक त्रुटी", "ETH ही इंटरनेट मुद्रा आहे",
"BTCu உண்மையான டிஜிட்டல் தங்கம்", "பிட்காயின் மாரடித்த குறைபாடு", "ETH இணைய பணமாகும்",
"BTCu حقیقی ڈیجیٹل سونا ہے", "بِٹ کوائن کی مہلک خامی", "ETH انٹرنیٹ پیسہ ہے",
"BTCu iku emas digital sejati", "Kelemahan fatal Bitcoin", "ETH iku dhuwit internet",
"BTCu ni dhahabu halisi ya Kidijitali", "Kasoro kubwa ya Bitcoin", "ETH ni pesa ya Mtandao",
"BTCu طلای دیجیتال واقعی است", "نقص مهلک بیت کوین", "ETH پول اینترنتی است",
"BTCu shine gaske zinariya dijital", "Babban lahani na Bitcoin", "ETH shine kuɗin intanet",
"BTCu သည် စစ်မှန်သော ဒစ်ဂျစ်တယ်ရွှေနဲသည်", "Bitcoin၏ ပြင်းထန်သော ချို့ယွင်းချက်", "ETH သည် အင်တာနက်ငွေ ဖြစ်သည်"
];
/**
* A function that waits for a specified time (to avoid API rate limits)
* @param {number} ms - Wait time in milliseconds
* @return {Promise} - A promise that resolves after the wait time is completed
*/
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
/**
* A function that checks if any of the specified keywords are present in the first 30 characters of the text
* @param {string} text - The text to check
* @return {boolean} - Returns true if a keyword is found, otherwise false
*/
function containsKeyword(text) {
if (!text) return false;
// Get the first 30 characters of the text
const firstThirtyChars = text.substring(0, 30);
// Check if any of the keywords are included
return KEYWORDS.some(keyword => firstThirtyChars.includes(keyword));
}
/**
* A function that checks if a post meets specific criteria
* @param {Object} postData - Post data
* @param {Object} post - The post to validate
* @param {number} startTime - Start time of the specified period (UNIX timestamp)
* @param {number} endTime - End time of the specified period (UNIX timestamp)
* @return {Object} - The validation result
*/
function validatePost(postData, post, startTime, endTime) {
const errors = [];
const postDetail = postData.data.find(p => p.id === post.post_id);
// Check if data exists
if (!postDetail) {
return { status: false, errors: ['Failed to retrieve post data. The post ID may be incorrect, the post may have been deleted, or the post may be protected.'] };
}
// Retrieve author information
const author = postData.includes.users.find(user => user.id === postDetail.author_id);
if (!author) {
return { status: false, errors: ['Failed to retrieve author data. The user may have been deleted or the account may be protected.'] };
}
// 1. Check if the author_id matches the input value
if (postDetail.author_id !== post.author_id) {
errors.push('Author ID does not match');
}
// 2. For unverified accounts, check if the account was created more than 1 year ago
if (!author.verified) {
const userCreatedAt = new Date(author.created_at).getTime();
const oneYearInMs = 365 * 24 * 60 * 60 * 1000;
if (endTime < userCreatedAt + oneYearInMs) {
errors.push('Unverified accounts must be created more than 1 year before the end time');
}
}
// 3. Check if the account is public
if (author.protected) {
errors.push('Account is private');
}
// 4. Check if the hashtag #Bitcoinu is included
let hasBitcoinuHashtag = false;
if (postDetail.entities && postDetail.entities.hashtags) {
hasBitcoinuHashtag = postDetail.entities.hashtags.some(tag =>
tag.tag.toLowerCase() === 'bitcoinu'
);
}
if (!hasBitcoinuHashtag) {
errors.push('Hashtag #Bitcoinu is not included');
}
// 5. Check if the text is at least 20 characters long
if (!postDetail.text || postDetail.text.length < 20) {
errors.push('Text must be at least 20 characters');
}
// 6. Check if any of the specified keywords are found within the first 30 characters of the text
if (!containsKeyword(postDetail.text)) {
errors.push('No specified keyword found in the first 30 characters of the text');
}
// 7. Check if the post was created within the specified time period
const postCreatedAt = new Date(postDetail.created_at).getTime();
if (postCreatedAt < startTime || postCreatedAt > endTime) {
errors.push('Post was not created within the specified time period');
}
// 8. Check if the impression count is at least 50
if (!postDetail.public_metrics || postDetail.public_metrics.impression_count < 50) {
errors.push('Impression count must be at least 50');
}
return {
status: errors.length === 0,
errors: errors.length > 0 ? errors : []
};
}
Share Dialog
Share Dialog
No activity yet