Proposed Solution For a Broken Blacklist

EOS42
4 min readFeb 22, 2019

--

[Chinese & Korean Version Below]

EOSIO has a feature that allows Block Producers to blacklist accounts. 21/21 producing BPs need to blacklist an account in order for the blacklist to function properly. Several accounts have been blacklisted on the basis of ECAF orders in which alleged victims had their accounts hacked. All top 21 Block Producers must have their blacklist updated. If only one top 21 BP does not have an updated blacklist, hacked accounts are vulnerable to being emptied.

This scenario played out in the last 24hrs when a newly rotated top 21 BP failed to apply the blacklist. Unfortunately, one blacklisted account holding 2MM EOS began to be emptied. We need to stop this issue before another BP is voted into the top 21 that has not updated the blacklist on their producing node.

Protecting Consensus

The blacklist “loophole” essentially gives a single BP veto power over 15/21 DPOS consensus. In the most benign form, a Block Producer can neglect to update the blacklist on their producing node, resulting in one BPs mistake overriding a decision that was made by 15/21. In the most egregious form, any hacker could corrupt one BP by incentivising them with a reward for “failing” to update their blacklist.

We should adamantly reject any mechanism whereby 15/21 consensus is fundamentally undermined. On the basis of this principle alone, we suggest nulling the keys of blacklisted accounts as an interim solution. Nulling keys will maintain the integrity of 15/21 consensus, and provide ample protections until the EOS community decides how to handle the current blacklisted accounts.

Solution

We have tools at our disposal to stop this issue right now. Nulling keys of blacklisted accounts with eosio.wrap would allow us to stop any loss of funds from blacklisted accounts, and restores the integrity of 15/21 DPOS consensus. Until a decision is reached by the EOS community as to how we handle blacklisted accounts, we suggest nulling keys of blacklisted accounts.

Nulling these keys does not mean that the account cannot be saved and returned to its rightful owner. The process for blacklisting and key nulling is the same. However, nulling keys is far more robust than a “broken” blacklist that can easily fail to achieve the intended purpose.

The longer we leave this door open, the more opportunities this provides for events described above to occur in the future, potentially resulting in a negative impact on user, and market sentiment.

We’ve written the MSIG proposal to null the keys of blacklisted accounts.

You can see the list here, and we will continue to provide links in this article.

EOS42 — Pioneering a Decentralized Future

WEBSITE | MEDIUM | TWITTER | TELEGRAM | LINKEDIN

EOSIO拥有着允许出块者将特定帐户列入黑名单的功能。此黑名单机制会阻止出块者处理任何来自于黑名单中的账户的任何交易。根据之前ECAF的仲裁令,数个被黑客盗取的受害帐户都被列入了黑名单。EOSIO的这个机制需要所有前21名出块者更新它们的黑名单。如果只有一名出块者没有更新黑名单,被盗账户就会面临资金被清空的风险。

在此文章发布之前的24小时前,此场景在当一名新的出块者舍弃了应用黑名单机制的情况下发生了。不幸的是,一个持有2百万EOS的黑名单账户开始逐渐被清空。因此,我们需要在另一名不更新黑名单的出块者被投到前21之前解决此问题。

共识机制的保护

此黑名单机制的“漏洞”基本上给予单一出块者否决的权力,这也违反了DPOS共识机制所采用的15/21原则。在最轻的形式下,一名出块者可以忽略更新的黑名单,从而一个出块者的错误违反 15/21 做出的决策的情况就会发生。在最严重的形式下,任何黑客都可以通过激励出块者来贿赂它们不更新黑名单。

我们应该坚决反对任何破坏15/21原则的共识机制。根据这一原则,我们建议将废除所有黑名单账户的密匙作为临时解决方案。在EOS社区决定如何处理当前的黑名单帐户之前,废除密钥的方案将保持15/21共识机制的完整性并对这些账号提供充分的保护。

解决方案

我们现在手上所持有的工具可以完全解决这个问题。利用’eosio.wrap`废除黑名单账户的密钥将使我们有效地阻止任何资金损失,并恢复15/21之DPOS共识的完整性。在EOS社区决定如何处理这些黑名单的帐户做出决定之前,我们建议将账户密钥废除。

废除密钥并不意味着该帐户无法被回复并返还到其合法所有者。黑名单和废除密匙的过程是相同的。不过,废除密匙比漏洞百出的黑名单机制更加可靠。黑名单机制无法实现预期目的可能性是极高的。

如果我们继续无视这些问题,上述事件在未来发生的机会就更高,这些都会可能会对用户和市场情绪产生负面的影响。

EOS42 已经编写并上传了多重签名(MSIG)提案,以废除黑名单帐户的密钥。

您可以在此处找到该提案。

EOSIO 에는 블록프로듀서가 블랙리스트에 계정을 추가해 제한할 수 있는 기능이 있습니다. 블록을 생산하는 상위 21명중 21명 BP 모두는 블랙리스트가 제대로 작동하도록 계정을 블랙리스트에 올릴 필요가 있습니다. ECAF 명령을 기반으로 몇몇 해킹을 당한 피해자의 계정들은 블랙리스트에 올라 갔습니다. 상위 21 명의 블록프로듀서는 모두 이 블랙리스트를 업데이트해야 하고 그중 한 명의 BP만 블랙리스트를 업데이트 하지 없아도 해킹 된 계정에서 자금을 출금 할 수 있습니다.

이 시나리오는 최근 24 시간 동안 새로 선출된 BP가 블랙리스트를 적용하지 못했을 때 나타났습니다. 불행히도 2백만개 EOS를 보유한 블랙리스트 계정 하나에서 출금이 일어났습니다. 이러한 문제는 또 일어날 수 있으며 또 다른 BP가 블랙리스트를 업데이트하지 않은 상태에서 상위 ​​21 명에 선출되기 전에 이 문제를 해결해야 합니다.

합의를 보호하기

블랙리스트 “허점 (loophole)”은 본질적으로 단일 BP의 거부권이 15/21 DPOS의 초대다수 컨센서스 이상의 힘을 가질 때 일어납니다. 만약 착한 BP 일지라도 그의 실수 또는 태만으로 블랙리스트가 업데이트 되지 않으면, 이로 인해 15/21의 결정까지 무시됩니다. 만약 나쁜 해커가 참여한 경우라면, 블랙리스트를 업데이트하지 않는 것에 대한 보상을 줌으로써 한 BP를 부패 시킬 수도 있습니다.

우리는 15/21의 초대다수 합의가 근본적으로 훼손되는 어떠한 메커니즘도 단호하게 거부해야 합니다. 이 원칙으로 말하자면, 블랙리스트에 올라있는 계정의 키를 잠정적으로 무효화하는 것을 제안합니다. 블랙리스트 계정을 무효화하는 것은 15/21 합의의 무결성을 유지하며 EOS 커뮤니티가 현재 블랙리스트에 올라있는 계정을 처리하는 방법을 결정할 때까지 충분한 보호 기능을 제공합니다.

해결책

현재 이를 적용할 수 있는 도구가 있습니다. eosio.wrap을 사용하여 블랙리스트에 올라있는 계정의 키를 무효화 시키면 블랙리스트에 올라있는 계정으로 인한 자금 손실을 막을 수 있으며 15/21 DPOS 합의의 무결성을 복원 할 수 있습니다. 차단된 계정을 처리하는 방법에 대해 EOS 커뮤니티가 결정할 때까지 키를 null(무효)로 지정하는 것이 좋습니다.

이 키를 무효화 한다고 해서 나중에 계정을 정당한 소유자에게 반환 할 수 없는 것은 아닙니다. 결국 블랙리스트 작성과 키 무효화 프로세스는 동일합니다. 그러나 null(무효) 키는 의도된 목적을 달성하지 못하고 “깨져버린” 블랙리스트보다 훨씬 강력합니다.

우리가 빨리 솔루션을 적용하지 않고 문을 열어두면, 그동안 위에서 언급한 나쁜 이벤트가 발생할 수 있는 기회가 늘어나 잠재적으로 사용자와 시장 감정에 부정적인 영향을 미칠 수 있습니다.

블랙리스트에 올라있는 계정의 키를 null로 만들도록 MSIG 제안서를 작성했습니다.

여기에서 MSIG 상황 를 볼 수 있으며 이 기사에서는 계속 링크를 제공 할 것입니다.

--

--

EOS42

EOS42 — Pioneering a Decentralized Future | 开造一个去中心化的未来 | 탈중앙화된 미래를 선도합니다 | Telegram: https://t.me/EOS42 | EOS ID: eos42freedom