Seneca’s masterful application of metaphors often illuminates some Stoic technical terminology in contexts, which render them meaningful and familiar to his Roman readers. In this paper I argue that in certain instances, these metaphors are also used to organize whole systems of concepts that refer to an essential theoretical component of Seneca’s philosophy. By studying the literary and philosophical context of these metaphors, I reconstruct Seneca’s requirement for moral self-improvement in his Epistles and propose that his conception of conscientia or ‘moral conscience’—a notion scattered throughout his writings but which, as the examination of his systematic metaphors will prove, has a consistent, identical function everywhere it appears—points to some novel rational characteristics of the philosopher’s conception of the self.
function is provided by Ethereum smart contracts to destroy a contract on the blockchain system. However, it is a double-edged sword for developers. On the one hand, using the
function enables developers to remove
) from Ethereum and transfers Ethers when emergency situations happen, e.g., being attacked. On the other hand, this function can increase the complexity for the development and open an attack vector for attackers. To better understand the reasons why SC developers include or exclude the
function in their contracts, we conducted an online survey to collect feedback from them and summarize the key reasons. Their feedback shows that 66.67% of the developers will deploy an updated contract to the Ethereum after destructing the old contract. According to this information, we propose a method to find the self-destructed contracts (also called predecessor contracts) and their updated version (successor contracts) by computing the code similarity. By analyzing the difference between the predecessor contracts and their successor contracts, we found five reasons that led to the death of the contracts; two of them (i.e.,
Unmatched ERC20 Token and Limits of Permission
) might affect the life span of contracts. We developed a tool named
to detect these problems.
reports 0 false positives or negatives in detecting
Unmatched ERC20 Token
. In terms of
Limits of Permission
achieves 77.89% of F-measure and 0.8673 of AUC in average. According to the feedback of developers who exclude
functions, we propose suggestions to help developers use
functions in Ethereum smart contracts better.